gpt4 book ai didi

wolfram-mathematica - 获取mathematica来简化另一个方程式的表达

转载 作者:行者123 更新时间:2023-12-03 14:42:38 24 4
gpt4 key购买 nike

我有一个非常复杂的mathematica表达式,我想通过使用一个新的,可能是无量纲的参数来简化。

我的表达的一个例子是:

K=a*b*t/((t+f)c*d);


(实际的表达式很大,有数千个字符)。我想将所有出现的t /(t + f)表达式替换为p

p=t/(t+f);


此处的目标是找到一个替换项,以便将所有t和f替换为p。在这种情况下,替换p是一个无量纲的参数,因此看起来是个不错的候选替换。

我无法弄清楚如何在mathematica中执行此操作(或者如果可能的话)。我试过了:

eq1= K==a*b*t/((t+f)c*d);
eq2= p==t/(t+f);
Solve[{eq1,eq2},K]


毫不奇怪,这行不通。如果有一种方法可以强迫它以p,a,b,c,d来求解K,这可能会奏效,但是我也不知道该怎么做。有什么想法吗?



编辑#1(11/10/11-1:30)
[删除以简化]

好的,新手法。我取p = ton /(ton + toff)并将p乘以几个表达式。我知道p可以完全消除。新的表达式(用p表示)是

testEQ = A B p + A^2 B p^2 + (A+B)p^3;


然后,我替换了p,并调用了(正常)FullSimplify,得到了这个表达式。

testEQ2= (ton (B ton^2 + A^2 B ton (toff + ton) + 
A (ton^2 + B (toff + ton)^2)))/(toff + ton)^3;


最后,我尝试了以下所有建议,但最后一个建议除外(不确定其工作原理!)

仅消除选项有效。所以我想从现在开始我将尝试这种方法。谢谢。

EQ1 = a1 == (ton (B ton^2 + A^2 B ton (toff + ton) + 
A (ton^2 + B (toff + ton)^2)))/(toff + ton)^3;
EQ2 = P1 == ton/(ton + toff);
Eliminate[{EQ1, EQ2}, {ton, toff}]

A B P1 + A^2 B P1^2 + (A + B) P1^3 == a1


我应该补充一点,如果目标是进行所有可能的替代,而剩下的替代,我仍然不知道该怎么做。但是看来,如果替换可以完全消除一些变量,则Eliminate []效果最佳。

最佳答案

你有尝试过吗?

K = a*b*t/((t + f) c*d);
Solve[p == t/(t + f), t]
-> {{t -> -((f p)/(-1 + p))}}

Simplify[K /. %[[1]] ]
-> (a b p)/(c d)


编辑:哦,您知道 Eliminiate吗?

Eliminate[{eq1, eq2}, {t,f}]
-> a b p == c d K && c != 0 && d != 0

Solve[%, K]
-> {{K -> (a b p)/(c d)}}


编辑2:而且,在这种简单的情况下,同时解决 Kt似乎也可以解决问题:

Solve[{eq1, eq2}, {K, t}]
-> {{K -> (a b p)/(c d), t -> -((f p)/(-1 + p))}}

关于wolfram-mathematica - 获取mathematica来简化另一个方程式的表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com