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

Gleichungssystem aus Vektoren zusammenfügen und lösen

 

scapa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.04.2011, 15:42     Titel: Gleichungssystem aus Vektoren zusammenfügen und lösen
  Antworten mit Zitat      
Hallo zusammen

Ich möchte mit matlab ein folgenden typ Gleichungssystem lösen:

Ich habe einen Vektor R der sieht z.B. wie folgt aus:

R= [(2*c02)/25 - c20/5;
(6*c02)/125 + (2*c12)/25 - (3*c30)/5;
(6*c03)/25 - (3*c20)/50 - c21/5;
(18*c03)/125 - (9*c30)/50;
(6*c12)/125;
-(3*c21)/50]

mit c02, c12, c30, c03, c20, c21 als Unbekannte.

Ebenfalls habe ich einen Vektor q, z.B. wie folgt:

q = [-20;0;4;0;0;1]

Nun möchte ich das Gleichungssystem Lösen: R(i)=q(i) für alle i

Die beiden Vektoren werden automatisch erzeugt aus einer vorangehenden Routine, und ebenfalls soll deren Lösung automatisch erfolgen. Wie müsste der solve Befehl aussehen?

Mit solve(R(1)=q(1),R(2)=q(2),...,c02,c12,...)

scheint es (mit und ohne Anführungszeichen) nicht zu funktionieren. Ebenfalls habe ich es mit char(R(1))=char(q(1)) probiert, jedoch ebenfalls ohne erfolgt.

Besten Dank
Gruss Scapa


scapa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2011, 11:31     Titel:
  Antworten mit Zitat      
Vielleicht noch eine Anmerkung:

Ich habe die Symbolic Toolbox installiert und nutze die Version R2010a.
 
scapa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2011, 11:44     Titel:
  Antworten mit Zitat      
Und wie folgt habe ich es mit "char" versucht:

eq1=[char(R(1)),'=',char(q(1))]
eq2=[char(R(2)),'=',char(q(2))]
eq3=[char(R(3)),'=',char(q(3))]
eq4=[char(R(4)),'=',char(q(4))]
eq5=[char(R(5)),'=',char(q(5))]
eq6=[char(R(6)),'=',char(q(6))]

solve(eq1,eq2,eq3,eq4,eq5,eq6,c02,c20,c12,c21,c30,c03)
 
scapa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2011, 12:30     Titel:
  Antworten mit Zitat      
Bin wieder etwas weiter:

Mit:
eq1=[char(R(1)),'=',num2str(q(1))]
eq2=...

scheint der für die Gleichung zumindest richtige Syntax gefunden zu sein (es erscheint jedenfalls keine Fehlermldung mehr).

Beschränke ich mich auf eine einzige Gleichung, wird diese auch korrekt gelöst. Natürlich muss ich dazu die Unbekannten cij bis auf eine verbleibende reduzieren.

Bei mehrern Gleichungen erscheint als Resultat jedoch nur noch:

c02: [1x1 sym]
c20: [1x1 sym]
c12: .....

Wie kriege ich nun eine Zahl als Resultat?
 
scapa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2011, 16:43     Titel:
  Antworten mit Zitat      
... die Help so zu "solve" zu Ende zu lesen hilft. Die Resultate wertet man also mit .c02 etc. aus.

Trotzdem:
Beim vollen Gleichungssystem wie oben Beschrieben findet matlab keine Lösung mehr.
Es folgt die Meldung:

Warning: Explicit solution could not be found.
> In solve at 81
In Polynom at 93

Obwohl 6 linear unabhängige Gleichungen und 6 Unbekannte vorliegen. Mathcad findet die Lösung, also sollte es doch matlab eigentlich ebenfalls können.

Gruss Scapa
 
scapa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2011, 22:24     Titel: Berlin
  Antworten mit Zitat      
Wäre echt froh, wenn mir da jemand weiterhelfen könnte. Momentan stehe ich mit meinem Problem an.

Habe aus einer Forumsuche erfahren, dass auch Andere das Problem hatten wo solve keine Lösung ausgab, obwohl die Lösung durchaus möglich war (leider ebenfalls ohne Antworten).

Fsolve scheidet, so wie ich das sehe, ebenfalls aus, da das Gleichungssystem automatisch erzeugt wird und somit nicht in ein eigenständges m-file geschrieben werden kann.

Ein neuer Ansatz: Es handelt sich ja um ein lineares Gleichungssystem. Ist es möglich, dass matlab die Gleichungen automatisch auftrennt in eine Koeffizientenmatrix und einen Vektor c=[c11,c02,c20,c21,c12,c30,c03], so dass ich die Lösung mit c=A\q finde?
 
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 - 2025 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.