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
Répondre
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.