用c++求解三元二次非线性方程组_数值计算(十九)使用牛顿迭代法求解三元非线性方程组...

c3bdd295f024c1b8ce78a9c8d1979250.png
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;
        
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值