1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MATLAB牛顿法求解非线性方程组2

MATLAB牛顿法求解非线性方程组2

时间:2020-11-26 00:26:22

相关推荐

MATLAB牛顿法求解非线性方程组2

%% 牛顿法主程序clear;clcformat;x0=[0 0]; % 迭代初始值eps = 0.00001; % 定位精度要求for i = 1:10f = double(subs(fun(x0),{'x1' 'x2'},{x0(1) x0(2)}));df = double(subs(dfun(x0),{'x1' 'x2'},{x0(1) x0(2)})); % 得到雅克比矩阵x = x0 - f/df;if(abs(x-x0) < eps)break;endx0 = x; % 更新迭代结果enddisp('定位坐标:');xdisp('迭代次数:');i%% 定义非线性方程组function f=fun(x);%定义非线性方程组如下%变量x1 x2%函数f1 f2syms x1 x2f1 = sqrt((x1-4)^2 + x2^2)-sqrt(17);f2 = sqrt(x1^2 + (x2-4)^2)-5;f=[f1 f2];end%% 定义雅克比矩阵function df=dfun(x);f=fun(x);df=[diff(f,'x1');diff(f,'x2')]; %雅克比矩阵end

运行结果如下:

定位坐标:

x =

0.0000 -1.0000

迭代次数:

i =

4

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。