% m为绝对值最大的特征值;
% index,当index=1时,迭代成功,当index=0时,迭代失败 if nargin<3 it_max=100; end
if nargin<2 ep=1e-5; end
n=length(A); index=0; k=0; m1=0; m0=0.01; % 修改移位参数,原点移位法加速收敛,为0时,即为幂法 I=eye(n); T=A-m0*I ; u=ones(n,1);
while k<=it_max v=T*u;
[vmax,i]=max(abs(v)); m=v(i); u=v/m; if abs(m-m1)<ep; index=1; break; end
m=m+m0; m1=m; k=k+1; end
6.用经典R-K方法求解初值问题
(1) y1
2y1 y2 2sinx,x y 2 y1 2y[0,10],2 2cosx 2sinx和精确解 y1(x) 2e x sinx
cosx
比较,分析结论。 y x
2(x) 2e解答:
以下为R—K数值解 Matlab 程序函数 clc;clear;
f=@(x,y1,y2)(-2*y1+y2+2*sin(x)); g=@(x,y1,y2) (y1-2*y2+2*cos(x)-2*sin(x)); h=0.1;
y1(1)=2;y2(1)=3;x(1)=0; for i=1:100;
K1=f(x(i),y1(i),y2(i)); L1=g(x(i),y1(i),y2(i));
K2=f(x(i)+0.5*h,y1(i)+0.5*h*K1,y2(i)+0.5*h*L1);
y1(0) 2
; y2
(0) 3