c语言割线法解非线性方程,用割线法解非线性方程组.doc

用割线法解非线性方程组

自动化学院1011203050 陈晓祺

拟牛顿法解下列方程组

先将拟牛顿法的程序代码如下

Function[r,m]=mulVlineF,x0,A, eps)

Format long;

If nargin=3

Eps=1e-4;

End

X0=transpose(x0);

X1=tanspose(x1);

N=length(x0);

Fx=subs(F,findsym(F),x0);

Fx1=subs(F,findsym(F),x1);

H=x0-x1;

J=zeros(n,n);

Xt=x1;

Xt(1)=x0(1);

J(:,1)=(subs(F,findsym(F),xt)-sbus(F,findsym(F),x1))/h(1);

For i=2:n

Xt=x1;

Xt(1:i)=x0(1:i);

Xt_m=xl;

Xt_m(1:i-1)=x0(1:i-1);

J(:,i)=(subs(F,findsym(F),xt)-sbus(F,findsym(F),xt_m))/h(1);

End

R=x1-inv(J)*fx1;

M=1;

Tol=1;

While tol>eps

X0=x1;

X1=r;

Fx=subs(F,findsym(F),x0);

Fx1=subs(F,findsym(F),x1);

H=x0-x1;

J=zeros(n,n);

Xt=x1;

Xt(1)=x0(1);

J(:,1)=(subs(F,findsym(F),xt)-subs(F,findsym(F),x1))/h(1);

For i=2:n

Xt=x1;

Xt(1:i)=x0(1:i);

Xt_m=x1;

Xt_m(1:i-1)x0(1:i-1);

J(:,1)=(subs(F,findsym(F),xt)-subs(F,findsym(F),xt_m))/h(1);

End

R=x1-inv(J)*fx1;

Tol=norm(r-x1);

M=m+1;

If(m>100000)

Disp(fail);

Return;

End

End

然后直接调用该方法

Syms x y

Z=[x^2+y^2-5;2*x-y-3];

[r,m]=mulline(z,[0 1],[4,3])

[r,m]=mulline(z,[-3 1],[4,3])

得到解为(2,1)(0.4,-2.2)

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值