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

Simpson Regel Funktion aufrufen

 

VonKrolock
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 26.03.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 12.05.2015, 21:43     Titel: Simpson Regel Funktion aufrufen
  Antworten mit Zitat      
Hey Leute,

ich versuche gerade einen vorimplementierten Code auf meine Funktion anzuwenden und scheiter kläglich.
Ich weiß, dass der wegen dem x in fsimp Fehlermeldungen rauswirft: undefined 'x'. Aber ich weiß nicht so ganz, was ich da ändern soll. Das x wird ja erst ein paar Zeilen später definiert. Wenn ich das f tiefer setze, kommt die Fehlermeldung:

Zitat:
>> [I] = SimpsonRegel1 (0,3,3)
Attempted to access f1(0); index must be a positive integer or logical.

Error in SimpsonRegel1 (line 32)
s0 = f1(a);


Ich habe hier beide Varianten reinkopiert und eine mit % als Kommentar gesetzt damit ihr wisst, wie ich das vorher gemacht habe:

Code:
function [I] = SimpsonRegel1 (a,b,T)
% Die Funktion SimpsonRegel berechnet näherungsweise das Integral über
% f(x) = x³exp(2x) im Intervall [0,3] mit Hilfe der zusammengesetzten
% Simpson Regel.
% --------------------------------------------------------------------------------
% EINGABE:
% a - untere Integralgrenze
% b - obere Integralgrenze
% T - Teilintervalle, hier: T = 3
% AUSGABE:
% I - Integralwert
% -------------------------------------------------------------------------------

%[f1] = fsimp(x);

% Approximation des Integrals
%s0 = f1(a);
%s1 = 0;
%s2 = 0;
%s3 = f1(b);

% Einteilung des Intervalls in 2m Teilstücke
h = (b-a)/(2*T);

for j = 0:T
x = a + j*h;

[f1] = fsimp(x);

s0 = f1(a);
s1 = 0;
s2 = 0;
s3 = f1(b);

if mod(j,2) == 0
    s1 = s1+f1(x);
else s2 = s2+f1(x);
end
end

I = (h./3).* (s0 + 2.*s1 + 4.*s2 + s3);

disp('Dies ist die Funktion, von der das Integral berechnet werden soll')
f1
disp('Dies ist die Anzahl der Teilstücke, in die das Intervall geteilt wird')
T
disp('Wert des Integrals:')


Was mache ich falsch??? Wäre super, wenn mir da jemand helfen könnte Very Happy
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: 12.05.2015, 22:05     Titel:
  Antworten mit Zitat      
was soll denn f1(x) sein? x sihst nicht so aus als wäre das immer ein ganzzahlinger index. das sagt dir ja auch die fehlermeldung. f1 ist ein array oder double und keine funktion. wenn f1 eine funktion sein soll musst du sie auch so erstellen. guck dir mal anonyme funktionen an. wobei ich den sinn dann nicht verstehe da das dann ja nur ein anderer name für fsimp ist und dann könntest du ja auch gleich fsimp benutzen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
VonKrolock
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 26.03.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 13.05.2015, 00:49     Titel:
  Antworten mit Zitat      
So sieht f1 aus:

Code:
function [f1] = fsimp(x)
f1 = (x.^3).*exp(2.*x);
end
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: 13.05.2015, 06:05     Titel:
  Antworten mit Zitat      
nein so siht fsimp aus. f1 ist das ergebniss davon
_________________

richtig Fragen
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.