| 查看: 1580 | 回复: 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需要不断赋新值,故要采用第一种方法,可是这两种那种计算正确呢。 |
» 猜你喜欢
售SCI文章,我:8O.5.5.1O.54,科目全,可十急
已经有5人回复
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有5人回复
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有3人回复
面上没中,邀请各位路过的虫友分析一下分数
已经有13人回复
售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急
已经有8人回复
两块石头
已经有8人回复
初秋的晨风
已经有6人回复
学科评审组评审是指会评吗?
已经有9人回复
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
已经有14人回复
广西大学-广州大学招聘博士后 欢迎广大优秀人才!!!
已经有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










回复此楼
