相关疑难解决方法(0)

获取mathematica以使用另一个等式简化表达式

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

我的表达的一个例子是:

K=a*b*t/((t+f)c*d);
Run Code Online (Sandbox Code Playgroud)

(实际表达式是巨大的,数千个字符).我想用p替换所有出现的表达式t /(t + f)

p=t/(t+f);
Run Code Online (Sandbox Code Playgroud)

这里的目标是找到一个替代品,以便所有的t和f都被p代替.在这种情况下,替换p是一个无量纲化的参数,因此它似乎是一个很好的候选替代品.

我无法弄清楚如何在mathematica中做到这一点(或者如果可能的话).我试过了:

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

毫不奇怪,这不起作用.如果有一种方法可以强制它用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;
Run Code Online (Sandbox Code Playgroud)

然后我替换p,并调用(正常)FullSimplify,给我这个表达式.

testEQ2= (ton (B ton^2 + A^2 B ton (toff + ton) + 
   A (ton^2 + B (toff + ton)^2)))/(toff + ton)^3;
Run Code Online (Sandbox Code Playgroud)

最后,我尝试了下面的所有建议,除了最后一个(不知道它是如何工作的!)

只有消除选项有效.所以我想我会从现在开始尝试这种方法.谢谢.

EQ1 = a1 == (ton (B ton^2 + A^2 B ton (toff + ton) + 
        A (ton^2 …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica simplify

16
推荐指数
3
解决办法
2万
查看次数

如何对多项式执行复杂的变量更改(在Mathematica中)

我有四个变量(w,x,y和z)中的整数多项式,我知道这些变量可以写成这六个变量中的整数多项式:

  • a = wz
  • b = xy
  • c = w ^ 3 + z ^ 3
  • d = x + y
  • e = w ^ 3 x + yz ^ 3
  • f = w ^ 3 y + xz ^ 3

如何使用Mathematica(或者Java)轻松地对变量进行这种更改?

java math wolfram-mathematica polynomial-math

13
推荐指数
1
解决办法
1762
查看次数

关于mathematica中"智能"替换的问题

我如何告诉mathematica巧妙地做这个替换?(或者我如何更聪明地告诉mathematica做我想做的事)

expr = b + c d + ec + 2 a;
expr /. a + b :> 1

Out = 2 a + b + c d + ec
Run Code Online (Sandbox Code Playgroud)

我希望答案是a + cd + ec + 1.在有人建议之前,我不想这样做a :> 1 - b,因为出于审美目的,只要无法进行简化,我就想拥有两者a并且b在我的等式中a+b = 1.


此外,我如何得到它取代的所有实例1-b,-b+1或者-1+b,b-1a-a分别,反之亦然?

以下是此部分的示例:

expr = b + c (1 - a) + (-1 + b)(a - …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

6
推荐指数
2
解决办法
2472
查看次数

空白在替换规则的分母中

Mathematica 7.0似乎不喜欢在分母中有空白.谁能解释为什么会这样?

输入:

ClearAll["Global`*"];
(*Without blanks:*)
a^2 / b^2 /. a^2 / b^2 -> d
(*with:*)
a^2 / b^2 /. a^c_ / b^c_ -> d
(*Without blanks:*)
a^2 / b^2 /. (a / b)^2 -> d
(*With:*)
a^2 / b^2 /. (a / b)^c_ -> d
(*Without blanks:*)    
a^2 / b^2 /. a^2 * b^(-2) -> d
(*With:*)
a^2 / b^2 /. a^c_ * b^(-c_) -> d
Run Code Online (Sandbox Code Playgroud)

输出:

d
a^2/b^2
d
a^2/b^2
d
a^2/b^2
Run Code Online (Sandbox Code Playgroud)

我正在努力解决一个更复杂的问题.我要做的替换是在表单中:

(a ^ c_. * Coefficient1_. …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

3
推荐指数
2
解决办法
336
查看次数