24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2166  |  回复: 5

杲1988

木虫 (小有名气)

[求助] matlab中利用LM算法解非线性方程组的问题已有1人参与

劳烦各位看下:求解如下线性方程组,x(1)-0.7*sin(x(1))-0.2*cos(x(2))=0;
                                                          x(2)-0.7*cos(x(1))+0.2*sin(x(2))=0 .
是利用改进的高斯牛顿算法,即LM算法求解,编制的三个m文件分别保存,LM算法主程序在lmm这个文件中,三个m文件如下:
function [x,val,k]=lmm(Fk,JFk,x0)
maxk=100;
rho=0.55;sigma=0.4;muk=norm(feval(Fk,x0));
k=0;epsilon=1e-6;n=length(x0);
while(k     fk=feval(Fk,x0);
    jfk=feval(JFk,x0);
    gk=jfk'*fk;
    dk=-(jfk'*jfk+muk*eye(n))\gk;
    if(norm(gk)     m=0;mk=0;
    while(m<20)
        newf=0.5*norm(feval(Fk,x0+rho^m*dk))^2;
        oldf=0.5*norm(feval(Fk,x0))^2;
        if(newf             mk=m;break;
        end
        m=m+1;
    end
    x0=x0+rho^mk*dk;
    muk=norm(feval(Fk,x0));
    k=k+1;
end
x=x0;
val=0.5*muk^2;

function JF=JFk(x)
JF=[1-0.7*cos(x(1)),0.2*sin(x(2));
    0.7*sin(x(1)),1+0.2*cos(x(2))];

function F = Fk(x)
F(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2));
F(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2));
F=F(;

命令窗调用格式如下:
>> clear all;
>> [x,val,k]=lmm(Fk,Jfk,[1,1])

问题是,一运行,显示:
??? Input argument "x" is undefined.
Error in ==> Fk at 3
F(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2));

想知道是哪里未定义?还是调用格式不对?
三个文件都没有报错,但调试时,显示
??? Input argument "Fk" is undefined.
Error in ==> lmm at 6
rho=0.55;sigma=0.4;muk=norm(feval(Fk,x0));

求各位指点!
对,版本是2011a,32位,XP系统。感激!!!
回复此楼

» 猜你喜欢

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

虚心求教,共同探讨。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

杲1988

木虫 (小有名气)

上述中,笑脸图标部分是:
F = F ( : ) ;
与论坛图标代码竟相同了...
求教 感激!
虚心求教,共同探讨。
2楼2013-03-30 10:21:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

杲1988

木虫 (小有名气)

一天了,继续求关注!
虚心求教,共同探讨。
3楼2013-03-30 22:13:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 应助指数+1, 3ks 2013-04-02 09:31:20
feval('Fk',x0)
showmethemoney
4楼2013-04-01 11:07:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖


csgt0: 金币+1, 谢谢 2013-04-16 16:24:35
x1: 0.526522621903241
x2: 0.507919719042045
5楼2013-04-16 09:05:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yaozirel

金虫 (正式写手)

【答案】应助回帖

命令窗调用格式如下:
>> clear all;
>> [x,val,k]=lmm(‘Fk’,‘Jfk’,[1;1])
风光背后,不是沧桑,就是硬抗。
6楼2014-10-09 18:43:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 杲1988 的主题更新
信息提示
请填处理意见