全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1851 2
2008-07-27

function F = myfun(x,xdata)
ydata=[0.220595862 0.222712212 0.224900457 0.227264431 0.229681518 0.232255154 0.234974225 0.237806502 0.240831515 0.243975095 0.24730495 0.250825199 0.254529248 0.258471358 0.262617286 0.267026512 0.271674093 0.276691606 0.281917481 0.287384964 0.293275017 0.299470168 0.305916559 0.31282487 0.320170682 0.327977329 0.336117933 0.344715668 0.353837989 0.363545804 0.373904994 0.384586539 0.395998354 0.408019851 0.420754954 0.434228344 0.448350928 0.462833935 0.477889722 0.493499328 0.509674848
];
T=[673 675 677 679 681 683 685 687 689 691 693 695 697 699 701 703 705 707 709 711 713 715 717 719 721 723 725 727 729 731 733 735 737 739 741 743 745 747 749 751 753
];
xdata(1)=0.220595862;
x(1)=1;x(2)=11158;x(3)=2;
for i=1:40
    xdata(i+1)=3*x(1)*exp(x(2)*(1/800-1/T(i)))*(1-xdata(i))^x(3)*2;
end
F=ydata-xdata;

。。。。。。。。。。。。。。。。。。。。。。。。。。。。

x0=[1.7 3000 2.2];
[x,resnorm] = lsqnonlin(@opt,x0)
优化的结果不对呵呵,是不是matlab本身有问题,请教

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-7-27 19:44:00

阅读了lsqnonlin的document后,发现lsqnonlin并不能求解你提出来的问题。应试用其它的非线性优化算法。

T可以写成T=673:2:753;

@opt应该改为@myfun吧。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-7-27 20:11:00
分析你的函数,对x(3)*2的写法有疑问。按照你列出来的写法,*2可以与3*合并为6*。如果x(3)*2整个作为指数,应加上()。对应结果不是7.0411,而是0.6705.最好把你的求解题目完整的贴一个上来,共同讨论。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群