| 查看: 1520 | 回复: 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需要不断赋新值,故要采用第一种方法,可是这两种那种计算正确呢。 |
» 猜你喜欢
8月时间戳变的,举个手。玩一下,释放压力
已经有11人回复
影响面上的因素
已经有6人回复
一个有机合成实验室都需要哪些设备?
已经有11人回复
求各位大神看下
已经有23人回复
面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇!
已经有30人回复
2027年申博
已经有4人回复
好消息?这个有何含义???
已经有10人回复
咨询面上基金
已经有4人回复
【2027博士申请】纳米药物递送方向
已经有4人回复
UV压敏胶开发
已经有7人回复

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










回复此楼
