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

Code oder Funktion zur Bestimmung von Unbekannten

 

Simon1508
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.02.2016, 13:00     Titel: Code oder Funktion zur Bestimmung von Unbekannten
  Antworten mit Zitat      
Hallo zusammen,

ich kenne mich mit Matlab leider kaum aus, muss jetzt aber durch die Uni auf Funktionen des Programms zurückgreifen, da die Gleichungen manuell nicht mehr lösbar sind.
Die folgenden Gleichungen habe ich gegeben:

Q. = (T.*a + D.*b + H.*c)*x

Q. = (T.*a) * (D.*b) * (H.*c) *x

Die Vektoren Q., T., D. und H. sind bekannte Spaltenvektoren und haben jeweils über 17000 Zeilen. Mit Matlab möchte ich die ideale Kombination der Konstanten a, b, c und x bestimmen, sodass am Ende der Fehler zwschen den errechneten Werten und meinem vorgebenen Q möglichst gering ist. Für die Konstanten würde ich gerne jeweils einen Wert und keinen Vektor zurück bekommen. Meine Ansätze über solve und linsolve haben leider nur zur Fehlermeldungen geführt und mit der Programmierung von Schleifen kenne ich mich nicht aus.

Vielen Dank schon mal im voraus,
Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.02.2016, 13:31     Titel:
  Antworten mit Zitat      
Zitat:
Meine Ansätze über solve und linsolve haben leider nur zur Fehlermeldungen
ohne den code und die fehlermelungen kann man dir bei diesem problem dann nur schwer helfen oder ? Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Simon1508
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.02.2016, 13:47     Titel:
  Antworten mit Zitat      
Da ich nicht wusste, ob die Ansätze überhaupt zielführend sind oder ob Matlab für mein Problem noch eine ganz andere Funktion bietet, hatte ich zuerst auf den Code verzichtet.

Code:
% So sieht es aus:
>> syms a
>> syms b
>> syms c
>> syms x
>> linsolve(Q. = (T.*a + D.*b + H.*c)*x,x)
 linsolve(Q. = (T.*a + D.*b + H.*c)*x,x)
             |
Error: The expression to the left of the equals sign is not a valid target for an assignment.


Q, T, D und H habe ich aus einer Excel Datei über Import Data importiert.
Kann linsolve denn mehrere Konstanten gleichzeitig berechnen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.02.2016, 14:43     Titel:
  Antworten mit Zitat      
hmm wenn a b c und x skalare sind müsste man die doch zu drei variablen zusammen fassen können oder= interessant ist ja dann nur ax bx und cx oder?
und dann soltle doch
Code:
p=[T,D,H]\Q
gehen oder? dann wird ein least square fit gemacht wenn ich mich nicht irre. p ist dann[ax,bx,cx]
zu deiner fehlermeldung du versuchst eine zuweisung zu machen innhalb eines anderen codes das passt da nicht. außerdem paast die syntax so überhaubt nicht zur doc. welches release verwendest du ?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Simon1508
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2016, 19:15     Titel:
  Antworten mit Zitat      
Ja das stimmt. Das hat so wunderber geklappt und ich habe mit dem Ansatz Lösungen für die Skalare a, b und c bekommen. Vielen Dank!!

Wenn ich allerdings eine muliplikative Verknüpfung der Form T*D*H*x habe und keine additive, dann kann ich den Ansatz ja nicht verwenden. Muss ich dann eine Schleife programmieren, die Matlab immer wieder durchläuft, bis die optimale Lösung gefunden ist?
In dem Fall wäre es ja egal, ob ich T*a*D*b*H*c rechne oder einfach nur T*D*H*x, damit ich nur den einen Skalar bestimmen muss.
T, D, und H sind weiterhin 17200x1 Vektoren und x einfach nur ein Skalar.

Ich verwende die Version 2013b.
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 - 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.