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

Wertübergabe an e. Funktion in Verbindung mit fsolve

 

Holly
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.02.13
Wohnort: hessen
Version: ---
     Beitrag Verfasst am: 08.02.2013, 23:47     Titel: Wertübergabe an e. Funktion in Verbindung mit fsolve
  Antworten mit Zitat      
Ich hab folgendes programmiert:
Code:
function y = f(v)
disp(' Zwei Wagen fahren durch Entspannung einer Feder mit v1 & v2 auseinander');
disp('       ');

 m1= 2 ;
 m2= 4;
 E= 40  ;
 
       y = zeros (2, 1);
       y(1) = m1*v(1) - m2*v(2);
       y(2) = .5*( m1*v(1)^2 +  m2*v(2)^2) -E;
end


Die Funktion wird aufgerufen mit : v= fsolve (@f, [.1; .1])
Soweit klappt das auch!

Jetzt möchte ich m1,m2 und E als Variable übergeben in der Form
m1= input ('Masse Wagen 1 =');
m2= input ('Masse Wagen 1 =');
E= input ('Energie der Feder =');

Leider klappt dies nicht, Die Variablen sind in der Funktion f nach Aufruf unbekannt. auch das Einbinden der Fktn in ein gemeinsames m-File, oder der Befehl GLOBAL brachte keine Abhilfe.
Bin Anfängerin und hoffe, dass ihr mir helfen könnt!
vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 09.02.2013, 21:31     Titel: Re: Wertübergabe an e. Funktion in Verbindung mit fsolve
  Antworten mit Zitat      
Code:

octave:12> f([.1;.1],2,4,40)
 Zwei Wagen fahren durch Entspannung einer Feder mit v1 & v2 auseinander
       
ans =

   -0.20000
  -39.97000

 


Einfach übergeben, wie mit der v Variable


Code:

function y = f(v,m1,m2,E)
disp(' Zwei Wagen fahren durch Entspannung einer Feder mit v1 & v2 auseinander');
disp('       ');

       y = zeros (2, 1);
       y(1) = m1*v(1)- m2*v(2);
       y(2) = .5*( m1*v(1)^2 +  m2*v(2)^2) -E;
end
 

_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.02.2013, 01:06     Titel:
  Antworten mit Zitat      
stimmt leider nicht.
Bei 2,4,40 müße

v =

5.1640
2.5820

herauskommen, da m1*v1= m2*v2 sein muss.

DAs Problem wurde im Programmieren-Forum ansatzweise gelöst!
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 10.02.2013, 01:26     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:

herauskommen, da m1*v1= m2*v2 sein muss.


hä? V ist [.1;.1]. m1 = 2 und m2 = 4 (laut deines ersten postings)
Wie soll dann m1*v1 == m2*v2 true sein?

#edit
ach, jetzt seh ich das erst mit fsolve
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
Holly
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.02.13
Wohnort: hessen
Version: ---
     Beitrag Verfasst am: 10.02.2013, 12:57     Titel:
  Antworten mit Zitat      
Danke!
Ja,leider kann man an fsolve nur ein Argument übergeben.

Man muss die Variablen im m-file UND in der Fktn als GLOBAL defineren, dann gehts......
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.