找到指数函数给出两点

时间:2017-07-12 18:30:51

标签: solver exponential maxima nonlinear-functions

我知道我可以使用下面的命令解决最大值的方程式,但我如何求解两个不同的方程式。

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

我试图得到两个点的指数函数方程。我该怎么做呢示例点1位于(2,12),点2位于(8,768)

Image with answer

1 个答案:

答案 0 :(得分:1)

Maxima需要一些帮助来解决这个问题,但是可以做到。首先表达问题数据。

(%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)]]

好的,这只是一点点工作,但无论如何也许它会有所帮助。