24小时热门版块排行榜    

查看: 1283  |  回复: 7

dxyan

木虫 (正式写手)

[交流] 【求助】关于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需要不断赋新值,故要采用第一种方法,可是这两种那种计算正确呢。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主


anyuezhiji(金币+1):欢迎应助 2010-04-23 14:54
带入方程验证一下就知道了,第二种方法计算出来的正确。

建议先用solve求解出来,然后用subs替换a、b,得到结果
给个简单的例子

syms a b x;
s = solve('x^3-x^2+x*(a-b-b^2)-a*b=0');
result = subs(s,{a,b},{[0.013583,1,2,3],[0.0010855,3,2,1]})
明德厚学、求是创新
2楼2010-04-23 14:53:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

求解结果是

result =

   0.9874 - 0.0000i   3.9651 + 0.0000i   2.8751             1.5747         
   0.0113 + 0.0000i  -0.2820 - 0.0000i  -0.9376 - 0.7157i  -0.2874 - 1.3500i
   0.0013 - 0.0000i  -2.6831 + 0.0000i  -0.9376 + 0.7157i  -0.2874 + 1.3500i
每一列对应为一个系数a和b的解。
明德厚学、求是创新
3楼2010-04-23 14:54:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxyan

木虫 (正式写手)

还是用虚根形式表达的呀,我的目的是计算出根,提取实根,再比较大小。虽然解值虚根部分是0,但这样是的算是虚根呢还是实根,不论怎样,这种虚根的表达方式(虚根部分是0)没法将实根提取出来。
引用回帖:
Originally posted by xiegangmai at 2010-04-23 14:54:31:
求解结果是

result =

   0.9874 - 0.0000i   3.9651 + 0.0000i   2.8751             1.5747         
   0.0113 + 0.0000i  -0.2820 - 0.0000i  -0.9376 - 0.7157i  -0.2874 - 1.3500i
   0.0013 - 0.0 ...

4楼2010-04-23 15:46:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

★ ★
dxyan(金币+5): 2010-04-23 19:36
adu886886(金币+2):谢谢提供意见 2010-04-24 11:09
你能保证你带入的系数计算出来的解都是实数值吗?
第一列中是你需要的解,虚部为零。

如果只需要实部,用real函数就可以了。
明德厚学、求是创新
5楼2010-04-23 17:14:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxyan

木虫 (正式写手)

不能保证方程解出的根都是实根,所以求出实根后,用如下程序提取实根

提取实根比较
第一种
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)
第一种无法提取实根,第二种可以
引用回帖:
Originally posted by xiegangmai at 2010-04-23 17:14:14:
你能保证你带入的系数计算出来的解都是实数值吗?
第一列中是你需要的解,虚部为零。

如果只需要实部,用real函数就可以了。

6楼2010-04-23 19:35:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主


anyuezhiji(金币+1):谢谢提供意见 2010-04-24 20:34
dxyan(金币+5): 2010-04-27 11:40

楼主真有意思。你先用isreal判断计算出的结果是否是实数,再对x中的实数取实数部分?
这样做有什么意思呢?

用isreal得到的y(k)是个逻辑数组,能用作x中元素的引用吗?

[ Last edited by xiegangmai on 2010-4-24 at 17:21 ]
明德厚学、求是创新
7楼2010-04-24 17:19:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ytudou

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
7楼: Originally posted by xiegangmai at 2010-04-24 17:19:25

楼主真有意思。你先用isreal判断计算出的结果是否是实数,再对x中的实数取实数部分?
这样做有什么意思呢?

用isreal得到的y(k)是个逻辑数组,能用作x中元素的引用吗?
...

请教一下,matlab能计算二元高次方程吗?如何计算呢?
要给力啊,MS~LAMMPS~
8楼2013-10-11 10:23:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dxyan 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 311求调剂 +7 26研0 2026-03-15 7/350 2026-03-21 19:06 by ColorlessPI
[考研] 299求调剂 +5 shxchem 2026-03-20 7/350 2026-03-21 17:09 by ColorlessPI
[基金申请] 学校已经提交到NSFC,还能修改吗? 40+4 babangida 2026-03-19 9/450 2026-03-21 16:12 by babangida
[考研] 085601调剂 358分 +3 zzzzggh 2026-03-20 4/200 2026-03-21 10:21 by luoyongfeng
[考研] 求调剂 +3 Ma_xt 2026-03-17 3/150 2026-03-21 02:05 by JourneyLucky
[考研] 一志愿重庆大学085700资源与环境专硕,总分308求调剂 +3 墨墨漠 2026-03-18 3/150 2026-03-21 00:39 by JourneyLucky
[考研] 一志愿南京理工大学085701资源与环境302分求调剂 +4 葵梓卫队 2026-03-18 6/300 2026-03-20 23:02 by JourneyLucky
[考研] 323求调剂 +3 洼小桶 2026-03-18 3/150 2026-03-20 22:54 by JourneyLucky
[考研] 一志愿华中农业071010,总分320求调剂 +3 困困困困坤坤 2026-03-20 3/150 2026-03-20 20:38 by 学员8dgXkO
[考研] 289求调剂 +6 怀瑾握瑜l 2026-03-20 6/300 2026-03-20 20:30 by 学员8dgXkO
[考研] 一志愿西安交通大学 学硕 354求调剂211或者双一流 +3 我想要读研究生 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[论文投稿] 申请回稿延期一个月,编辑同意了。但系统上的时间没变,给编辑又写邮件了,没回复 10+3 wangf9518 2026-03-17 4/200 2026-03-19 23:55 by babero
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 085600材料与化工求调剂 +6 绪幸与子 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[考研] 材料工程专硕调剂 +5 204818@lcx 2026-03-17 6/300 2026-03-18 22:55 by 204818@lcx
[考研] 085601求调剂 +4 Du.11 2026-03-16 4/200 2026-03-17 17:08 by ruiyingmiao
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 一志愿南京大学,080500材料科学与工程,调剂 +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
信息提示
请填处理意见