WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Nullstellen der hypergeom Funktion

 

peterhans

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2019, 11:21     Titel: Nullstellen der hypergeom Funktion
  Antworten mit Zitat      
Hallo Leute,

vieleicht könnt ihr mir bei meinem Problem helfen.
Folgendes:
Ich möchte mithilfe der "hypergeom" Funktion und dem Befehl "solve" die Eigenwerte bzw. Nullstellen für folgende koeffizienten berechnen:
a=(1-lambda)
b=1/2
c=lambda

Hierzu lautet meine Befehle in Matlab wie folgt:
Code:
syms lambda

loesung = solve(hypergeom((1-lambda)*0.25,0.5,lambda)==0,lambda);
loesungd =double(loesung);



Berechnen tut matlab aber mit folgender Fehlermeldung:
Warning: Unable to find explicit solution. For options, see help.
> In solve (line 317)

als Ergebnis kommt ein leerer Lösungsvektor raus, was nach folgender Fehlermeldung auch verständlich ist.

Die gleichen koeffizeient (a,b,c) habe ich mit wolfram alpha getestet:
solve(Hypergeometric1F1[(1-λ)/4,1/2,λ]=0,λ)

und bin zu einem brauchbaren Ergebnis gekommen aber es werden mir nur die ersten drei Eigenwerte/Nullstellen numerisch mit +- angegeben, wobei der Graph weitere anzeigt. Bin an mindestens 5 Nullstellen interessiert.

Frage:
Wieso Funktioniert die konfluente hypergeometrische Funktion in wolfram alpha und nicht in matlab? Bzw. was mache ich falsch trifft die Fragenstellung eher?

Gruß,

gast: peterhans

wolfram alpha.PNG
 Beschreibung:

Download
 Dateiname:  wolfram alpha.PNG
 Dateigröße:  26.72 KB
 Heruntergeladen:  477 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2019, 15:01     Titel:
  Antworten mit Zitat      
Hallo,

solve versucht symbolisch, Nullstellen zu finden. Meine Vermutung ist, dass Wolfram Alpha dies numerisch macht. Dann müsstest du fzero oder fsolve verwenden. Um mehrere Nullstellen zu finden, musst du mehrere passende Startwerte bzw. Startintervalle angeben.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
peterhans

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2019, 17:55     Titel:
  Antworten mit Zitat      
Vielen Dank für den Ratschlag. Soweit so gut, mit fzero bin ich zumindest auf die erste Nullstelle gestoßen. Weiter Nullstellen spuckt mir MATLAB derzeit nicht aus. Ich hatte es zwischenzeitlich mit einer Schleife versucht, dort werden mir immer wieder die selben Nullstellen ausgegeben trotz das ich den initial point zusätzlich variert habe.

Code:
fun = @f; % function
x0 = 1; % initial point
z = fzero(fun,x0);


Die Funktion f habe ich wie folgt abgespeichert:

Code:
function [fun] = f(x)


fun = (exp(x./2)*whittakerM(x/4, -1/4, x))/x.^(1/4);

end


MIt der Funktion fsolve war ich leider nicht erfolgreich.

workspace.PNG
 Beschreibung:

Download
 Dateiname:  workspace.PNG
 Dateigröße:  3.46 KB
 Heruntergeladen:  467 mal
 
peterhans

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2019, 18:24     Titel:
  Antworten mit Zitat      
habs mit fsolve hinbekommen. Vielen Dank!
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2019, 19:00     Titel:
  Antworten mit Zitat      
Hallo,

also alle gesuchten Nullstellen gefunden?
Falls nicht: bei fzero ist ein Vorteil, dass die Syntax
Code:
z = fzero(fun,[a, b]);

eine Nullstelle auf dem Intervall [a,b] liefert.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
peterhans

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2019, 19:50     Titel:
  Antworten mit Zitat      
Alle mit fsolve gefunden! Top!
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.