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

solve equation with vector input

 

Marcole

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2020, 10:01     Titel: solve equation with vector input
  Antworten mit Zitat      
Hallo zuammen,

ich hätte ne vermutlich recht einfache Frage zur solve Funktion. Ich eine einfache Gleichung mit einer Unbekannten lösen, dabei jedoch eine weitere Variable in der Gleichung variieren, was ich normalerweise über einen einfachen Vektor mache.

Hier ein vereinfachtes Beispiel:

Code:
%Beispiel
a = 1

syms b
eqn = a+b == 0
b = solve(eqn,b)

b=-1
 


Soweit funktioniert alles! Jetzt möchte ich das aber für schrittweise unterschiedlichste a's durchführen :

Code:
%Beispiel
a = 1:1:100

syms b
eqn = a+b == 0
b = solve(eqn,b)

b = Empty sym: 0-by-1
 


Wie kann ich mir denn für b ein Vektor berechnen lassen der mir die entsprechenden Werte zu a liefert? Sad

Vielen Dank im Vorraus!


Harald
Forum-Meister

Forum-Meister


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

ich würde eine for-Schleife verwenden. Ansonsten versucht MATLAB, alle Gleichungen gleichzeitig zu erfüllen.

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
 
Marcole

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2020, 11:18     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine schnelle Antwort. Ich hab eben mal ausprobiert:

Code:
%Beispiel

a=1

while a <= 500

symsb
eqn = a+b == 0
b(a) = solve(eqn,b)

end
 


Funktioniert an sich, leider befüllt er immer nur die in der Schleife aktive Stelle im Vektor b und setzt alle anderen wieder 0. Muss ich die Vektorgröße vorher definieren damit ich die Stellen sequenziell beschreiben kann?

Vielen Dank und beste Grüße,
Marco
 
Marcole

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2020, 11:20     Titel:
  Antworten mit Zitat      
Marcole hat Folgendes geschrieben:
Hallo Harald,

danke für deine schnelle Antwort. Ich hab eben mal ausprobiert:

Code:
%Beispiel

a=1

while a <= 500

syms b
eqn = a+b == 0
b(a) = solve(eqn,b)

a = a+1

end
 


Funktioniert an sich, leider befüllt er immer nur die in der Schleife aktive Stelle im Vektor b und setzt alle anderen wieder 0. Muss ich die Vektorgröße vorher definieren damit ich die Stellen sequenziell beschreiben kann?

Vielen Dank und beste Grüße,
Marco
 
Harald
Forum-Meister

Forum-Meister


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

das Problem ist, dass du b doppelt verwendest, einmal als Variable in der Gleichung und einmal als Lösung. Wenn du das trennst, sollte es klappen.

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
 
Marcole

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2020, 13:35     Titel:
  Antworten mit Zitat      
Hallo Harald

ohman Embarassed funktioniert jetzt wie es soll!

Vielen lieben Dank für den Support Smile

Grüße
 
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.