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-ID: 339881

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

Ausgedruckt am: 26.11.2024 um 03:11 Uhr

H41mSh1C0R
H41mSh1C0R 07.06.2017 um 07:44:48 Uhr
Goto Top
Servus,

Was genau verstehst du an der Implementation nicht?

VG
Protected
Protected 07.06.2017 um 08:03:17 Uhr
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?
Sheogorath
Sheogorath 07.06.2017 um 13:16:50 Uhr
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.