24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1302  |  回复: 4

bsn_sky

铜虫 (小有名气)

[求助] 求用牛顿迭代法解非线性方程组的matlab程序已有2人参与

方程组形式如图所示,希望高手帮忙,谢谢~

求用牛顿迭代法解非线性方程组的matlab程序
D~(P4F`R%ZU2}EJ}BZ}Z38A.jpg
回复此楼

» 猜你喜欢

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

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

bsn_sky

铜虫 (小有名气)

第二行应该是2到Nz-1
2楼2014-05-08 21:11:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

895701777

木虫 (著名写手)

进城农民工

【答案】应助回帖

感谢参与,应助指数 +1
牛顿迭代很简单的,复杂的是高维的牛顿迭代
天道酬勤
3楼2014-05-09 09:23:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

reko34

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
白天没机会碰MATLAB,急的话先试,有问题的话等我晚上试,但注释的2个东西要LZ根据实际情况自己定。
MATLAB解N维牛顿法有优势的,我之前用EXCEL编的,可能会有语法搞起来。

a=?;
b=?;
x=?; %迭代初始向量

Jacob=zeros(n,n);
y=zeros(n,1);

while (stopcriterion) %迭代停止条件自己定
        pdx=5*x.^4+3*x.^2+1-b;
        for i=1:n
                Jacob(i,i)=pdx(i);
        end
        y(1)=x(1)^5+x(1)^3+x(1)+a-b*(x(1)+x(2));
        for i=2:n-1
                y(i)=fx(x(i),x(i-1),x(i+1),a,b);
                Jacob(i-1,i)=-b;
                Jacob(i,i-1)=-b;
        end
        y(n)=x(n)^5+x(n)^3+x(n)+a-b*(x(n)+x(n-1));
        Jacob(n-1,n)=-b;
        Jacob(n,n-1)=-b;
        dx=y/Jacob;
        x=x+dx;
end
%向量x是结果

function fx(x,x0,x1,a,b)
        fx=x^5+x^3+x+a-b*(x+x0+x1);
end
4楼2014-05-09 12:49:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

reko34

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
bsn_sky: 金币+50, ★★★★★最佳答案 2014-05-10 08:28:09
后面那个function文件要单独存成另一个m文件,名字也用fx,内容改成
function y=fx(x,x0,x1,a,b)
fx=x^5+x^3+x+a-b*(x+x0+x1);

主程序我不知道常数值,迭代初始值要根据对具体问题的了解定,所以你自己试吧
5楼2014-05-09 20:24:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bsn_sky 的主题更新
信息提示
请填处理意见