2017-07-14 68 views
0

我对Mathematica是全新的,我的数学背景非常有限。重新排列等式并找到导数和积分

我需要找出重新排列一个S形曲线函数所采取的步骤:

f= y0+a/(1+exp(-(x-x0)/b)) 

给出下列浓度:

C = C0+a/(1+exp(-(x-x0)/b)) 

我被赋予了溶液:

x=-ln(-(C-C0-a)/(C-C0))*b+x0 

衍生物:

dx/dC=(-1/(C-C0)+(C-C0-a)/(C-C0)^2)*(C-C0)*b/(C-C0-a) 

和积分:

Int(x,dC)=-b*a*ln(a/(C-C0))-b*ln(-1+a/(C-C0))*C+b*ln(-1+a/(C-C0))*C0+b*a*ln(-1+a/(C-C0))*C/(C-C0)-b*a*ln(-1+a/(C-C0))*C0/(C-C0)+x0*C 

这在数学做,我将只需要用它来解决,以便寻找措施来解决它我的头类似的问题。

提前致谢!

回答

0

让我们来看看我们是否可以帮助您解决这个问题。

首先,Mathematica是关于大写和使用正确字符的FANATIC。做任何事情,甚至与Mathematica期望的有所不同,你会得到错误信息,你不会理解或不正确的结果,甚至什么都没有。

接下来,Reduce函数通常是解决代数问题的好方法。所以,试试这个:

Reduce[y == y0 + a/(1 + Exp[-(x - x0)/b]), x, Reals] 

通知我用==告诉数学的东西,左,右边那个是被认为同样的事情。这与Mathematica认为您的意思是将y0+a的值保存在名为y的变量中的y=y0+a完全不同。并且我大写了Exp,我用[]代替了()围绕论点。所有这些都遵循Mathematica约定,所以你可以得到正确的答案。

如果你仔细输入所有的,然后按Shift-Enter,然后你应该得到一个复杂的答案:

(b != 0 && a == 0 && y0 == y) || (b != 0 && ((b != 0 && a < 0 && y < y0 < -a + y && 
x == x0 - b Log[(a - y + y0)/(y - y0)]) || (b != 0 && a > 0 && -a + y < y0 < y && 
x == x0 - b Log[(a - y + y0)/(y - y0)]))) 

这有很多的条件,有可能不会在你的情况适用。例如,注意b != 0其中说如果你的分母不是零,你几乎肯定会认为你不会有零。因此,让我们使用Simplify仅查看不会有零分母的情况。

Simplify[Reduce[y == y0 + a/(1 + Exp[-(x - x0)/b]), x, Reals], b != 0] 

,如果你尝试,你应该得到一个稍微简单的答案:

(a == 0 && y == y0) || (x + b Log[(a - y + y0)/(y - y0)] == x0 && 
((y < y0 && a + y0 < y && a < 0) || (a > 0 && a + y0 > y && y > y0))) 

如果你看一下刚才的第一部分,你看到(a == 0 && y == y0)这是一个答案。你可能没有想过它,但如果你的零为a那么你的“sigmoid”只是一个水平线y0。 Mathematica并不认为你显然从来不是这个意思,它只是磨碎了。

第二部分更有趣x + b Log[(a - y + y0)/(y - y0)] == x0如果你盯着那一点,你可能会发现它确实找到了你已经显示的解决方案,它只是移动了整个==的东西,如果你移动它们x == - b Log[(a - y + y0)/(y - y0)] + x0。但是,为了解决这个问题,还有额外的一点是关于y是否小于y0或大于y0以及a是否小于0等等。所有这些都是细节,他的头脑里有代数的人可能只是跳过直到他们被迫真正看看细节。

所以,先尝试一些简单的问题。看看你能否让Reduce为真正简单的问题告诉你正确的答案。你试图获得一点信心,它可以给你明智的答案。您也可以购买或借用Mathematica的非常简单的教程介绍。 Mathematica的一些旧版本的入门书籍,比如“Applied Mathematica:Getting Started,Getting It Done”只有几美元+邮资。你甚至可以在你的图书馆找到一份副本。这些可以为您提供实例和介绍,这些介绍对您的入门可能非常有帮助。

其他提示,小心使用变量名称的资本C,首都C已经有一个Mathematica的含义,这不是你的想法。

要找到一个衍生

D[Log[-(c - C0 - a)/(c - C0)]*b + x0, c] 

要找到一个组成

Integrate[Log[-(c - C0 - a)/(c - C0)]*b + x0, c] 

运气好,还有很多东西需要学习

+0

比尔,感谢million-这清楚地表明我在哪里犯了一个错误。你的帮助真的很感谢! – Jana