Mathematisches Problem mit Matlab: 15 Unbekannte aus 21 Gleichungen

chris1308

Moderator i.R.
Themenstarter
Registriert
23 Jan. 2011
Beiträge
3.672
Hallo,

ich muss zuerst sagen, dass ich weder ein Mathematiker noch ein Matlab-Experte bin, aber für mein Problem sollte ich gefühlt beides sein:
Ich führe eine Messreihe durch.
Es gibt 4 Parameter, die zu zwei allerdings unabhängigen Ergebnissen führen.
Jeder Parameter kann in meinem Versuch 3 verschiedene Werte annehmen.
Durch geschickte Plannung kann ich die Anzahl der Versuche von 81 auf 21 reduzieren.
Die Ergebnisse hängen quadratisch von den Parametern ab:

Y1= a*x1²+b*x2²+c*x3²+d*x4²+e*x1*x2+f*x1*x3+g*x1*x4+h*x2*x3+i*x2*x4+j*x3*x4+k*x1+l*x2+m*x3+n*x4+o

a bis o sind die Faktoren. Y2 sieht ja ähnlich aus, ist aber erstmal egal.
Genau diese 15 Faktoren will ich aus meinem 21 Messungen gewinnen.
21 Gleichungen für 15 Faktoren sollte ja lösbar sein.
Zur Verfügung steht mir Matlab (und das muss leider benutzt werden) und ich habe davon kaum Ahnung.
Könnt ihr mir sagen, wie ich das Problem angehe?
Meine Messwerte liegen aus Matrix 5x21 in Excel vor.

Gruß

Christopher
 
Nur schon mal ein Denkansatz (mit Matlab kenne ich mich leider auch nicht näher aus):
15 Gleichungen und 15 Unbekannte ist lösbar. Hast du mehr Unbekannte als Gleichungen, ist das ganze nicht eindeutig lösbar, du kannst dann nur Abhängigkeiten untereinander bestimmen. Umgekehrt wird es aber auch nicht viel leichter. Hast du mehr Gleichungen als Unbekannte, hast du entweder redundante Gleichungen, so dass am Ende nur 15 Gleichungen für 15 Unbekannte übrig bleiben oder wenn du (wie in deinem Fall) die Parameter experimentell bestimmst, dann ist das ganze überbestimmt. Überbestimmt heißt, dass du auch dieses Gleichungssystem nicht exakt lösen kannst. Es gibt mehrere Lösungen, je nachdem, welche Gleichungen du nimmst wenn du deine Werte einsetzt. Diese Lösungen können sich teilweise gegenseitig widersprechen.
Das musst du beim Lösen des Gleichungssystems also bedenken! Kannst du deine Gleichungen evtl. vorher schon so reduzieren, so dass nur 15 übrig bleiben? Ansonsten musst du dir was geschicktes überlegen, wie du die Werte einsetzt, so zu mehreren Lösungen kommst und damit dann am Ende evtl. Mittelwerte bildest.
 
ich gehe mal davon aus, dass du auch für Y2 genau 15 Koeffizienten hast; das sind dann natürlich andere als bei Y1 (sonst wäre ja Y1=Y2); also hast du insgesamt 30 Unbekannte; wenn es keine weiteren Nebenbedingungen gibt, brauchst du min. 30 Versuche; bei mehr als 30 Versuchen, würdest du eine optimale Wahl der Koeffizienten z.B. mit der Methode der kleinsten Quadrate bekommen
 
Hi Christoher,

noch kurz etwas zur Kleinstquadratlösung von A*x=b

Das System kann "gelöst" werden, wenn x so bestimmt wird, dass ¦A*x-b¦ minimal wird (Residuenvektor wird minimiert).

Die Lösung x der Gleichung (A'*A)*x=A'*b ist die Kleinstquadratlösung. Mit Matlab kannst du diese einfach mit dem Befehl A\b (=x) lösen.


Bemerkung: Die Kleinstquadratlösung ergibt eine gute Lösung (Standardmethode), jedoch existiert noch eine bessere, eine optimale und somit bestmögliche Lösung.

LG Uwe


Nachtrag: Mittels Matlab berechnet man x(min)=A'*((A*A')\b) ¦ x(min) ist Element aus row(A) am einfachsten mit dieser Anweisung.

P.S.: Kennst du dich mit der Gram--Schmidt Orthogonalisierung und der Q-R-Zerlegung sowie der Pseudoinversen (Herleitung mittels der Singulärwertzerlegung (Singular Value Decomposition) einer beliebigen Matrix A) aus?
 
Zuletzt bearbeitet:
Hi Christopher,

noch eine Frage. Inwieweit kennst du dich auf dem Gebiet der linearen Algebra aus? Geht eigentlich nur darum, dir auch eine adäquate Lösung mittels Matlab anzubieten.

LG Uwe
 
Hi Uwe,

mein einziges Ziel ist es, dass Y1 maximal wird.
Lineare Algebra kenne ich mich etwas aus, aber sicherlich nicht besonders
 
Hi Christoph,

so, wieder zu Hause.

Handelt sich also um ein Extremalprinzip. Eine allgemeine Lösung habe ich, also beliebig viele Parameter z und sowohl Messungen A, jedoch artet diese in einem Differentialgleichungssystem aus und wird dann zu komplex:

d/dz (z'*A'*A*z+o'+o)=d/dz (z'*A'*A*z)=0

Hmmm... ohne Formeleditor wird dies schwierig darzustellen. Besitzt Office 2013 Professional Plus eigentlich keinen solchen?

Im Grunde geht es darum, dass der Betrag des Gleichungssystems von A*z+o einen Maximalwert erreichen muss (A ist eine beliebe Matrix mit den Messungen - z ist ein Vektor mit den gesuchten Parametern - o ist ein Vektor mit den Skalaren - die Anzahl der Möglichkeiten eines Parameters sind somit irrelevant). Also muss ¦A*z+o¦ einen Maximalwert erhalten... oder anders ausgedrückt, 1/¦A*z+o¦ ein Minimum erlangen. Ausgeschrieben für ein Maximum von Y bedeutet dies: Y=z*A'*A*z+o'*o

Das Minimum wäre somit der Kehrwert: 1/¦A*z+o¦ ... oder gleichwertig mit: 1/(¦A*z+o¦^2), also 1/(z'*A'*A*z+o'*o).

Mal sehen, was ich tun kann. Möglich wäre eventuell eine Laplace-Transformation (Nötig: die Anfangsbedingungen). Allerdings müsste eine Rücktransformation stattfinden, was die Sache vermutlich nicht gerade einfacher macht.

Okay, Christoph... mal sehen, was sich machen lässt.

LG Uwe

P.S.: Alle Angaben ohne Gewähr, da ich dies nur so kurz vor mich hingeschrieben habe ohne Verifikation :).
 
Zuletzt bearbeitet:
Besitzt Office 2013 Professional Plus eigentlich keinen solchen?
Yeah... gefunden :).

Beitrag 7 muss ich nochmals komplett revidieren... gravierender Fehler gefunden :mad:. Am besten ignorieren... :). Aber nicht mehr heute. Bin viel zu müde... :).

LG Uwe
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben