function sys=NewtonD()
%{
程序功能:
1、使用牛顿迭代法求解非线性方程组
2、 fx=0;
3、以三元函数为例
%}
clear,clc,close all
num=50;%最大迭代次数
eps=1e-3; %迭代精度
X=zeros(num,3);
X(1,:)=[0.1, 0.1 ,-0.1]; %初始解
flag=0;
for k=1:num-1
syms x1 x2 x3
f=fx( x1, x2 ,x3 );
f=subs(f,{
x1,x2,x3},{
X(k,1),X(k,2) ,X(k,3)});
df=Jacobi(x1, x2 ,x3);
df=subs(df,{
x1,x2,x3},{
X(k,1),X(k,2), X(k,3)});
X(k+1,:)=X(k,: )-( dff' )'; %此处保证df存在逆矩阵
if( abs( X(k+1,1)-X(k,1) )<eps && abs( X(k+1,2)-X(k,2) )<eps && abs( X(k+1,3)-X(k,3) )<eps)
flag=1;
用c++求解三元二次非线性方程组_数值计算(十九)使用牛顿迭代法求解三元非线性方程组...
最新推荐文章于 2024-06-05 19:44:36 发布