gkyingkyin
2008-10-16, 10:19
我算的一个方程,想找到所有的实数解:
x=solve('1.0e+006=0.71e+006*(x/(0.1321^(1/3)))^(-2.09)');
x=eval(x)
n=length(x);
p=[];
for i=1:n
if isreal(x(i))
p(i)=true(1);
end;
end;
p
第一次结果得到:
x =
-0.4284 - 0.0583i
-0.4284 + 0.0583i
0.4323
p =
0 0 1
表示第三个结果是实数
可是再运行一次,运行结果就变成了:
x =
0.4323
-0.6033
-0.2534
p =
1 1 1
两次结果不一样,请问这是怎么回事啊,请大家帮我看看,谢谢了!!:ft:
x=solve('1.0e+006=0.71e+006*(x/(0.1321^(1/3)))^(-2.09)');
x=eval(x)
n=length(x);
p=[];
for i=1:n
if isreal(x(i))
p(i)=true(1);
end;
end;
p
第一次结果得到:
x =
-0.4284 - 0.0583i
-0.4284 + 0.0583i
0.4323
p =
0 0 1
表示第三个结果是实数
可是再运行一次,运行结果就变成了:
x =
0.4323
-0.6033
-0.2534
p =
1 1 1
两次结果不一样,请问这是怎么回事啊,请大家帮我看看,谢谢了!!:ft: