| 查看: 900 | 回复: 0 | ||
xxz903金虫 (小有名气)
|
[求助]
matlab数据拟合求助!求出来的是复数 应该怎么修改?
|
|
function F=unique(x,xdata) %x=[] t12=x(1); t21=x(2); q1=x(3); q2=x(4); r1=x(5); r2=x(6); h=x(7); m=xdata; z=10; x1=m./(m+h); x2=1-x1; o1=x1*r1./(x1*r1+x2*r2); o2=x2*r2./(x1*r1+x2*r2); b1=x1*q1./(x1*q1+x2*q2); b2=x2*q2./(x1*q1+x2*q2); l1=0.5*z*(r1-q1)-(r1-1); l2=0.5*z*(r2-q2)-(r2-1); y1=log(o1./x1)+0.5*z*q1*log(b1./o1)+o2*(l1-r1*l2/r2)-q1*log(b1+b2*t21)... +b2*q1.*(t21./(b1+b2*t21)-t12./(b2+b1*t12))-log(r1/r2)... -05*z*q1*log(q1*r2/(q2*r1))-(l1-r1*l2/r2)+q1*log(t21)-q1*(1-t12); y2=log(o2./x2)+0.5*z*q2*log(b2./o2)+o1*(l2-r2*l1/r1)-q2*log(b2+b1*t12)... +b1*q2.*(t12./(b2+b1*t12)-t21./(b1+b2*t21))-log(r2/r1)... -05*z*q2*log(q2*r1/(q1*r2))-(l2-r2*l1/r1)+q2*log(t12)-q2*(1-t21); F=[y1,y2]; end function xxz2 data=[ 0.1 -0.673344553 -0.003214304 0.2 -0.783071888 -0.005447496 0.3 -0.841647189 -0.008713882 0.4 -0.869884359 -0.010990339 0.5 -0.884307686 -0.014309599 0.6 -0.889162064 -0.018687569 0.7 -0.889162064 -0.02207116 0.8 -0.88673193 -0.025484701 0.9 -0.879476759 -0.029975034 1 -0.869884359 -0.038731848 1.2 -0.850971266 -0.042636996 1.4 -0.830113036 -0.051995295 1.6 -0.807436327 -0.061533872 1.8 -0.783071888 -0.071257081 2 -0.759286983 -0.081169452 2.5 -0.701179352 -0.107972916 3 -0.650087691 -0.136153773 3.5 -0.599656837 -0.165810242 4 -0.553385238 -0.197052419 4.5 -0.512493681 -0.227286842 5 -0.47320876 -0.260553522]; %xdata=data(:,1); %Im %ydata=data(:,2:3); % %x0=ones(1,7); %t12,t21,q1,q2,r1,r2,h %options= optimset('MaxFunEvals',5000,'Maxiter',1000); %lb=[10,20,0,0]; %ub=[10000,10000,100,1000]; %lb=[]; %ub=[]; %[x,resnorm]=lsqcurvefit(@unique,x0,xdata,ydata,lb,ub,options) %y=unique(x,xdata); %plot(xdata,ydata,'g',xdata,y,'r') %end xdata=data(:,1); %Im ydata=data(:,2:3); % options= optimset('MaxFunEvals',5000,'Maxiter',1000); lb=-ones(1,7); ub=ones(1,7); t=1; for i=1:1:101 x0=rand(1,7); %t12,t21,q1,q2,r1,r2,h [x(t, ,resnorm(t)]=lsqcurvefit(@myfun,x0,xdata,ydata,lb,ub,options);t=t+1; end m=find(resnorm==min(resnorm)); xm=x(m, ![]() y=myfun(xm,xdata); plot(xdata,ydata,'g',xdata,y,'r') |
» 猜你喜欢
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
物理学I论文润色/翻译怎么收费?
已经有94人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有23人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
找到一些相关的精华帖子,希望有用哦~
跪求1stOpt2.5以上版本,或者请高人帮忙拟合包含复数的函数的参数
已经有8人回复
matlab拟合求值
已经有17人回复
需要用matlab拟合数据的外行人急需帮助
已经有10人回复
求助大侠帮忙,有关matlab模拟数据
已经有29人回复
求各位前辈帮忙!matlab解复数方程,出现图中的警告,怎来修改呢?谢谢了啊
已经有5人回复
【求助】使用MATLAB拟合出按照公式的系数
已经有19人回复
【求助】matlab曲面拟合表达式
已经有10人回复
【求助】如何使得matlab拟合的曲线强制经过一个点
已经有8人回复
【求助】使用MATLAB怎么实现拟合力场参数的程序?【已解决】
已经有15人回复
科研从小木虫开始,人人为我,我为人人













,resnorm(t)]=lsqcurvefit(@myfun,x0,xdata,ydata,lb,ub,options);
回复此楼
点击这里搜索更多相关资源