the loop is not converging it is giving me an infinite value(it is increasing)

1 visualización (últimos 30 días)
clear variables
close all
clc
A = [1 1 2; 1 2 4; 1 2 5];
x = [1; 2; 3];
Error = 0.00001;
Diff= 1;
while Diff>Error
x1=A*x;
Diff=norm(x1-x);
x=x1;
end

Respuestas (1)

Torsten
Torsten el 20 de Mayo de 2023
Movida: Matt J el 20 de Mayo de 2023
Why do you think your fixed-point iteration should converge ?
If the absolute values of the eigenvalues of A were all < 1, it would work. But it is not the case:
A = [1 1 2; 1 2 4; 1 2 5];
eig(A)
ans = 3×1
7.1842 0.5728 0.2430
  5 comentarios
Torsten
Torsten el 20 de Mayo de 2023
Movida: Matt J el 20 de Mayo de 2023
What do you mean by "make it work" ? It works as you have programmed it and gives you the correct result for the matrix A and the initial vector x: Divergence.
Mahmoud Chawki
Mahmoud Chawki el 20 de Mayo de 2023
Movida: Matt J el 20 de Mayo de 2023
i found the answer, i need to normalize the new vector before using it again. thank you

Iniciar sesión para comentar.

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by