如何用matlab画复平面的图呢?
本例通过(求解带参数的一元二次方程组,画出两个根随参数的变化轨迹)来展示如何画复平面的图
-----------------------------------------------------------(●'◡'●)-------------------------------------------------------------
方法一:可以用plot(real(Y),imag(Y))函数画图,横轴是实轴,纵轴是虚轴
%复平面作图方法一
clear;
syms x a;
eq=x^2-3*x+a==0;
m=solve(eq,x)%解出两个根,用m表示
real_m1=real(subs(m(1),0:1:10));
imag_m1=imag(subs(m(1),0:1:10));
real_m2=real(subs(m(2),0:1:10));
imag_m2=imag(subs(m(2),0:1:10));
plot(real_m1,imag_m1,'ro');
hold on;
plot(real_m2,imag_m2,'bo');
hold off;
xlabel('Real');
ylabel('Imag');
legend('λ1','λ2');
运行结果:
方法二:直接用plot(Y)即可,Y为复数时函数等价于plot(real(Y),imag(Y))
%复平面作图方法二
clear;
syms x a;
eq=x^2-3*x+a==0;
m=solve(eq,x)%解出两个根,用m表示
plot(subs(m(1),0:1:10),'r*');
hold on;
plot(subs(m(2),0:1:10),'b*');
hold off;
xlabel('Real');
ylabel('Imag');
legend('λ1','λ2');
-----------------------------------------------------------(●'◡'●)-------------------------------------------------------------
之前一直用的是方法一,手动把实部虚部区别开,后来发现plot遇到复数时会自动区分实虚部作图。
不过习惯了用方法一,嘿嘿。plot(real(Y),imag(Y))一眼复数图。