Warning: Imaginary parts of complex X and/or Y arguments ignored

5 vues (au cours des 30 derniers jours)
hani daniel
hani daniel le 24 Fév 2016
Commenté : hani daniel le 25 Fév 2016
function main
options=odeset('RelTol',1e-06)
Xo = [1;0];
tspan = [0,5];
[t,X] = ode45(@TestFunction,tspan,Xo,options);
figure
hold on
plot (t,X(:,1));plot (t,X(:,2),':')
legend ('x1','x2');ylabel('x');xlabel('t')
return
function dx_dt=TestFunction(t,x)
%function which returns a rate of change vector
M=[i,i;i,i]
dx_dt=M*x;
return
full error message:
Warning: Imaginary parts of complex X and/or Y arguments ignored
> In ode_plot_6 (line 17)
The program plots the graph, but generates the above error. Please help in eliminating the error message. Thank you.

Réponse acceptée

Walter Roberson
Walter Roberson le 24 Fév 2016
You know that in
M=[i,i;i,i]
that the "i" there is going to refer to sqrt(-1) ? You are going to get complex output, and MATLAB cannot display complex output when you use that plotting syntax.
You could use
plot (t, real(X(:,1)), 'b-', t, imag(X(:,1)), 'r-');
plot (t, real(X(:,2)), 'b:', t, imag(X(:,2)), 'r:')
This would plot the real components in blue and the imaginary components in red.
  1 commentaire
hani daniel
hani daniel le 25 Fév 2016
Walter, Thank you for your help in clarifying the issue. Regards HD

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Elementary Math dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by