📄 f1.m
字号:
function f1(A,Y0,e,m)
n=size(A);n=n(1);
Y=zeros(n,m);
X=zeros(n,m+1);
Y(:,1)=Y0;
k=1;
while k<=m
X(:,k+1)=A*Y(:,k);
Y(:,k+1)=X(:,k+1)/norm(X(:,k+1),inf);
k=k+1;
end
X=X(:,2:m+1);
X
r=input('观察后确定方法') ;
if r==1
j=1;u=0;Y1=Y(:,1);
while j<=m
X1=A*Y1;
t=max(X1);
Y1=X1/t;
if abs(t-u)<e
t,Y1,j
return
end
j=j+1;u=t;
end
if j>m
'error,超出迭代次数'
end
return
elseif r==2
Y1=Y(:,1);u=0;j=1;
while j<=m
X1=A*A*Y1;
t=max(X1);
Y1=X1/t;
if abs(t-u)<e
t1=sqrt(t);t2=-t1;
v1=A*Y1+t1*Y1;
v2=A*Y1-t1*Y1;
t1,t2,v1,v2,j
return
end
j=j+1;
u=t;
end
if j>m
'error,超出迭代次数'
end
return
elseif r==3
n=size(A);n=n(2);
X1=X(:,m-2);X2=X(:,m-1);X3=X(:,m);
P1=X1(1,1);P2=X2(1,1);P3=X3(1,1);
Q1=X1(2,1);Q2=X2(2,1);Q3=X3(2,1);
R1=[P2,P1;Q2,Q1];
R2=[-P3;-Q3];
r=R1\R2;
p=r(1,1);q=r(2,1);
t1=-p/2+sqrt(q-(p/2)^2);t2=-p/2-sqrt(q-(p/2)^2);
t1,t2
v1=X2-t2*X1;v2=X2-t1*X1;
v1,v2
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -