Mathematica: Funktionen < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:34 Do 26.05.2005 | Autor: | ich00 |
hallo!
Gibt es in Mathematica einen Befehl mit dem ich alle Nullstellen auf einmal herausbekomme oder muss ich sowieso alle Näherungswerte ablesen und dann mit FindRoot berechnen?
danke, lg
Ich habe diese Frage in keinem anderen Forum gestellt!
|
|
|
|
als eine möglichkeit gibt es den solve befehl
also Solve[f(x)==0,x]
wenn das auch nichts hilft dann gibt es nur noch die numerischen methoden.
|
|
|
|
|
Hi,
Wenn du mit den Nullstellen noch irgendwie weiterrechnen willst, musst du wie folgt vorgehen, da Mathematica nicht automatisch der verwendeten Variablen in der Solve-Gleichung auch den Wert des Ergebnisses zuweist. Also machst das so:
Nullst=Solve[f[x]==x,x]
(Du gibst dem Output irgendeinen Namen, in dem Fall Nullst)
Dann schreibst du in eine weitere Inputzeile:
N1=x/.Nullst1
Das heißt: der Variablen N1 wird der Wert des x des Solve-Befehls zugewiesen. Da du jedoch manchmal zwei Ergebnisse haben wirst (=zwei Nullstellen) musst du dieses x mit "/." (Ersetzungsoperator) durch die erste Lösung der Gleichung "Nullst" ersetzen.
Mfg Schurl
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:37 Sa 28.05.2005 | Autor: | ich00 |
hallo!
mal vielen dank für die hilfe, aber eine frage hätte ich noch, ich erhalte als ergebnis zwar alle nullstellen die ich will aber unter der Wurzel. wie kann ich in mathematica hier die ganze zahl bekommen?
und warum kommt mit der formel
FindRoot[f[x]==0{x, ... , ...}]
was anderes raus ?
danke. lg
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:15 Sa 28.05.2005 | Autor: | PStefan |
Hänge einfach am Ende des Solve Befehl ein "//N" dazu, dann gibt er dier das Ergebnis in einer Dezimalzahl
MfG
Stefan
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 05:28 Do 09.06.2005 | Autor: | Peter_Pein |
Hallöle,
wenn eh nur das ungefähre Ergebnis gesucht wird, geht es oft viel schneller, wenn gleich NSolve[] statt N@Solve[] verwendet wird.
liebe Grüße,
Peter
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 05:54 Do 09.06.2005 | Autor: | Peter_Pein |
Hallo,
wenn Du ganzzahlige Lösungen haben möchtest, ginge das auf "gut Glück" mit Cases[FullSimplify[x/.Solve[f[x]==0,x]//RootReduce],_Integer]
Das "//RootReduce" kann man vieleicht auch weglassen, wenn es von FullSimplify eh aufgerufen wird - aber da bin ich mir eben nicht ganz sicher.
Beispiel:
1: | In[1]:=
| 2: | f[x_] = Expand[Times @@ Table[x - i/2, {i, 5}] +
| 3: | Times @@ Table[x - i/3, {i, 4}]]
| 4: | Out[1]=
| 5: | -(373/108) + (3299*x)/216 - (1745*x^2)/72 + (215*x^3)/12 - (13*x^4)/2 +
| 6: | x^5
| 7: | In[2]:=
| 8: | Cases[FullSimplify[RootReduce[x /. Solve[f[x] == 0, x]]], _Integer]
| 9: | Out[2]=
| 10: | {1} |
(hier hätte RootReduce auch alleine genügt)
liebe Grüße,
Peter
|
|
|
|