24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2711  |  回复: 7

alan_fang

木虫 (正式写手)

[求助] matlab的lsqnonlin函数怎么用

x = lsqnonlin(fun,x0)

见图片1有一个例子这个好处理些,我想问的是如果目标函数图片3所示的话应该怎么处理呢?lsqnonlin里面的fun应该怎么定义?
matlab的lsqnonlin函数怎么用
图片1.png


matlab的lsqnonlin函数怎么用-1
图片3.jpg
回复此楼

» 猜你喜欢

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

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

alan_fang

木虫 (正式写手)

图3看不清,重新上传一张
matlab的lsqnonlin函数怎么用-2
9W291RUQXCJDW[B$H05OXTA.jpg

2楼2013-05-27 22:58:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

★ ★
csgt0: 金币+2, 谢谢 2013-05-31 11:33:19
首先,要说,LZ给的那个例子是不对的(我觉得)
你的fun6求的是10个值,而不是10 个值的平方加和。
而求解的时候用的是myfun8.我试了一下,也是用myfun6进行求解的结果。

而我觉得LZ的意思是要求x1,x2.使得平方加和最小。
所以,根据LZ例子中给的公式,将myfun8进行修改。
用main_solve.m进行调用。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : myfun6.m
  • 2013-05-28 09:05:04, 65 bytes
  • 附件 2 : main_solve.m
  • 2013-05-28 09:05:15, 205 bytes
  • 附件 3 : myfun8.m
  • 2013-05-28 09:05:22, 85 bytes
唉。还是学吧。
3楼2013-05-28 09:05:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

如果要写2楼的公式。LZ需要自行修改myfun8.m

function F = myfun8(x)
k=1:10;
F_tm=2+2*k-exp(k*x(1))-exp(k*x(2));%mod this part "F_tm"
F=sum(F_tm.^2);
唉。还是学吧。
4楼2013-05-28 09:11:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alan_fang

木虫 (正式写手)

引用回帖:
4楼: Originally posted by meatball1982 at 2013-05-28 09:11:22
如果要写2楼的公式。LZ需要自行修改myfun8.m

function F = myfun8(x)
k=1:10;
F_tm=2+2*k-exp(k*x(1))-exp(k*x(2));%mod this part "F_tm"
F=sum(F_tm.^2);

我找到上面例子的原型了,在help文档里面的。我想说的是使目标函数F=(x1-x2)^2最小化的话,用lsqnonlin函数调用的话,fun函数是(x1-x2)^2定义还是(x1-x2)定义,例子好像是(x1-x2)定义就可以了,不用它的平方项。而如果是使目标函数F=(x1-x2)^2+(y1-y2)^2那又该怎么定义fun函数
matlab的lsqnonlin函数怎么用-3
快照1.png

5楼2013-05-28 13:09:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)


csgt0: 金币+1, 多谢交流 2013-05-31 11:33:36
引用回帖:
5楼: Originally posted by alan_fang at 2013-05-28 13:09:44
我找到上面例子的原型了,在help文档里面的。我想说的是使目标函数F=(x1-x2)^2最小化的话,用lsqnonlin函数调用的话,fun函数是(x1-x2)^2定义还是(x1-x2)定义,例子好像是(x1-x2)定义就可以了,不用它的平方项 ...

非常抱歉,看了帮助,是我错了。我把求解最小二乘的最小值看成非线性的最小值了。我错了。 还好没有应助…………
对于耽误您的时间,再次。表示非常抱歉。

如果是lsqnonlin的话,只写x1-x2就行了。

如果是F=(x1-x2)^2+(y1-y2)^2,
你是要求x1,x2,y1,y2四个数吧。那(我觉得,只是我觉得啊。现在说话得非常谨慎了。)可能没法用lsqnonlin了。可以尝试fminsearch。那里面的banana函数的例子很可能对你有帮助。
唉。还是学吧。
6楼2013-05-28 20:31:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alan_fang

木虫 (正式写手)

引用回帖:
6楼: Originally posted by meatball1982 at 2013-05-28 20:31:45
非常抱歉,看了帮助,是我错了。我把求解最小二乘的最小值看成非线性的最小值了。我错了。 还好没有应助…………
对于耽误您的时间,再次。表示非常抱歉。

如果是lsqnonlin的话,只写x1-x2就行了。

如 ...

没关系,给你看篇文献,上面说的好像用lsqnonlin可以的

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Matlab在处理化工热力学数据中的应用.pdf
  • 2013-05-29 07:25:09, 176.86 K
7楼2013-05-29 07:24:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

你好。
文献正在阅读。
我研究研究先。
唉。还是学吧。
8楼2013-05-29 08:48:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 alan_fang 的主题更新
信息提示
请填处理意见