protected
Goto Top

Ableitung EULER-Verfahren

Hallo,

kann mir jemand sagen was diese Funktion genau macht? Ich weiß das es die Ableitung von EULER sein soll, welche benötigt wird um das EULER-Verfahren anzuwenden. Kann mir jemand sagen was dort passiert in den Zeilen? Die Mathematik ist ja ganz anders, bezüglich der Ableitung.

MathVector DGLSolver::Derivation(MathVector& y, double &x) {
	MathVector fyx;
	if (f) {
		fyx = f(y, x);
	}
	else {
		fyx = MathVector(y.getDimensions());

		for (int i = 0; i < fyx.getDimensions() - 1; i++)
			fyx[i] = y[i + 1];

		fyx[fyx.getDimensions() - 1] = f_n(y, x);
	}

	return fyx;
}

Content-Key: 339881

Url: https://administrator.de/contentid/339881

Printed on: April 26, 2024 at 21:04 o'clock

Member: H41mSh1C0R
H41mSh1C0R Jun 07, 2017 at 05:44:48 (UTC)
Goto Top
Servus,

Was genau verstehst du an der Implementation nicht?

VG
Member: Protected
Protected Jun 07, 2017 at 06:03:17 (UTC)
Goto Top
Was das mit der Ableitung zu tun hat. Ich meine wieso wird hier fyx[i] = y[i + 1]; gemacht ?

Oder wieso wird geprüfte ob if (f) und wird dann nur ausgegeben?
Member: Sheogorath
Sheogorath Jun 07, 2017 at 11:16:50 (UTC)
Goto Top
Moin,

if (f) {
	fyx = f(y, x);
}
Hier wird geschaut ob ein "function pointer" mit dem namen f ungleich null ist. Hintergrund ist recht einfach: Du hast eine Vektoren Klasse und kannst dieser eine function für eben solche Operationen zuweisen, musst es aber nicht. Hierdurch kannst du die Vektoren für andere Gruppen nutzen, als z.B. nur für den Zahlenraum der reellen Zahlen.

Wenn keine andere funktion definiert ist, wird eben eine Fallback Implementierung verwendet.