|
|
Problem mit for-Schleife und trapz |
|
Peuk |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 08.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.10.2013, 15:31
Titel: Problem mit for-Schleife und trapz
|
 |
Hallo,
ich habe folgendes Problem. Für die Auswertung neines Messsignals muss ich u.a. eine doppelte Summation integrieren. Mein Programm sieht so aus:
Dabei tritt das Problem auf, dass "y" symbolisch ist und demzufolge "trapz" damit nicht zurecht kommt. Kopiere ich allerdings das Ergebnis der Schleife, also:
funktioniert das Ganze. Mein Ziel ist aber, dass man ein "m" eingibt und dann der Rest automatisch passiert, sprich das manuelle Kopieren von einem Resultat in den Quelltext scheidet als Lösung aus. Hat jemand eine Idee, wie ich das Ergebnis der Schleife für die trapz-Funktion nutzbar machen kann?
Vielen Dank im Voraus!
|
|
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 08.10.2013, 16:18
Titel:
|
 |
So wie ich das sehe, müsstest du doch nur Sigma vor der Schleife definieren und y mit einem Startwert versehen (z.B. y = 0). Dann sollte das auch ohne syms laufen.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.10.2013, 16:18
Titel:
|
 |
Hallo,
es ist meines Erachtens nicht sinnvoll, Terme symbolisch aufzustellen und sie dann numerisch zu integrieren.
Besser (und vermutlich schneller) wäre meines Erachtens:
Für die direkte Beantwortung der Frage bräuchte man vermutlich SUBS oder EVAL.
Grüße,
Harald
|
|
|
Peuk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 08.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.10.2013, 16:14
Titel:
|
 |
Sigma ist die Integrationsvariable, da macht eine Wertzuweisung vorher doch keinen Sinn? Ich bekäme dann nur konkrete Zahlenwerte von der Schleife über die dann integriert wird, wird das Integral quasi immer = 0 sein. Oder habe ich einen Denkfehler?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.10.2013, 16:36
Titel:
|
 |
Hallo,
bei
muss y die Funktionswerte für sigma enthalten. Daher macht es sehr wohl Sinn, speziell die Funktionswerte für sigma zu errechnen und dann die Trapezregel anwenden zu lassen.
Alternativ kannst du die Funktion integral verwenden. Diese wertet die Funktion dann an bestimmten Punkten aus und errechnet dafür das Integral:
Grüße,
Harald
|
|
|
Peuk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 08.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.10.2013, 17:07
Titel:
|
 |
Mich macht folgendes stutzig: Ich habe die vorgeschlagene Variante probiert und mit der "manuellen" Variante verglichen. Dabei kommt nicht dasselbe heraus. Mit "manuell" meine ich, dass ich erst die Schleife die Funktion errechnen lasse und diese dann einfüge:
Müsste aber eigentlich zum identischen Ergebnis führen.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.10.2013, 20:16
Titel:
|
 |
Hallo,
welche von den beiden vorgeschlagenen Varianten?
Wenn ich das von dir beschriebene mache, bekomme ich eine Fehlermeldung:
Error using ^
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.
Das verwundert mich auch nicht weiter, da die Formel zumindest bei mir (R2012b) eben ^ statt .^ enthält.
Wenn ich nach der for-Schleife wie vorgeschlagen subs anwende und folgendes ausführe:
bekomme ich genau dasselbe Ergebnis (592.7174) wie bei meinem ersten Vorschlag.
Dass das Ergebnis beim zweiten Vorschlag (593.4292) anders ist, ist kein Wunder, da ja eine andere (und genauere) Integrationsmethode verwendet wird.
Grüße,
Harald
|
|
|
Peuk |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 08.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.10.2013, 14:21
Titel:
|
 |
Hallo,
ja stimmt, habe vergessen zu erwähnen, dass ich alle ^,* und / mit entsprechend .^,.* und ./ ersetzt habe, dann funktionierts. Aber sei es drum, ich habe mich jetzt für die Variante mit der Funktion "integral" entschieden, funktioniert einwandfrei.
Vielen Dank für die Hilfe!
Gruß Erik
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|