24小时热门版块排行榜    

查看: 522  |  回复: 0

xwl196

银虫 (小有名气)

[求助] matlab非线性拟合命令nlinfit拟合4个自由参数的相关问题

程序如下:
clear;clc
T=311.11;
myfun=@(p,x)log((p(1)*x(:,2)/(2*p(2))+x(:,1)).*(p(1)-x(:,1))./(x(:,1).*(p(1)-p(1)*x(:,2)/(2*p(2))-x(:,1))))+((7*p(1)*x(:,2)/(2*p(2))-x(:,1))/p(1))*p(3)/T+p(4)/T;
x=[0.0022         0.4059
0.0380         1.0118
0.0840         1.0833
0.1617         1.0640
0.3124         0.9387
0.6497         0.5216
0.7445         0.3405
0.7794         0.2928
0.8026         0.2425
0.8234         0.2163 ];
p0=[0.4043 1.19 80 -1460];
warning off
p=nlinfit(x,zeros(size(x,1),1),myfun,p0);
disp('rhomc,C,Eii,Eis分别为:');
disp(num2str(p));
plot(x(:,1),x(:,2),'ro');hold on;
ezplot(@(x,y)myfun(p,[x,y]),[0,1,0,2]);
title('拟合曲线');legend('样本点','拟合曲线')

拟合结果如下:
rhomc,C,Eii,Eis分别为:
0.156253858607+0.005786753697576i            546230758.1694+48871855.16422i -7.845475715233e-007+2.978369193914e-008i -3.533514947268e-006+1.911710468176e-007i
而符合实际情况的结果应该是rhomc[0,1],C[0,10],Eii[0,X00],Eis[-X000,0]
从拟合曲线看,拟合曲线与实验点严重偏离,有可能是初值的问题,但一直没找到合适的初始值。而且拟合曲线多出一条线,求大神指点问题出现在哪里了?

matlab非线性拟合命令nlinfit拟合4个自由参数的相关问题
1.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 xwl196 的主题更新
信息提示
请填处理意见