matlab中拟合函数nlinfit的使用
发布网友
发布时间:2022-05-13 18:15
我来回答
共1个回答
热心网友
时间:2023-10-20 02:58
程序改成如下:
主程序:
x=[0.076 0.197 0.356 0.498 0.622 0.747 0.829 0.936];
r=[1.6225 1.4959 1.3470 1.2313 1.1447 1.0733 1.0369 1.0060];
y=log(r);
beta0=[1.000,1.000];
beta=nlinfit(x,y,@myfun,beta0);
x1=min(x):0.001:max(x);
E=-log(x1+beta(1).*(1-x1))+(1-x1).*(beta(1)./(x1+beta(1).*(1-x1))-beta(2)./((1-x1)+beta(2).*x1));
plot(x,y,'o',x1,E)
legend('原始数据点' , '拟合后的曲线')
调用程序
function y=myfun(beta,x)
%z=(1-x)
y=-log(x+beta(1).*(1-x))+(1-x).*(beta(1)./(x+beta(1).*(1-x))-beta(2)./((1-x)+beta(2).*x));
end
结果:
追问非常感谢,弱弱的问一句nlinfit函数中的自变量和因变量不应该都用列向量的吗?为什么你用的是行向量呢?