2017-07-12 142 views
1

我知道我可以使用下面的命令求解最大值方程,但是如何解決兩個不同的方程。找到指數函數給定兩個點

kill(all); 
r:.5; a:1; b:-5.7; theta:theta; solve(a*e^(b*theta)=r,theta); 
tex(''%); 

我試圖讓兩個點的指數函數方程。我該如何去做這件事。例如點1是在(2,12)和點2處於(8768)

Image with answer

回答

1

最大值需要一些幫助來解決這個問題,但是這是可以做到。首先表達問題數據。

(%i1) [x1,y1]:[2,12]; 
(%o1)        [2, 12] 
(%i2) [x2,y2]:[8, 768]; 
(%o2)        [8, 768] 
(%i3) eq1:y1 = a*exp(b*x1); 
              2 b 
(%o3)       12 = a %e 
(%i4) eq2:y2 = a*exp(b*x2); 
              8 b 
(%o4)       768 = a %e 

現在嘗試解決a和b的eq1和eq2。

(%i5) solve([eq1, eq2], [a, b]); 
(%o5)         [] 

嗯,這是不令人滿意的。我猜測Maxima可以解決這個問題,如果我們取對數線性的話。

(%i6) log([eq1, eq2]); 
            2 b      8 b 
(%o6)   [log(12) = log(a %e ), log(768) = log(a %e )] 

應用logexpand標誌來簡化。請注意,%表示之前的結果。

(%i7) %, logexpand; 
            2 b      8 b 
(%o7)   [log(12) = log(a %e ), log(768) = log(a %e )] 

嗯,那並沒有這樣做。有不同形式的logexpand,試試另一種。

(%i8) %, logexpand=super; 
(%o8)   [log(12) = 2 b + log(a), log(768) = 8 b + log(a)] 

好,好。現在嘗試解決它。

(%i9) solve (%, [a, b]); 
(%o9)         [] 

那麼,這仍然沒有工作。但我發現它在log(a)中是線性的,所以要解決這個問題。

(%i10) solve (%o8, [log(a), b]); 
        4 log(12) - log(768)  log(12) - log(768) 
(%o10) [[log(a) = --------------------, b = - ------------------]] 
           3       6 

太好了。這裏是數值:

(%i11) float (%); 
(%o11)  [[log(a) = 1.09861228866811, b = 0.6931471805599454]] 

我會盡量簡化確切的值。

(%i12) %o10, logexpand=super; 
        4 log(12) - log(768)  log(12) - log(768) 
(%o12) [[log(a) = --------------------, b = - ------------------]] 
           3       6 

嗯,那沒用。我會嘗試另一個功能:

(%i13) radcan(%); 
(%o13)     [[log(a) = log(3), b = log(2)]] 

OK,這是工作的一點點,但無論如何,也許它可以幫助。