4.12算法:病态矩阵函数
代码:
function [l,v,s]=pmethod(A,x0,eps)
if nargin==2
eps=1.0e-6;
end
v=x0;
M=5000;
m=0;
l=0;
for(k=1:M)
y=A*v;
m=max(y);
v=y/m;
if(abs(m-1)<eps)
l=m;
s=k;
return;
else
if(k==M)
disp('µü´ú²½ÊýÌ«¶à£¬ÊÕÁ²ËÙ¶ÈÌ«Âý!');
l=m;
s=k;
else
l=m;
end
end
end
例题:
在matlab命令窗口中输入结果如下:
5.1算法:非线性方程求实根对分法
对分法具体求解步骤介绍
算法代码:
function x = mabisec(fun,a,b,ep)
k = 0;
x = (a+b)/2.0;
while abs(feval(fun,x))>ep||(b-a>ep)
if feval(fun,x)*feval(fun,a)<0
b = x;
else
a = x;
end
k= k+1; %´Ë´¦Á½Ðв»¼Ó·ÖºÅ¿ÉÊä³öÈ«²¿Öмä½á¹û
x = (a+b)/2.0;
end
例题:
用对分法算法 (取[a,b]=[1,2]) 解算非线性方程 x^3-x-1=0 的根。
在matlab命令窗口中输入结果如下: