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

Flexible Summation über eine anonyme Funktion? Wie?

 

bluesaturn
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2014, 17:12     Titel: Flexible Summation über eine anonyme Funktion? Wie?
  Antworten mit Zitat      
Guten Tag, Forumsgemeinschaft.
Vielleicht sehe ich den Wald vor lauter Bäumen nicht.

Ich würde gerne eine Summe programmieren, bei der eine anonyme Funktion im Summanden enthalten ist. Geht das und wenn ja, wie?

Meine Formel lautet
f=@(q,\alpha)(\rho_N-\rho_0)\cdot V_N\cdot G(q,\alpha,r_N)+(\rho_0-\rho_2)\cdot V_1\cdot G(q,\alpha,r_1)+\sum_{i=2}^{N-1}(\rho_i-\rho_{i+1})V_i\cdot G(q,\alpha,r_i)

Erledigt man das Summenzeichen mit einer Vor-Schleife?
G(q,\alpha,r_i) ist die anonyme Funktion.

Edit: Das G muesste dann wohl fuer jedes r_i ausgewertet werden.

Für kleine N (N=7) habe ich die einzelnen Summanden per Hand eingegeben, ich würde es jetzt aber gerne automatisieren, so dass ich höhere N wählen kann.

f(q,alpha) wird im nächsten Schritt quadriert und dann wird die Matrix für alle q und alpha Werte ausgewertet.

Danke für Euren Hilfe.
Gruß
blue
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.05.2014, 20:00     Titel:
  Antworten mit Zitat      
Hallo,

Function Handles sind in erster Linie für Einzeiler gedacht und geeignet.
Wenn die Formel wie hier umfangreicher wird, würde ich das in eine eigene Funktion oder auch lokale Funktion schreiben.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.05.2014, 23:22     Titel:
  Antworten mit Zitat      
Guten Abend, Harald.
Die Formel passt schon in eine Zeile. Ich würde die Anzahl der Summanden aber gerne flexibel gestalten. Ich weiß leider nicht, wie das mit einer lokalen Funktion geht.
Eine Funktion möchte ich eigentlich nicht. Ich denke, da muss ich später mit globalen Variabeln rechnen, um für alle q über alle alpha zu intergrieren. Zumal mein Code gerade auf anonyme Funktionen optimiert ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.05.2014, 08:45     Titel:
  Antworten mit Zitat      
Hallo,

ist G vektorisiert, d.h. kannst du es für mehrere r auf einmal auswerten?
Wenn ja, dann sollte das mit .* und sum klappen.
Wenn nicht, dann bleibt ja nur eine for-Schleife. Dann passt zwar die Formel noch in eine Zeile, aber eben nicht die Code-Umsetzung.

Zitat:
Ich denke, da muss ich später mit globalen Variabeln rechnen

Sehe ich nicht so, da du ja trotzdem ein anonymous function handle auf die Funktion verwenden kannst - siehe z.B.
http://www.mathworks.com/help/relea.....-functions.html#bsgprpq-8
Grüße,
Harald
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.