声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1647|回复: 1

[编程技巧] 牛顿法解非线性方程组时解为NaN

[复制链接]
发表于 2011-8-24 10:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function f=f1(x0)
x=x0(1);
y=x0(2);
z=x0(3);
f1=x^2+y^2+z^2-1;
f2=2*x^2+y^2-4*z;
f3=3*x^2-4*y+z^2;
f=[f1 f2 f3];

function f=df1(x0)
x=x0(1);
y=x0(2);
z=x0(3);
f=[2*x 2*y 2*z
   4*x 2*y -4
   6*x -4 2*z];

function [x,n,data]=mulNewton(x0,tol)
if nargin==1
    tol=1.0e-4;
end
x1=x0-f1(x0)/df1(x0);
n=1;
while (norm(x1-x0)>tol)
    x0=x1;
    x1=x0-f1(x0)/df1(x0);
    n=n+1;
    data(:,n)=x1;
end
x=x1;

x0=[1e10 1e10 1e10];
[x,n,data]=mulNewton(x0);
disp(x)
disp(n)


为什么求出的解为以下形式:
>> clear
new_main
   NaN   NaN   NaN

   244
希望大侠们能帮下忙~

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2011-8-24 11:21 | 显示全部楼层
应该是不收敛了!
建议看下别人的帖并检查下其中差异
牛顿迭代 - 原址 http://www.mathworks.com/matlabcentral/fileexchange/4313
    newton raphson算法 http://forum.vibunion.com/thread-41020-1-1.html
   牛顿法求解非线性方程 http://forum.vibunion.com/thread-81003-1-1.html

点评

To Roc: 帖多但没含金, 阁下高手们出手一帖抵我千帖呀!  发表于 2011-8-27 12:49

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 05:59 , Processed in 0.065701 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表