Ode45 would not converge with the following statement
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ying Liu
el 13 de Jul. de 2018
Comentada: Walter Roberson
el 16 de Jul. de 2018
Hi Everyone,
I have been struggling with ode45 for over a week and there is a weird convergence problem. So in my ode I have the following lines
B = kron(A, eye(3)); % size(A)=[n n]
C = B*y; % size(y)=[3*n 1]
and then C will be used in later calculations
And the ode kept returning NAN, I set A = zeros(n,n) and the problem still persists
However, if I set C=zeros(3*n,1) the ode converges well.
To my understanding, by setting A = zeros(n,n) and running the above lines, no matter what value y is C will be equal to zeros(3*n,1), then why would it affect the convergence of the ode? Anyone familiar with the problem here?
Thanks a lot!
1 comentario
Walter Roberson
el 14 de Jul. de 2018
When you set A to zeros(n,n), then what shows up for class(C) and nnz(C) ?
Is it possible your y is not class double ?
Respuesta aceptada
Carlos Felipe Rengifo
el 14 de Jul. de 2018
Hi, I guess the "y" vector contains a NaN, and as a consequence "C" contains also NaNs. This happen even if B is equal to zero (0 * nan = nan). You can verify this by adding the following sentence to your code:
if any(isnan(y))
disp('There is a nan in the vector y' );
end
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Type Identification en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!