Lösung unterbestimmter Gleichungssysteme

Im Rahmen meiner Abschlussarbeit muss ich drei Funktionen addieren um eine bestimmte Funktion y(x) anzunähern.
In etwa:
y(x) = a*f1(x) + b*f2(x) + c*f3(x)
Die Faktoren a, b und c sind gesucht. Als einzige weitere Information gilt a + b + c = 1.

Ich bin also auf der Suche nach einem Programm (nach Möglichkeit Freeware), das ermöglicht, ein solches System zum Beispiel über eine least square-Methode zu lösen.
Dabei interessieren ALLE möglichen Lösungen für a, b und c.

Eine Professorin hat mir Origin vorgeschlagen. Ist das damit möglich? (Ausprobieren ist deshalb problematisch, weil ich auf den betriebsinternen Computern nichts installieren kann, insofern bin ich für jede Hilfe dankbar.)

Vielen Dank im Voraus!

Hallo =)

y(x) = a*f1(x) + b*f2(x) + c*f3(x)
Die Faktoren a, b und c sind gesucht. Als einzige weitere
Information gilt a + b + c = 1.

Ich bin also auf der Suche nach einem Programm (nach
Möglichkeit Freeware), das ermöglicht, ein solches System zum
Beispiel über eine least square-Methode zu lösen.
Dabei interessieren ALLE möglichen Lösungen für a, b und c.

Huch, das werden aber viele Lösungen werden, so ungefähr unendlich viele :wink:

a+b+c=1 => a=1-b-c: mehr kannst du nicht sagen.

Also y(x)=(1-b-c)*f1(x)+bf2(x)+cf3(x) = f1(x)+b(f2(x)-f1(x))+c(f3(x)-f1(x)

Jetzt darfst du für b und c alles einsetzen was du willst, da die Randbedingung immer erfüllt ist - also unendlich viele Lösungen, da muss man nicht mal mehr rechnen.

Mehr kann man da nicht raus holen, da nutzt auch kein Programm etwas.

MfG, Christian

Ich nehme mal an, dass es um eine Wahrscheinlichkeit geht.
Beim einsetzen müsste zusätzlich darauf geachtet werden, dass 0

Hallo,
hört sich für mich ein bisschen nach einer Optimierungsaufgabe an. Sind denn
y(x) mit || y - af1 - bf2 -cf3 || = minimal gesucht? Falls ja und
wenn f1,f2,f3 analytische Funktionen sind könnte man eine orthogonale Projektion versuchen. Oder für ein least-squares fitting gnuplot oder xmgrace verwenden.
gruß
r

Oh entschuldigung, ich fürchte, ich habe meine Frage nicht so eindeutig formuliert, wie ich das gerne hätte.
Gesucht sind a, b und c, y(x) ist eine gegebene analytische Funktion genau wie f1, f2 und f3. (Die Faktoren sind wiederum, wie Safrael so richtig vermutet hat, alle größer 0.)

Vielen Dank für die Hinweise auf gnuplot und xmgrace und auch die orthogonale Projektion, ich werde mal versuchen herauszufinden, was das ist und wie es funktioniert. Dankeschön.

Ja, soetwas habe ich mir auch zusammengebastelt, aber ich habe dann doch der Professorin geglaubt, dass es funktioniert.

Vielen Dank auf alle Fälle für die (unglaublich schnelle!) Antwort! =)

Du hast völlig recht, alle Faktoren müssen größer 0 sein. Das habe ich völlig vergessen. - Eine Möglichkeit, das noch in die Fragestellung aufzunehmen finde ich leider nicht…

Vielen Dank für den Hinweis. =)

Oh entschuldigung, ich fürchte, ich habe meine Frage nicht so
eindeutig formuliert, wie ich das gerne hätte.
Gesucht sind a, b und c, y(x) ist eine gegebene analytische
Funktion genau wie f1, f2 und f3. (Die Faktoren sind wiederum,
wie Safrael so richtig vermutet hat, alle größer 0.)

Vielen Dank für die Hinweise auf gnuplot und xmgrace und auch

Wenn sogar y(x) auch eine analytische Funktion ist müsstest du um gnuplot oder xmgrace z uverwenden erst Beispielpunkte berechnen und die in eine Datei schreiben:
a’la
--------- Schnipp -----
0 0.2
0.5 0.3
1.0 0.4
1.5 0.5
--------- Schnapp ------

sagen wir die Datei heisst: y_x.dat.

Dann gnuplot starten.

jetz kannst du die Funktionen definieren:

> f1(x) = x**2
> f2(x) = x**3
> f3(x) = x**4

dann die Fitfunktion:
> g(x) = a*f1(x) + b*f2(x) + (1-a-b)*f3(x)

jetz musst du nur noch eine Minidatei mit den Startwerten (die Du gut Raten musst, weil der Algorithmus ins nächste steile Loch fällt) anlegen:
----------Schnipp--------
a=0.3
b=0.1
----------Schnapp--------
nennen wirt sie mal: start.dat
dann nur noch

>fit g(x) ‚y_x.dat‘ via ‚start.dat‘

dann sind wir auch schon fertig!

Aber in dem Falle analytischer Funtionen wäre evtl. die Lagrange-Methode die Methode der Wahl.

die orthogonale Projektion, ich werde mal versuchen
herauszufinden, was das ist und wie es funktioniert.
Dankeschön.

Vielen, vielen Dank für diese gute Erklärung!
Ich werde sowohl das als auch die Lagrange-Methode (die habe ich grade noch in der Bibliothek aufgestöbert) ausprobieren.
Danke nochmal!

Hallo =)

Du hast völlig recht, alle Faktoren müssen größer 0 sein. Das
habe ich völlig vergessen. - Eine Möglichkeit, das noch in die
Fragestellung aufzunehmen finde ich leider nicht…

Also als Lösung habe ich ja bisher geschrieben:

y(x)=(1-b-c)*f1(x)+bf2(x)+cf3(x) = f1(x)+b(f2(x)-f1(x))+c(f3(x)-f1(x)

Mit der Bedingung, dass a+b+c=1 ist: a haben wir hier ja durch b und c bestimmt, mit a=1-b-c - a,b,c sollen nun auch noch größer 0 sein. Also muss b+c0 und c>0. Hier hast du immer noch unendlich viele Lösungen - aber zumindest eine Bedingung mehr.

Also nochmal eine kleine Zusammenfassung:

y(x)=f1(x)+b(f2(x)-f1(x))+c(f3(x)-f1(x)
Mit b+c0 und c>0

MfG, Christian

Oh, mit dem „Fragestellung“ war der erste Post gemeint und ein Fehlen der Möglichkeit es zu editieren, so dass dieser Mangel in der originalen Fragestellung behoben wird.

Aber vielen Dank, so eine zweite Lösung hilft immer. :smile: