> restart; > with(LinearAlgebra): printlevel:=0; > vectoriteration:=proc(A,x,eps) > local x0, x1, x2, nor , ew; > # option trace; > x0:=VectorScalarMultiply(x,1/Norm(x, infinity)); # Normierung von x > x1:=MatrixVectorMultiply(A,x0); > x1:=VectorScalarMultiply(x1,1/Norm(x1, infinity)); > while (Norm(VectorAdd(x0,x1,1,1), infinity) >eps) and (Norm(VectorAdd(x0,x1,1,-1), infinity) >eps) do > x2 :=MatrixVectorMultiply(A,x1); > x2:=VectorScalarMultiply(x2,1/Norm(x2, infinity)); > x0:=x1; > x1:=x2; > end do; > print(x1); # Eigenwertberechnung nor:=DotProduct(x1,x1); x2:=MatrixVectorMultiply(A,x1); ew:=DotProduct(x1,x2)/nor; > print('Eigenwert', ew); > end: > > > A:=Matrix([[4.,-1.],[-5.,0.]]); > x0:=Vector([1.,1.]); > eps:=0.001; > vectoriteration(A,x0,eps); >