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

Eigenwerte in Abhängigkeit eines Parameters berechnen

 

wolmaroc
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2021, 13:00     Titel: Eigenwerte in Abhängigkeit eines Parameters berechnen
  Antworten mit Zitat      
Hallo Zusammen,

ich habe folgendes Problem:
Eine gegebene Matrix H setzt sich zusammen aus der Summe einer konstanten Matrix H_0 und einer sparse Matrix V, deren Einträge von einem Parameter g abhängen sollen also H(g) = H_0 + V(g).
Ich möchte nun die Eigenwerte der Matrix H in Abhängigkeit des Parameters g berechnen. Die Eigenwerte von Matrizen berechne ich mit der Matlab Funktion eigs().

Ich habe nun zunächst versucht die Matrix H als Funktion des Parameters g zu programmieren und habe dafür den Befehl "syms g V" verwendet. Hier tritt jedoch schon die erste Fehlermeldung auf:
"Check for missing argument or incorrect argument data type in call to function 'sparse'."
Anscheinend kann Matlab damit nicht umgehen, dass die Einträge einer sparse Matrix von einer Variablen abhängen?

Ich habe leider keine Idee wie ich diese Meldung umgehen kann geschweige denn wie ich die obig genannte Funktion, welche die Eigenwerte von H in Abhängigkeit von g berechnet programmieren soll.

Ich hoffe ich, dass Problem ist verständlich und ihr könnt mir einige Tipps bzw. Hinweise zur Programmierung an die Hand geben.

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

meines Wissens können sparse und symbolic nicht gemischt werden.

Bitte poste generell den gesamten relevanten Code. Ich kann mir nicht vorstellen, dass die Fehlermeldung (alleine) von syms g V kommt.

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
 
wolmaroc
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2021, 17:12     Titel:
  Antworten mit Zitat      
Hallo,

das ist der relevante Code, bei dem die Fehlermeldung auftritt. Die Matrix H_rad enthält keinerlei fehlerhaften Code, denn wenn ich g=1 setze läuft der Code sauber durch und berechnet die Eigenwerte.

Noch als Hinweis: m_Y ist ein konstanter Parameter, i_rad und r sind sauber definierte Arrays. Entschuldigt bitte, dass die Bezeichnungen der Matrizen in meinem Code etwas anders sind als in meiner ersten Nachricht.

Code:

syms g V_rad;
V_rad(g) = -g^2*exp(-m_Y * r)./r;
H_rad(g) = H_rad + sparse(i_rad, i_rad, V_rad(g));
H_rad(1)

%berechne Eigenenergien des Hamiltonoperators
%n_eigs = 5;
%E_phys = eigs(H_rad, n_eigs, 'smallestreal')*cutoff;
%disp(E_phys)
 


beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich konnte das Problem nachvollziehen, in dem ich sämtliche anderen Variablen = 1 gesetzt habe. Bitte in Zukunft alle Informationen zur Verfügung stellen, die man braucht, um das Problem reproduzieren zu klappen. Variablen zu raten ist mühsam und klappt vor allem nicht immer.

Das Problem dürfte wie gesagt sein, dass sparse und symbolic nicht gemischt werden können. Siehe z.B. hier:
https://de.mathworks.com/matlabcent.....sparse-of-symbolic-matrix
Ist es denn unbedingt notwendig, mit sparse zu arbeiten?

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
 
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.