文档介绍:: .
1. LU分解:
[LU]=lu(A);追赶法functionx=zhuiganfa(A,b)al(f,a);whileit<=maxit&abs(x-a)>tol,
it=it+1;
a=x;
x=feval(f,a);end此函数的调用:
>>fixpnt1('f',2,100,1e-5)ans=
^方法(多个不动点迭代函数)function[x,it]=fixpnt(np,a,maxit,tol)switchnp,
case1,
phi=inline('(3*x+10F(1/5)');
case2,
phi=inline('sin(10*x)+2*cos(x)-3');
case3,
phi=inline('3-atan(x)');
case4,
phi=inline('-2-1/log(xA2+x+1)');endit=0;x=phi(a);whileit<=maxit&abs(x-a)>tol,
it=it+1;
a=x;
x=phi(a);end使用与输入:
>>fixpnt(2,1,100,1e-5)ans=
-[xit]=jacobi(A,b,tol)D=diag(diag(A));L=D-tril(A);U=D-triu(A);x=zeros(size(b));forit=1:500x=D\(b+L*x+U*x);error=norm(b-A*x)/norm(b);if(error<tol)
break;endend高斯迭代function[xit]=gaosi(A,b,tol)D=diag(diag(A));L=D-tril(A);U=D-triu(A);x=zeros(size(b));forit=1:500
x=(D-L)\(b+U*x);error=norm(b-A*x)/norm(b);if(error<tol)
break;endendSOR迭代function[xit]=SOR(A,b,w,tol)D=diag(diag(A));L=D-tril(A);U=D-triu(A);x=zeros(size(b));forit=1:500
x=(D-w*L)\(w*b+(1-w)*D*x+w*U*x);error=norm(b-A*x)/norm(b);if(error<tol)
6. break;endend二分法:
1. :functionv=f(x)v=xA3-x-1;end二分法程序如下:
function[x,it]=erfengfa(a,b,f,tol)fa=feval(f,a);fb=feval(f,b);it=0;whileabs(b-a)>tol,
it=it+1;
x=a/2+b/2;
fx=feval(f,x);ifsign(fx)==sign(fa),a=x;fa=fx;else
7. b=x;fb=fx;endend牛顿法: