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

5 次查看(过去 30 天)
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.

采纳的回答

Walter Roberson
Walter Roberson 2016-2-24
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Scatter Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by