Lieber Kollege,
folgendes hilft:
In[154]:= Clear[x, y, nn, nu, te]
xe = 5;
te[nu_] =
Hold[y[xe] /.
NDSolve[{y''[x] + (2 nu + 1 - x^2) y[x] == 0, y[-5] == 4 10^-6,
y'[-5] == 5 10^-5}, y, {x, -5, xe}]];
In[166]:= sev = FindRoot[te[nn], {nn, 1.5, 2.5}]
Out[166]= {nn -> 2.}
In[169]:= te[nn /. sev] // Release
Out[169]= {1.24106*10^-11}
Bernhard Schnizer schrieb:
Liebe Kolleginnen und Kollegen !
Ich moechte mittels der Schiessmethode die Eigenwerte einer
Differentiagleichung
berechnen, hier die des eindimensionalen harmonischen Oscillators mit
2 n + 1 statt n + 1/2.
Dazu benutze ich * FindRoot[]*, um den Nulldurchgang der numerischen
Loesung des
Anfangswertproblems zu finden. Das relevante Intervall der ua.
Variablen ist [-5,5].
Clear[x, y, nn, nu, te]
xe = 5;
te[nu_] := y[xe] /. NDSolve[ {y''[x] + (2 nu + 1 - x^2) y[x] == 0,
y[-5] == 4 10^-6, y'[-5] == 5 10^-5}, y, {x,-5,xe}]
sev = FindRoot[te[nn],{nn, 1.9, 2.1}]
te[nn /. sev]
In MMA 4.2 funktionierte das klaglos.
In MMA 5.2 bekomme ich auch den Eigenwert,
aber vorher bekomme ich eine Fehlermitteilung.
Wie kann ich die Implementierung machen, sodass
MMA5.2 und MMA 6.0 nicht ueber etwas stolpert.
Ich moechte nicht einfach die Fehlermitteilungen abdrehen.
Vielen Dank fuer Ihre Hilfe !
B. Schnizer
Em. Univ.-Prof. Dr. Bernhard *Schnizer*
Institute of Theoretical and Computational Physics
Graz University of Technology
Petersgasse 16
A-8010 GRAZ
Austria, Europe
Tel: (++43) 0316-873/8173
FAX: (++43) 0316-873/8678
E-mail:
schnizer@XXXXXXX.at <mailto:schnizer@XXXXXXX.at>
WebSite: http://itp.tugraz.at/~schnizer/
<http://itp.tugraz.at/%7Eschnizer/>
--
Robert Nowak
IMS Nanofabrication AG
Phone: +43/12144894/32
Fax: +43/12144894/99