用matlab进行非线性拟合 nlinfit函数有组数据x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0.03 1 5.03 15.05 19.97 30.3]; 拟合函数为y=-k*ln(x+a)-b;我的拟合程序是clc;clear; x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 20:57:49
![用matlab进行非线性拟合 nlinfit函数有组数据x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0.03 1 5.03 15.05 19.97 30.3]; 拟合函数为y=-k*ln(x+a)-b;我的拟合程序是clc;clear; x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0](/uploads/image/z/3139305-33-5.jpg?t=%E7%94%A8matlab%E8%BF%9B%E8%A1%8C%E9%9D%9E%E7%BA%BF%E6%80%A7%E6%8B%9F%E5%90%88+nlinfit%E5%87%BD%E6%95%B0%E6%9C%89%E7%BB%84%E6%95%B0%E6%8D%AEx%3D%5B1.1389+1.0622+0.9822+0.934+0.9251+0.9158%5D%3B+y%3D%5B0.03+1+5.03+15.05+19.97+30.3%5D%3B+%E6%8B%9F%E5%90%88%E5%87%BD%E6%95%B0%E4%B8%BAy%3D-k%2Aln%28x%2Ba%29-b%EF%BC%9B%E6%88%91%E7%9A%84%E6%8B%9F%E5%90%88%E7%A8%8B%E5%BA%8F%E6%98%AFclc%3Bclear%3B+x%3D%5B1.1389+1.0622+0.9822+0.934+0.9251+0.9158%5D%3B+y%3D%5B0)
用matlab进行非线性拟合 nlinfit函数有组数据x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0.03 1 5.03 15.05 19.97 30.3]; 拟合函数为y=-k*ln(x+a)-b;我的拟合程序是clc;clear; x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0
用matlab进行非线性拟合 nlinfit函数
有组数据
x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158];
y=[0.03 1 5.03 15.05 19.97 30.3];
拟合函数为y=-k*ln(x+a)-b;
我的拟合程序是
clc;clear;
x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158];
y=[0.03 1 5.03 15.05 19.97 30.3];
myfunc=inline('-beta(1)*ln(x+beta(2))-beta(3)','beta','x');
beta=nlinfit(x,y,myfunc,[1 1 1]);
k=beta(1),a=beta(2),b=beta(3)
%test the model
xx=min(x):max(x);
yy=-k*ln(x+a)-b;
plot(x,y,'o',xx,yy,'r')
程序运行后总提示错误,不知道怎么回事,
用matlab进行非线性拟合 nlinfit函数有组数据x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0.03 1 5.03 15.05 19.97 30.3]; 拟合函数为y=-k*ln(x+a)-b;我的拟合程序是clc;clear; x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0
ln->log
Matlab中ln就是log
你的初值我改成000了,111的话,计算出来有一小部分虚数成份.
另外最后一个plot我也改了一下,你的xx只有一个值啊,我也就直接改成x做图了.因为你的yy也是由x计算的.
改成:
clc;clear;
x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158];
y=[0.03 1 5.03 15.05 19.97 30.3];
myfunc=inline('-beta(1)*log(x+beta(2))-beta(3)','beta','x');
beta=nlinfit(x,y,myfunc,[0 0 0]);
k=beta(1),a=beta(2),b=beta(3)
%test the model
xx=min(x):max(x);
yy=-k*log(x+a)-b;
plot(x,y,'o',x,yy,'r')