24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2238  |  回复: 13

309065816

木虫 (正式写手)

[求助] 请教高手,如何解非线性方程组!!!已有1人参与

(1)D*(c-x)-k1*x*(1-y-z)+k01*y-k4*x*z+k5*z=0
(2)k1*x*(1-y-z)-k01*y-k2*y+k02*z-k3*y*z=0
(3)k2*y-k02*z+k3*y*z-k4*x*z-k5*z=0
上述方程组中,D,k1~k5均为一些变量参数,想得到x,y,z关于这些参数的表达式。
想通过代入消元或者其他方法将上述方程化为一元多次方程的形式。例如,将y,z用x表示,最终将方程化为关于x的一元多次方程。
我自己计算过,由于方程中含有一些相同项,通过将(1)(2)(3)式相加得到,z关于x的表达式;
将(1)(2)相加,再将z关于x的表达式代入,可得到y关于x的表达式;
再将上述y.z关于x的表达式代入到(3)中,结果为0,没有得到关于x的表达式。
上述过程应该是有问题的,但是具体问题不知道在哪?正确的做法应该是怎么样的?
想问下具体的过程该是怎么样的?
我最终想要的就是将上述3个方程化为一个一元多次方程,请高手指点一下!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

peterflyer

木虫之王 (文学泰斗)

peterflyer


【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
309065816: 金币+10, 有帮助, 好的,谢谢了,我先试试,对的话会再给金币的。 2014-07-01 21:15:31
309065816: 金币+10 2014-07-08 12:54:26
先将x看作常量,通过(1)、(2)解得y=y(x)、z=z(x),再代入(3),这样就应该不会出现楼主述及的问题了。如果这样做仍会出现楼主遇到的问题,那只能说明这三个方程不是相互独立的,至少一个方程会有另外两个推出。这样一来,方程组的解如果存在的话就会有无穷多个。
3楼2014-07-01 21:12:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

309065816

木虫 (正式写手)

根据要求,希望能够手动推导得出一元多次方程,matlab中的solve函数求解精度不能满足要求,且存在问题
2楼2014-07-01 20:47:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hank612

至尊木虫 (著名写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
309065816(feixiaolin代发): 金币+10 2014-07-09 19:58:01
用 Mathematica 的Groebner Basis 功能吧, 一步到位
自己google它的原理, 反正到处都是
请教高手,如何解非线性方程组!!!
Emuch018.png

We_must_know. We_will_know.
4楼2014-07-02 10:27:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
4楼: Originally posted by hank612 at 2014-07-02 10:27:51
用 Mathematica 的Groebner Basis 功能吧, 一步到位
自己google它的原理, 反正到处都是

Emuch018.png

嗯,十分感谢。不过老师是要求我自己手算推导。所以还是要花时间动动笔,不过你这个结果可用来作为参考。
5楼2014-07-02 12:51:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

daul_0124

银虫 (初入文坛)

k01,k02何意?
学习
6楼2014-07-02 21:15:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
6楼: Originally posted by daul_0124 at 2014-07-02 21:15:31
k01,k02何意?

本来应该是k-1,k-2.表示逆反应速率常数,为了简便起见,就用了k01,k02
7楼2014-07-03 00:19:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
4楼: Originally posted by hank612 at 2014-07-02 10:27:51
用 Mathematica 的Groebner Basis 功能吧, 一步到位
自己google它的原理, 反正到处都是

Emuch018.png

想给你发金币,但是你不是应助回帖,不知道怎么才能把金币发给你
8楼2014-07-08 12:55:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
4楼: Originally posted by hank612 at 2014-07-02 10:27:51
用 Mathematica 的Groebner Basis 功能吧, 一步到位
自己google它的原理, 反正到处都是

Emuch018.png

我手算推导的结果跟你计算的一样。这个结果应该只有一个吧?你能不能再帮我在试试分别用y,z表示的一元多次方程呢?一元四次方程求解不是很方便。我基本都是手算。
9楼2014-07-08 12:57:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
4楼: Originally posted by hank612 at 2014-07-02 10:27:51
用 Mathematica 的Groebner Basis 功能吧, 一步到位
自己google它的原理, 反正到处都是

Emuch018.png

我安装了一个mathematics9.0,点文件-新建-程序包,然后按照你照片里面的输入,然后运行程序包,没有输出结果,
=GroebnerBasis[{D*(c-x)-k1*x*(1-y-z)+k01*y-k4*x*z+k5*z,
k1*x*(1-y-z)-k01*y-k2*y+k02*z-k3*y*z,
k2*y-k02*z+k3*y*z-k4*x*z-k5*z},{x,D,c,k1,k01,k4,k5,k2,k02,k3},{y,z}]
提示:
Syntax::tsntxi: "=GroebnerBasis[{D*(c-x)-k1*x*(1-y-z)+k01*y-k4*x*z+k5*z,k1*x*(1-y-z)-k01*y-k2*y+k02*z-k3*y*z,k2*y-k02*z+k3*y*z-k4*x*z-k5*z},{x,D,c,k1,k01,k4,k5,k2,k02,k3},{y,z}]" 不完整;需要更多输入.
Syntax::sntxi: 不完全表达式;需要更多输入 .
这是怎么回事呢?因为之前一直用matlab,对这个不了解,所以用起来比较费劲。
10楼2014-07-08 15:49:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 309065816 的主题更新
信息提示
请填处理意见