24小时热门版块排行榜    

查看: 697  |  回复: 5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

qcz2002

新虫 (小有名气)

[交流] 【求助】对于特定的函数用matlab做最小二乘法的曲线拟合

函数为n^2=x(1)+x(2)/[r^2-x(3)]-x(4)/[x(5)-r^2]
其中n 和r为已知的两组数据,我想得到其最小二乘法的拟合曲线以及5个参数x的值
我是这样弄得 结果老是无法运行
m文件
function f^2=f01(x,Data);
Data=[4358 2.42207;4861 2.40374;5461 2.40126;5893 2.39352;6563 2.37776;6678 2.37684];
r=Data(:,1);
n=Data(:,2);
z^2=x(1)+x(2)/[r^2-x(3)]-x(4)/[x(5)-r^2];
f^2=z^2-n^2;
输入命令
Data=[4358 2.42207;4861 2.40374;5461 2.40126;5893 2.39352;6563 2.37776;6678 2.37684];
r=Data(:,1);
n=Data(:,2);
x0=[1 0]';
x=lsqnonlin('f01',x0); 到这一步就出问题了,哪位好心的大侠帮帮我吧 应该怎么建m文件 程序错哪了 我刚刚接触matlab,我看了书上的例子,不过那个例子是一次的

[ Last edited by kuhailangyu on 2009-11-18 at 20:53 ]
回复此楼

» 猜你喜欢

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

qcz2002

新虫 (小有名气)

还是不行呢 可不可以帮我设计然后运行出来呀
3楼2009-11-19 15:55:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

zjliu1265

至尊木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+3,VIP+0):谢谢应助!可能还需要进一步指导。 11-19 20:21
我来援助一下吧!
x0应该是含5个元素的向量,而你只写了2个。
我随意加了3个元素,不一定对,完全是为了
程序能运行。

另外:
1. 符号"^"是运算符,不要用于变量名字中;
2. 符号"^"和"/"在计算表达式中如果不是方矩阵,它们一般
需分别改写为".^"和"./"表示元素之间的乘除运算。

改后的程序是:
m文件
function f2=f01(x,Data);
Data=[4358 2.42207;4861 2.40374;5461 2.40126;5893 2.39352;6563 2.37776;6678 2.37684];
r=Data(:,1);
n=Data(:,2);
z2=x(1)+x(2)./[r.^2-x(3)]-x(4)./[x(5)-r.^2];
f2=z2-n.^2;
输入命令
Data=[4358 2.42207;4861 2.40374;5461 2.40126;5893 2.39352;6563 2.37776;6678 2.37684];
r=Data(:,1);
n=Data(:,2);
x0=[1 0 1 1 1]';
x=lsqnonlin('f01',x0);
2楼2009-11-19 09:23:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qcz2002

新虫 (小有名气)

Data=[435.8 1.5563;486.1 1.5504;546.1 1.5496;589.3 1.5471;656.3 1.542;667.8 1.5417]; 函数为n^2=x(1)+x(2)/[r^2-x(3)]-x(4)/[x(5)-r^2]
其中n 和r为已知的两组数据,x为5个参数值

谢谢帮帮我吧

[ Last edited by qcz2002 on 2009-11-19 at 16:01 ]
4楼2009-11-19 15:59:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qcz2002

新虫 (小有名气)

nono2009(金币+0,VIP+0):建议通过PM或“引用回复该帖”,以便别人及时收到你的message. 11-19 20:20
运行情况>> Data=[435.8 1.5563;486.1 1.5504;546.1 1.5496;589.3 1.5471;656.3 1.5420;667.8 1.5417];
>> r=Data(:,1);
>> n=Data(:,2);
>> x0=[1 0 1 1 1]';
>> x=lsqnonlin('f01',x0);
Optimization terminated: first-order optimality less than OPTIONS.TolFun,
and no negative/zero curvature detected in trust region model.
>> n2=x(1)+x(2)./[r.^2-x(3)]-x(4)./[x(5)-r.^2];
>> plot(r,n,'bol-');
??? Error using ==> plot
Error in color/linetype argument.
5楼2009-11-19 16:42:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见