3

J'ai un problème de syntaxe résolvant une équation différentielle dans Mathematica (10ème version).Résolution d'une équation différentielle dans Mathematica

L'entrée de l'équation que je dois résoudre est la suivante:

solv = DSolve[{ a*u''[y] - b*u[y] == d, u'[0] == 0, u[1] == 0}, u, {y, -1, 1}] 

qui après avoir utilisé expToTrig et FullSimplify je reçois la réponse que je cherche:

(d (-1 + Cosh[(Sqrt[b] y)/Sqrt[a]] Sech[Sqrt[b]/Sqrt[a]]))/b 

Cependant, mon problème vient quand je veux placer plus de coefficients dans l'équation. Par exemple:

solv = DSolve[{ a* u''[y] - b* c* u[y] == d, u'[0] == 0, u[1] == 0}, u, {y, -1, 1}] 

Cette fois-ci, je reçois pour:

FullSimplify[ExpToTrig[Evaluate[u[y] /. solv]]] 

La réponse suivante:

(d (1 + E^((2 Sqrt[b] Sqrt[c])/Sqrt[a]) - E^(-((Sqrt[b] Sqrt[c] (-1 + y))/Sqrt[a])) - E^((Sqrt[b] Sqrt[c] (1 + y))/Sqrt[a])) (-1 + Tanh[(Sqrt[b] Sqrt[c])/Sqrt[a]]))/(2 b c) 

Au lieu de cela, quand je fusionner b et c (remplaçant: bc = b * c):

solv = DSolve[{ a*u''[y] - bc*u[y] == d, u'[0] == 0, u[1] == 0}, u, {y, -1, 1}] 

Je reçois:

(d (-1 + Cosh[(Sqrt[bc] y)/Sqrt[a]] Sech[Sqrt[bc]/Sqrt[a]]))/bc 

Dans mon cas, je ne peux pas simplement substituer car il y a trop d'équations et certains paramètres (coefficients) s'annulent.

Merci!

+0

Votre question serait probablement plus d'attention à [mathematica.se] –

+0

Si vous mettez votre code sur Dropbox ou un autre service où les gens ne doivent pas vous inscrire, connectez-vous, envoyer photo d'identité, etc. , etc, et vous montrez clairement dans ce code un exemple et expliquez précisément ce que vous voulez faire et pourquoi cela ne fonctionne pas et si cela a été résolu par quelqu'un alors il serait presque certainement résoudre tous vos autres problèmes ... alors quelqu'un pourrait être capable de saisir le code, essayer une solution, vérifier que cela fonctionne et poster une réponse ici. Si quelqu'un vous a posé une question: "sorte de ceci sauf beaucoup plus grand et ne fonctionne pas" alors il serait très difficile pour vous de savoir comment répondre à cela. – Bill

Répondre

0

Votre problème est avec FullSimplify. Il estime que le formulaire exp est plus "simple" que la forme trig, c'est pourquoi il annule ce que fait ExpToTrig. En utilisant seulement Simplify à sa place va maintenir la conversion ExpToTrig. Mon essai rapide ci-dessous montre une comparaison.

mathematica demo