| 查看: 1481 | 回复: 7 | |||
[交流]
【求助】关于MATLAB解三次方程 已有3人参与
|
|
第一种 syms z a=0.013583 b=0.0010855 f=z^3-z^2+z*(a-b-b^2)-a*b s=solve(f,'z') x=vpa(s,6) 第二种 f=sym('z^3-z^2+z*(0.013583-0.0010855-0.0010855^2)-0.013583*0.0010855=0') s=solve(f,'z') d=vpa(s,6) 这两种:第一种解下下来是三个虚根,第二种是三个实根,而且虚根的实部是和实根一样的?为什么呢?因为程序a,b需要不断赋新值,故要采用第一种方法,可是这两种那种计算正确呢。 |
» 猜你喜欢
投英文期刊如何查重
已经有4人回复
5个%2F,非固定段22个字母
已经有7人回复
伯胺上甲基求助
已经有5人回复
生命口C13面上会评时间
已经有10人回复
生命口面上会评结束了吗大家有知道结果吗?现在还没有结果正常不?
已经有7人回复
生生命学部会评
已经有4人回复
H口,面上,时间戳7月7日。
已经有3人回复
小木虫没落了,除了祈祷帖子,几乎看不到有价值的帖子
已经有14人回复
会评
已经有5人回复
E口会评
已经有13人回复

2楼2010-04-23 14:53:18

3楼2010-04-23 14:54:31
4楼2010-04-23 15:46:55

5楼2010-04-23 17:14:14
|
不能保证方程解出的根都是实根,所以求出实根后,用如下程序提取实根 提取实根比较 第一种 syms z a=0.013583 b=0.0010855 f=z^3-z^2+z*(a-b-b^2)-a*b x=solve(f,'z') x=double(x) for k=1:length(x) y(k) = isreal(x(k)); end X_real=x(y) 第二种 f=sym('z^3-z^2+z*(0.013583-0.0010855-0.0010855^2)-0.013583*0.0010855=0') s=solve(f,'z') x=double(s) for k=1:length(x) y(k) = isreal(x(k)); end X_real=x(y) 第一种无法提取实根,第二种可以 |
6楼2010-04-23 19:35:59

7楼2010-04-24 17:19:25

8楼2013-10-11 10:23:49











回复此楼
