| 查看: 1599 | 回复: 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需要不断赋新值,故要采用第一种方法,可是这两种那种计算正确呢。 |
» 猜你喜欢
现代”学阀”该如何界定
已经有14人回复
求合成方法
已经有8人回复
师弟论文见刊大半年才想起来申请专利,还能抢救一下吗?
已经有4人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有5人回复
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有5人回复
有机合成以后会不会被AI改变?做科研的虫友怎么看
已经有8人回复
我的奶奶
已经有3人回复

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










回复此楼
