|
|
Zusammengesetzte Funktion und quad-Befehl |
|
Jörg59 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2009, 14:40
Titel: Zusammengesetzte Funktion und quad-Befehl
|
 |
Servus,
ich habe folgendes Problem. Wenn ich meine abschnittsweise definierte Funktion über mehrere verschiedene Werte (Laufzahl m) integrieren möchte erscheint der Fehler:
Warning: Maximum function count exceeded; singularity likely.
Liegt es an meiner Funktion? Kann diese besser aufgebaut werden oder gibt es andere Tricks hierfür?
Danke Jörg
|
|
|
|
|
spawnferkel |

Forum-Fortgeschrittener
|
 |
Beiträge: 53
|
 |
|
 |
Anmeldedatum: 11.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2009, 13:57
Titel:
|
 |
Ich habe diesen Code
ausgeführt und dieses Bild erhalten:
Wo ist der Fehler?
Beschreibung: |
|
 Download |
Dateiname: |
joerg.png |
Dateigröße: |
3.8 KB |
Heruntergeladen: |
941 mal |
|
|
|
Jörg59 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2009, 14:40
Titel:
|
 |
Hallo spawnferkel,
das Bild erzeugt Matlab mir auch. Mir geht es aber um die quad Funktion. Diese erzeugt mir im Command-Window den Fehler:
Warning: Maximum function count exceeded; singularity likely.
Wenn ich allerdings nur einen Abschnitt dieser Funktion durchlaufe erscheint dieser Fehler nicht.
Kann ich nun die Funktion anders aufbauen, damit dieser Fehler nicht mehr kommt? Ich muss nämlich mit dem Wert aus dieser Integration weiterrechnen. Oder gibt es in diesem Fall eine alternative zum quad Befehl?
Danke schonmal
|
|
|
spawnferkel |

Forum-Fortgeschrittener
|
 |
Beiträge: 53
|
 |
|
 |
Anmeldedatum: 11.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2009, 08:02
Titel:
|
 |
Das Problem liegt hier:
Ich würde es so machen:
Das sollte erheblich schneller sein.
|
|
|
Jörg59 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2009, 11:54
Titel:
|
 |
Danke schonmal
Mein Problem ist allerdings komplexer, so dass ich mit deiner Summation so leider noch nicht weiterkomme.
Mit jedem Q-Wert wird eine weitere Funktion berechnet und anschließend addiert. So sah das mit meiner for Schleife aus:(dies funktioniert allerdings nicht mehr, wenn ich das zero weglasse)
Ich bekomme zwar hin, dass jeder Q-Wert mit einer Zahl multipliziert wird, aber nicht mit einer Funktion und das ich dann die entstehende Funktion y ausplotten kann.
Hoffe du kannst mir nochmal helfen spawnferkel.
Gruß Jörg
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2009, 13:25
Titel:
|
 |
Hallo,
hmm, das ist kein Fehler der quad-Funktion sondern eine korrekte Diagnose der zu integrierenden Funktion: mit "singularity likely" hat quad doch den Nagel auf den Kopf getroffen, bei t1 und t2 hat die Funktion tatsächlich eine Singularität (Knickstelle mit Sprung in der Ableitung). Wenn quad über diese Stelle hinwegintegriert, muss das Ergebnis ungenau werden.
Wenn die Stellen aber wie bei Dir bekannt sind, sollte auch abschnittsweise integriert werden ...
Titus
|
|
|
Jörg59 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2009, 14:06
Titel:
|
 |
Hi Titus,
wenn ich die Funktion zuerst von 0 nach t1 ; dann t1->t2 dann t2-> t3 integriere und danach die einzelnen Werte addiere ,erscheint trotzdem der Fehler mit der Singuralität.
Wie kann ich eingetlich schreiben, das der Funktionswert an der Stelle t3 derselbe ist wie bei t=0 ? Hab es so probiert:
dies funktioniert aber so nicht. Naja dieses Problem ist erst einmal nebensächlich, wichtig wäre es die abschnittsweise Funktion richtig aufzustellen um das Integral zu berechnen und damit dann weiter zu rechnen...
Jörg
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2009, 14:28
Titel:
|
 |
Hallo Jörg,
ich habe mir den Code angeschaut: der wesentliche Fehler liegt in der Zeile
quad ruft die Funktion an mit einem Vektor x auf, d.h., die Zeile muss heissen:
Dann funktioniert es auch mit der abschnittsweisen Integration:
Letzte kleine Änderung:
habe ich durch
ersetzt, dann ist y auch ein Zeilenvektor, wenn x einer ist.
Titus
|
|
|
Jörg59 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2009, 14:41
Titel:
|
 |
Vielen Dank Titus,
läuft jetzt
|
|
|
|
|
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.
|
|