DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: InverseLaplaceTransform: Lösung instabil

Hallo Simon,

Remove[inverseLaplaceVougioukas];
inverseLaplaceVougioukas[tende_Integer, prec_Integer] :=
Module[{},
 kprfrc = Rationalize[68.9416, 0];
 kprtrc = Rationalize[9.38075, 0];
 tnfrc = Rationalize[1.7975, 0];
 tntrc = Rationalize[30.2605, 0];
 tvtrc = Rationalize[24.4523, 0];
 t1trc = 1;
 grfrc[s_] = kprfrc*(1+1/(s*tnfrc));
 grtrc[s_] = (kprtrc*(1+1/(s*tntrc)+s*tvtrc)/(1+t1trc*s));
 gstrc[s_] = ((1/2)/(1+10*s)/(1+15*s)/(1+20*s)/(1+25*s));
 gsfrc[s_] = (1/((1+3*s)*(1+5*s)));
 nenner[s_] = (1+gsfrc[s]*grfrc[s]+gsfrc[s]*grfrc[s]*gstrc[s]*grtrc[s]);
 ztrc[s_] = -20/s;
 yrfrc[s_] = FullSimplify[(-grfrc[s]*grtrc[s]*gstrc[s]/nenner[s])*ztrc[s]];
yrfrct[t_] := ComplexExpand[Rationalize[InverseLaplaceTransform[yrfrc[s], s, t, Assumptions -> {t \{Element] Reals, s \[Element] Reals}] /. Re_[x] -> Identity[x], 0]] /. I -> 0;
 Print["InvLaplaceT: ", yrfrct[y]];
 Plot[SetPrecision[yrfrct[Rationalize[x, 0]], prec], {x, 0, tende},
   PlotRange \[Rule] {{0, tende}, {0,35}},
   GridLines \[Rule] {{},{20}},
   AxesLabel \[Rule] {"t/s","yrfrc(t)/(m3/h)"}
 ]
] /; prec > $MachinePrecision

erzeugt die Lösung yrfrct[] in rationalen Zahlen, E, Sin und Cos. Soweit ist dann keine Näherung involviert. Trotzdem ist das nicht ohne Oszillationen zu zeichnen, weil Terme wie E[-y] E[y]^(22653/14825314) auftreten, und das in verschiedenen Summanden, die weiter zusammengefasst und sortiert werden müssen. Ein Factor o.ä. schlägt fehl, es kommt die Meldung

PolynomialGCD::lrgexp: Exponent is out of bounds for function PolynomialGCD.

Normalerweise nimmt man ja auch einen Grenzwert. Mit anderen Worten, Sie erhalten eine Lösung, können sie aber vorderhand bei grossen Argumenten nicht wunschgemäss zeichnen und müssten daher das Einschwingen auf 20 mit anderen als graphischen Mitteln beweisen.

Gruss
Udo.

Simon Vougioukas wrote:


Hallo,

ich beschäftige mich zur Zeit mit Regelkreisen und will bei einer Berechnung die inverse Laplaceform bestimmen. Eigentlich habe ich eine stabile Lösung erwartet, jedoch ist dies, wie man im Plot sehen kann, nicht der Fall. Meine erste Vermutung lag darin, dass die Genauigkeit der einzelnen Variablen zu gering ist. Jedoch verändert eine höere Genauigkeit das Ergebnis leider kein Stück.

Ich tippe nun, dass der Fehler durch das Erzeugen der Inversen entsteht. Hat jemand eine Idee wie ich das überprüfen kann, bzw. wie ich meine Funktion doch noch stabil bekomme?

Vielen Dank an alle!

Gruss
- Simon



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html