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

In matlab ein integral von -unendlich bis zu einem wert

 

laleli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2017, 14:02     Titel: In matlab ein integral von -unendlich bis zu einem wert
  Antworten mit Zitat      
Hallo,
ich würde gerne ein integral von -unendlich bis zu einem bestimmten wert ausrechnen.
Bisher habe ich int, quadgk und numeric::int ausprobiert, leider funktioniert nichts davon. wenn ich es mit der hand ausrechne bekomme ich einen anderen wert raus

function y2 = funktion(x2)

y2=exp(-(1./2).*(x2.^2));

das ist meine funktion
q1 = quadgk(@funktion,-inf,152.969);

ich bekomme zwar keine fehlermeldung aber auch kein ergebnis. hat jemand eine idee?


Harald
Forum-Meister

Forum-Meister


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

ein Integral bis -inf numerisch auszuwerten ist etwas gewagt.

Symbolisch mit int:
Code:
syms x
y=exp(-(1./2).*(x.^2));
eval(int(y, -inf, 152.969))


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
laleli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2017, 15:01     Titel:
  Antworten mit Zitat      
Ich würde das gerne getrennt voneinander machen.
also die funktion in einem eigenen fenster und den aufruf in einem anderen,
wenn ich das jetzt so:
eval(int(@funktion,-inf,152.969)) versuche dann funktioniert es leider nicht :/
woran kann das liegen?
 
Harald
Forum-Meister

Forum-Meister


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

du müsstest auf jeden Fall in der Funktion auch x als symbolisch definieren.

Code:
eval(int(funktion, -inf, 152.969))

und
Code:
function y = funktion()
syms x

y=exp(-(1./2).*(x.^2));


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
laleli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2017, 07:13     Titel:
  Antworten mit Zitat      
Ja das war mein erster Gedanke und das habe ich auch getan aber trotzdem bekomme ich diese fehlermeldung:
Undefined function 'int' for input arguments of type 'function_handle'.

Sad
 
gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2017, 07:19     Titel:
  Antworten mit Zitat      
Hi,

Du musst die Funktion als "Function" abspeichern. Dann funktioniert das auch.

Im Anhang findest du, wie das aussieht.

im Command-Window dann einfach den Befehl

Code:
eval(int(funktion, -inf, 152.969))


eingeben und fertig.


Denk aber dran, vorher in den Ordner zu wechseln, inder die Funktion abgespeichert ist.

Gruß gs

funktion.m
 Beschreibung:

Download
 Dateiname:  funktion.m
 Dateigröße:  69 Bytes
 Heruntergeladen:  564 mal

_________________

Mein Seite.
Private Nachricht senden Benutzer-Profile anzeigen
 
laleli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2017, 07:30     Titel:
  Antworten mit Zitat      
Habe ich gemacht, aber es geht nicht.
ich glaube das problem liegt darin dass ich den zweiten wert also die 152.969 durch eine schleife bestimmen lassen will und das im integral selber.
es soll nämlich je nach ywert anders integriert werden, ich dachte das kann ich auch einfacher erklären und dann übertragen aber leider funktioniert es nicht.
ich will diese funktion integrrieren von -unendlich bis (y(i)-funktion2(i)/wert)
die funktion 2(i) habe ich in dem programm selber also nich in einem anderen fenster offen und wenn ich den zweiten teil nur in der schleife ausgeben lasse funktoniert es auch einwandfrei aber in dem integral geht es dann nicht mehr

mit dem was jetzt geschickt wurde bekomme ich diese Fehlermeldung:
Not enough input arguments.
 
laleli

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2017, 07:33     Titel:
  Antworten mit Zitat      
Ich hab es geschafft! Danke Smile
ich hab ja die variable x2 genannt und nicht x Very Happy danke danke danke Smile
 
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.