Matlab: Lineares Gleichungssystem lösen
Meine Frage:
Hallo, ich beschäftige mich gerade mit Matlab und komme leider nicht weiter. Im Prinzip will ich ein lineares Gleichungssystem lösen. Gegeben ist eine Rekursion:
B(t, r)= 1/6*(1+B(t, 0)+B(t, r+1)+B(t, r+2)+B(t, r+3)+B(t, r+4)+B(t, r+5))
und B(t, r)=1 falls r>=t
Das Ziel ist es jetzt B(t, 0), B(t, 1) explizit zu berechnen. Meine Ideen:
Ich habe mir überlegt das erstmal für den Fall t=2 zu probieren. Dazu habe ich mir eine Matrixgleichung der Form Ax=b überlegt. Matlab Gleichungssysteme lösen. Es hat folgende Form:
A=(
1, B(2, 0), B(2, 1), B(2, 2), B(2, 3), B(2, 4), B(2, 5);
1, B(2, 0), B(2, 2), B(2, 3), B(2, 4), B(2, 5), B(2, 6);
1, 1, 1, 1, 1, 1, 1;
1, 1, 1, 1, 1, 1, 1;)
und x= [1/6;1/6;... ;1/6] ein Spaltenvektor der Länge 2+5=7. Meine rechte Seite ist
b=[B(2, 0);B(2, 1);B(2, 2);B(2, 3);B(2, 4);B(2, 5);B(2, 6)]
Das Ziel ist es also den Vektor b zu bestimmen. Ich möchte das so nicht explizit eintippen, weil ich ja später die Möglichkeit haben will den Wert für t zu variieren.
Gleichungen Mit Matlab Lösen
630396332390718431485053218985
1. 0597804633025896291682772499885
The third root is:
- 0. 34508839784665403032666523448675 - 1. 0778362954630176596831109269793*i
The fourth root is:
- 0. 34508839784665403032666523448675 + 1. 0778362954630176596831109269793*i
Numeric value of first root
6. 6304
Numeric value of second root
1. 0598
Numeric value of third root
-0. 3451 - 1. 0778i
Numeric value of fourth root
-0. 3451 + 1. 0778i
Bitte beachten Sie, dass die letzten beiden Wurzeln komplexe Zahlen sind. Gleichungen höherer Ordnung in Oktave lösen
Das folgende Beispiel löst die Gleichung vierter Ordnung x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.
v = [1, -7, 3, -5, 9];
s = roots(v);% converting the roots to double type
-0. 34509 + 1. 07784i
-0. 34509 - 1. 07784i
Gleichungssystem in MATLAB lösen
Das solve Die Funktion kann auch verwendet werden, um Lösungen von Gleichungssystemen mit mehr als einer Variablen zu generieren. Matlab gleichungen lösen file. Nehmen wir ein einfaches Beispiel, um diese Verwendung zu demonstrieren. Lösen wir die Gleichungen -
5x + 9y = 5
3x - 6y = 4
s = solve('5*x + 9*y = 5', '3*x - 6*y = 4');
s. x
s. y
22/19
-5/57
Auf die gleiche Weise können Sie größere lineare Systeme lösen.
Matlab Gleichungen Lösen File
13. 12. 2016, 15:23
giusi
Auf diesen Beitrag antworten »
Matlab Gleichungssysteme lösen
Ich versuche gerade das Galerkin Verfahren in Matlab zu programmieren. Dabei bin ich bei der Berechnung der Basisfunktionen stehen geblieben. Ich habe folgende Rahmenbedingungen:
y(0)=0, y'(1)=1
bzw.
1*y(0)+0*y'(0)=0
1*y(1)+0*y'(1)=1
nun für u0 funktioniert mein Programm und liefert richtig für u0(x) = x
dann müsste das Porgramm für u1(x) das Gleichungssystem:
1*c + 0*b=0
0*(a+b+c) + 1*(2*a+b)=1 auflösen
ich habe es mit der Funktion solve ([funktion1, funktion2], [a, b, c]); versucht. und das Programm liefert mir a=0. 5; b=0 und c=0. Ich sollte jedoch für u1(x)= x(1-x) erhalten. Gleichungen mit matlab lösen. Ich gehe davon aus, dass die Funktion solve das Problem ist. Es wäre super, wenn mir jemand helfen könnte. 13. 2016, 15:52
zyko
RE: Matlab Gleichungssysteme lösen
Ich nehme an, dass dies
heißen muss, gemäß den Anfangsbedingungen. Für "solve" musst du hier zwei Funktionen in x ansetzen
vgl.
Abschnitt:
syms a b c x
eqn = a*x^2 + b*x + c == 0;
solx = solve(eqn, x)
z.
Matlab Gleichungen Lesen Sie
B.
funktion1 = a*x^2 + b*x + c == 0;
funktion2 = 2*a*x + b == 0;
Beachte: bei dir ist die Unbekannte nicht x sondern [a, b, c]. Soweit ich mich erinnern kann, arbeitet das Galerkin-Verfahren häufig mit Ansatzfunktionen. In diesem Fall sollten dies Ansatzfunktionen auch bei deinen Funktionen 1 und 2 auftreten, bzw. deren Ableitungen. Anhang: ich habe zwar einiges an Erfahrung mit matlab aber nicht speziell mit symbolischen Umformungen, hier mittels "solve". Lies dir deshalb die matlab Hilfe dazu durch. 13. 2016, 16:07
Hallo zyko
danke für deine Antwort
genau wir nennen die Ansatzfunktionen "Basisfunktionen". Genau diese müsste ich mit meinem Code generieren. Auflösen einer gleichung nach einer Variable - Mein MATLAB Forum - goMatlab.de. Gegeben sind nur die Randbedingungen und einma x=0 und einmal x=1. Wenn ich dann meine allgemein formulierte Ansatzfunktionen (u1(x)= ax^2+bx+c) und deren Ableitungen (u1'(x)= 2ax+b) zur Berechnung der effektiven Ansatzfunktion für die gegebenen Randbedingungen kriege ich aber falsche Koeffizienten für a, b und c.
Dein Bespiel zeigt wie ich eine Funktion nach x auflöse richtig?
Variante c: Bei diesem
System muss Matlab passen, denn es ist nicht für die symbolische Rechnung vorgesehen:
Abhilfe könnte man dadurch schaffen, dass man der Variablen c
vorher einen numerischen Wert zuweist, aber dann wird natürlich nicht
symbolisch gerechnet.