24小时热门版块排行榜    

查看: 390  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wlx0914

金虫 (小有名气)

[交流] 【求助】fminsearchi求解参数

根据xx和T的数据,关联方程参数a,b,c ,方程为
ln xx= a+b/T+c*ln T
下面是我的程序,提示有错,请高手指教
function y=myfun()
clear all
clc
ExpData =[292.15        0.00848105        0.200113301
296.09        0.009329695        0.200113301
300.09        0.010580997        0.200113301
304.09        0.011993794        0.200113301
308.29        0.013486483        0.200113301
312.49        0.015286746        0.200113301
316.9        0.017209812        0.2001133
321.39        0.019224455        0.200113301
325.59        0.021446333        0.2001133
329.89        0.023818241        0.200113301
334.13        0.026117718        0.200113301
338.08        0.028576812        0.200113301
341.98        0.031254491        0.200113301
345.86        0.033917449        0.200113301
];
T1= ExpData(:,1);
xx1= ExpData(:,2);
T=T1';xx=xx1';
%用fminsearch()—求解非线性Nelder-Mead单纯形法(非线性数据拟合)问题
A0= [1.22 1 1];
A=fminsearch(@Eqs,A0,[],T,xx)
function f =Eqs(A,T,xx)     % 模型方程
x1=exp(A(1)+A(2)/T+A(3)*log(T));
f=sum((xx-x1).^2)
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wlx0914

金虫 (小有名气)

引用回帖:
Originally posted by change0618 at 2010-11-08 10:52:21:
function y=myfun()
clear all
clc
ExpData =[292.15        0.00848105        0.200113301
296.09        0.009329695        0.200113301
300.09        0.010580997        0.200113301
304.09         ...

谢谢指教,原来也想着得用点乘,但点用错地方了,呵呵
4楼2010-11-08 14:35:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

change0618

铁杆木虫 (著名写手)

方丈大师

x1=exp(A(1)+A(2)./T+A(3).*log(T));

用点乘

用fminsearch 和nlinfit的比较见下楼

[ Last edited by change0618 on 2010-11-8 at 10:53 ]
2楼2010-11-08 10:45:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★ ★
wlx0914(金币+15): 2010-11-08 14:36:07
robert2020(金币+3):辛苦了! 2010-11-08 23:00:36
function y=myfun()
clear all
clc
ExpData =[292.15        0.00848105        0.200113301
296.09        0.009329695        0.200113301
300.09        0.010580997        0.200113301
304.09        0.011993794        0.200113301
308.29        0.013486483        0.200113301
312.49        0.015286746        0.200113301
316.9        0.017209812        0.2001133
321.39        0.019224455        0.200113301
325.59        0.021446333        0.2001133
329.89        0.023818241        0.200113301
334.13        0.026117718        0.200113301
338.08        0.028576812        0.200113301
341.98        0.031254491        0.200113301
345.86        0.033917449        0.200113301
];
T1= ExpData(:,1);
xx1= ExpData(:,2);
T=T1';xx=xx1';
%用fminsearch()—求解非线性Nelder-Mead单纯形法(非线性数据拟合)问题
A0= [1.22 1 1];
A1=fminsearch(@Eqs,A0,[],T,xx);
fprintf('\n\tA1 = \t%.4f\t%.4f\t%.4f\n',A1)

options=optimset('TolFun',1e-10,'display','off');
A2= nlinfit(T,xx,@model,A0,options);

TT=290:346;
XX1=model(A1,TT);
XX2=model(A2,TT);
figure(1)
plot(T,xx,'ro',TT,XX1,'b')
grid on;
figure(2)
plot(T,xx,'ro',TT,XX2,'b')
grid on;
fprintf('\n\tA2 = \t%.4f\t%.4f\t%.4f\n',A2)

function y=model(A,T)
y=exp(A(1)+A(2)./T+A(3)*log(T));

function f =Eqs(A,T,xx)     % 模型方程
x1=model(A,T);
f=sum((xx-x1).^2) ;
3楼2010-11-08 10:52:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见