kalfca 发表于 2011-4-21 14:51

求助 如何在图像中把虚数解标出来

b=0;
for j=1:100
    p(j)=0+0.1*j;
b=p(j);
a=;
x=roots(a);
d(j)=x(1)
end
plot(p,d)
hold on

这个程序画的是方程解的图,但是有的解是虚数,matlab好像是直接取实数部分放到图里面去了,请问怎样才能把图里面属于虚数的那些点标成红色

hancy 发表于 2011-4-21 15:59

本帖最后由 hancy 于 2011-4-21 16:12 编辑

real(d)代表d的实部,imag(d)是虚部

plot(p,imag(d),'r.')


kalfca 发表于 2011-4-21 16:30

回复 2 # hancy 的帖子

终于画出来了万分感谢~~

kalfca 发表于 2011-4-21 17:29

本帖最后由 kalfca 于 2011-4-21 17:34 编辑

回复 2 # hancy 的帖子

才想起来这个图里面的点仅仅只是虚部值的点,不是方程解的点,下面的图就是这个方程的解的图,我希望是将图中那些解的点是虚数用红点标示出来,效果如下,图中的红点是我用图形编辑器画的...我有个思路就是加个判定语句



hancy 发表于 2011-4-21 18:01

回复 4 # kalfca 的帖子

b=0;
for j=1:100
p(j)=0+0.1*j;
b=p(j);
a=;
x=roots(a);
d(j)=x(1);
end
for i=1:100
if imag(d(i))~=0
D(i)=d(i);
else D(i)=-25;
end
end
plot(p,real(d),p,real(D),'r.')
axis()
hold on
虽然实现了你的目的,但是过程很繁琐,实际上是根据已知结果对图像的处理
额,我也新手,水平不足。希望有高人提供真正的解决方法!

kalfca 发表于 2011-4-21 20:06

回复 5 # hancy 的帖子

你比我厉害多了 我才是超级新手,为了毕业设计没办法,大学四年没碰过matlab...这个就已经很好很好啦~非常感谢你我可以向老师交代了~~

kalfca 发表于 2011-4-21 20:12

回复 5 # hancy 的帖子

else D(i)=-25;
end
end
plot(p,real(d),p,real(D),'r.')
axis()
hold on
完了,老大,这有个地方看不懂哇 这个D(i)=-25有什么作用呢 为什么选-25?作用是使点超过图形的表示范围么~~?

hancy 发表于 2011-4-21 20:25

回复 7 # kalfca 的帖子

是啊,下面那个axis()是控制显示范围的
-25在-20下面,不会显示在图上{:{33}:}

kalfca 发表于 2011-4-21 20:26

回复 8 # hancy 的帖子

哈哈 这你都想得到 {:{23}:}

hancy 发表于 2011-4-21 20:31

回复 9 # kalfca 的帖子

这是取巧的办法,往往大型一点的题目就没法用了-_-!!

还是等待高手给个真正的解决办法吧

kalfca 发表于 2011-4-21 20:38

回复 10 # hancy 的帖子

呵呵 好吧 辛苦你了~

meiyongyuandeze 发表于 2011-4-22 09:05

本帖最后由 meiyongyuandeze 于 2011-4-22 09:06 编辑

clear;
clc;
close all
format long;
b0=linspace(0,10,100);
d=arrayfun(@(b)roots(),b0,'Uni',0);
dd=cell2mat(d)用匿名函数+arryfun可以比较简单的完成循环求根,但实在看不出哪里有复根。。。。。所以没画图!
显然你的多项式有一个重根为-1,而且每个b值对应三个根。。。。。

kalfca 发表于 2011-4-22 10:58

回复 12 # meiyongyuandeze 的帖子

这个有复根的啊,具体图形显示不出来我也不知道,我只有带数字进去验算
当b=3的时候 a=(1 3 3 1)
a=;
>> roots(a)

ans =

-1.0000 + 0.0000i
-1.0000 - 0.0000i
-1.0000   
这个是结果....

kalfca 发表于 2011-4-22 11:01

回复 12 # meiyongyuandeze 的帖子

只是不知道为什么会出现i而且i 前面还是0.0000

kalfca 发表于 2011-4-22 11:08

回复 12 # meiyongyuandeze 的帖子

刚才试了下这个程序 有复根 不过很小很小....
dd =

Columns 1 through 4

2.000000000000001                     2.053191489361700                     2.112359550561797                     2.178571428571430                     
-0.999999981369628                      -1.000000000000000 + 0.000000016292727i -1.000000000000000 + 0.000000015477330i -0.999999999999999 + 0.000000006252422i
-1.000000018630372                      -1.000000000000000 - 0.000000016292727i -1.000000000000000 - 0.000000015477330i -0.999999999999999 - 0.000000006252422i

这个图怎么画呢 都显示不出来...
页: [1] 2
查看完整版本: 求助 如何在图像中把虚数解标出来