[已答复] 求助关于直接非线性拟合

[复制链接]
他已不爱海 发表于 2021-11-24 19:13:29

function y=model(beta,x)
y=exp(-log(x+beta(1)*(1-x))+(1-x)*(beta(1)/(x+(1-x)*beta(1))-beta(2)/(1-x+x*beta(2))));
end
x=[0.076 0.197 0.356 0.498 0.622 0.747 0.829 0.936]';
y=[1.6225 1.4959 1.3470 1.2313 1.1447 1.0733 1.0369 1.0060]';
beta0=[1,1]';
beta=nlinfit(x,y,@model,beta0);
disp(beta(1))
disp(beta(2))
结果如下
错误使用 nlinfit (line 205)
Error evaluating model function 'model'.


出错 Untitled (line 4)
beta=nlinfit(x,y,@model,beta0);


原因:
    错误使用  +
    矩阵维度必须一致。


1 条回复


WarnerChang 发表于 2021-11-25 10:09:02
使用点运算解决问题

x=[0.076 0.197 0.356 0.498 0.622 0.747 0.829 0.936]';
y=[1.6225 1.4959 1.3470 1.2313 1.1447 1.0733 1.0369 1.0060]';
beta0=[1,1]';
beta=nlinfit(x,y,@model,beta0);
disp(beta(1))
disp(beta(2))

function y=model(beta,x)
y=exp(-log(x+beta(1).*(1-x))+(1-x).*(beta(1)./(x+(1-x).*beta(1))-beta(2)./(1-x+x*beta(2))));
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表