2016-08-02 132 views
-1

我希望我的標題是可以理解的。我正在做一個大學項目,研究氯氣(用於消毒目的)在海水中隨時間衰減的情況。據瞭解,有一個迅速的初始衰減,然後它減慢,導致兩個衰減率,但源於相同的整體指數衰減。之前已經完成了一些工作,但我正在計算我的城市周圍海水的流量。一個指數衰減圖的兩個衰減率

我是新來的python,只開始學習它爲這個項目。在這個網站上的指數衰減的其他答案只處理一個衰減率,而不是我需要的兩個。

我有值並已經做出了圖表,所以我有x值和y值。 我需要的答案是 c(t)= c(a * exp ^( - mt))+((1-a)* exp ^( - nt))
其中m和n是比率,t是時間,c是初始濃度,a是比例常數。 m率是快速的初始速率,而n率是較慢的。 c(t)值最終將達到零或接近它。

的數據是ASCII/TXT格式,或者我可以只需鍵入它爲x = np.array ...

如果它是不可能在同一時間做這樣纔有可能如果我將這些部分分開以分別獲得兩個費率?即我只輸入m比率所需的數據,然後再計算n比率。

我見過上面提到的表格,我需要科學論文,但我不確定他們是如何做到的。

非常感謝你提前給任何人,幫助

+1

嗨馬特, 對我個人來說,你的問題不是很清楚。我明白你有一個函數'c(t)',但是我不清楚你想要達到什麼目的。你想繪製該函數還是在某個點解決這個值? 通過您提及的示例(本網站上您閱讀過的其他答案)來看看您想要做什麼可能會有幫助。 –

+0

嗨@Patrik H.我希望能夠解決在某些點的價值觀。所以爲此我需要費率'm'和'n',以及'a'。 [我迄今爲止基於實驗製作的圖形並不完美,但它們確實類似於指數衰減,所以我假設python會像理想的指數衰減一樣對待它們。在其他例子中,他們開始**用變量(t,a,m,n)定義**函數,然後是** return **行(例如= a * np.exp(-m * t)+ n)中只有一個指數項。 Alex的回答可能有幫助嗎? – Matt

+0

這是否意味着亞歷克斯正在回答你的問題,或者是否還有其他需要幫助的事情? –

回答

0

你的問題不是很清楚,但似乎你正在努力尋找適合你引用雙重指數最適合的參數。

一個簡單的方法是使用scipy.optimize.curve_fit函數。首先,定義要適合

import numpy as np 
    import scipy.optimize 
    def my_exp(t,a,m,n): 
     return a*np.exp(-m*t) + (1-a)*np.exp(-n*t) 

,並通過該功能與您的數據,初步猜測沿功能,以什麼參數可能是,等來的curve_fit功能。

parameters, their_covariance = scipy.optimize.curve_fit(my_exp, xdata, ydata) 

提示:您可以通過閱讀在Python外殼調用help(scipy.optimize.curve_fit)功能詳細做什麼。

+0

Thanks Alex。這看起來讓我在正確的道路上 – Matt

+0

那麼,它是否回答你的問題?如果沒有,請更具體地瞭解您要查找的內容。你寫的是你尋找一個函數c(t)=(一些指數);上面的代碼定義了這樣一個函數,然後幫助你找到'a','m'和'n'的最佳參數。你還需要什麼? – Alex

+0

是的,那是我正在尋找的答案。我只是沒有意識到,我所要做的就是檢查'參數'的值(在我的代碼中彈出),因爲這些值與我期望的相反,並且我認爲它們是錯誤的。這是下一個問題:/ – Matt