2017-07-12 4 views
1

Je sais que je peux résoudre des équations en maxima en utilisant les commandes ci-dessous mais comment puis-je résoudre pour deux équations différentes. J'essaie d'obtenir l'équation d'une fonction exponentielle donnée deux points. Comment vais-je faire cela? Exemple point 1 est à (2,12) et le point 2 est à (8.768)trouver la fonction exponentielle donnée deux points

Image with answer

Répondre

1

Maxima a besoin d'aide pour résoudre ce problème, mais il peut être fait. Commencez par exprimer les données du problème.

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

Maintenant, essayez de résoudre eq1 et eq2 pour a et b.

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

Hmm, c'est insatisfaisant. Je devine que Maxima pourrait le résoudre si nous prenons des logarithmes qui le rendent linéaire.

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

Appliquez le drapeau logexpand pour simplifier. Notez que % signifie le résultat précédent.

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

Hmm, cela n'a pas été fait. Il existe différentes formes de logexpand, en essayer une autre.

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

OK, bien. Maintenant, essayez de le résoudre.

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

Eh bien, cela n'a toujours pas fonctionné. Mais je vois que c'est linéaire dans log(a) alors résolvez pour cela à la place.

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

Grand. Voici les valeurs numériques:

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

Je vais essayer de simplifier les valeurs exactes.

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

Hmm, cela n'a pas fonctionné. Je vais essayer une autre fonction:

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

OK, c'était un peu de travail, mais de toute façon peut-être que ça aide.