2017-07-14 67 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