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

Funktion

 

DaPhil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2008, 11:41     Titel: Funktion
  Antworten mit Zitat      
Hallo,
ich habe eine Datei trapez geschrieben, die eine Funktion mit einer Variable numerisch integriert, aufgerufen durch:
Code:

trapez('f',a,b,N)
 

Klappt auch. Aber, ich möchte eine zweite Variable angeben, die von außen vorgegeben wird, z.b.:
Code:

function y=f(x,a)
   y=a*x.^2;
endfunction
 

Das klappt aber leider nicht. Ich kenne mich noch nicht sonderlich gut mit der Syntax aus, deswegen würde ich mich echt freuen wenn mir das jemand helfen kann...


derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 11.12.2008, 12:16     Titel:
  Antworten mit Zitat      
Also die Funktion

Code:


gibts schon und die macht eigentlich das was du willst.
Wenn du aber deine eigene Funktion haben möchtest sollte das so aussehen:

Code:

function y = trapez(x,a)
y=a.*x.^2;
end
 


Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
DaPhil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2008, 12:21     Titel:
  Antworten mit Zitat      
Ja, ich möchte mir nun für verschiedene Parameter a das Integal ausrechnen und plotten lassen. Aber er rechnet es ja nicht aus, da gibts nur Fehlermeldungen. Gibts keine Möglichkeit, a von außen Vorzugeben, z.B. durch
Code:

global a=2;
trapez('f'...)
 

Das funktioniert aber nicht, hab ich schon ausprobiert.
Hier noch TRapez:
Code:

function S=trapez(fun,a,b,N)
   h=(b-a)/N;
   fy=feval(fun,linspace(a,b,N+1));
   fy(1)=fy(1)/2;
   fy(N+1)=fy(N+1)/2;
   S=h*sum(fy);
endfunction
 
 
samsa10
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 10.12.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2008, 15:23     Titel:
  Antworten mit Zitat      
Hallo,

es funktioniert nicht, da die Funktion 'trapez' beim Aufruf der Funktion:
Code:

 fy=feval(fun,linspace(a,b,N+1));
 

an 'fun' nur einen Vektor übergibt, du müsstest zusätzlich noch dein a übergeben (die Bezeichnung ist viell. etwas ungünstig, weil sie bereits für die untere Integrationsgrenze verwendet wird -
ich nenne dein a mal u).

Also zb. abändern in:
Code:

function S=trapez(fun,a,b,N,u)
...
fy=feval(fun,linspace(a,b,N+1),u);
 


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