2017-07-19 5 views
0

Hintergrund

ich derzeit an einem Vortrag in MATLAB Kurs für meine Technik arbeite und stolperte über ein Problem, würde ich in die Klasse präsentieren möge. Ich habe viele verschiedene Versuche unternommen, um dieses Problem zu lösen, aber meine Graphen kommen immer wieder falsch. Ich werde das Problem unten und alle Schritte beschreiben, die ich unternommen habe, um dieses Problem zu lösen.MATLAB Kurvenanpassung mit Pisten

Problem

Finden Sie die Koeffizienten der Polynom vierten Grades

P(x) = ax^4 + bx^3 + cx^2 + dx + e 

deren Graph die Punkte geht durch (0, 1), (1, 1), (-1,3) und dessen Pisten am x = -1 ist 20 und bei x = 1 ist 9 .

Überprüfen Sie Ihre Antwort visuell.

Attempt

Ich begann mit einer Matrix der genannten x-Werte zu schaffen, die I abgeleitet sind, wie folgt:

A = [0^4 0^3 0^2 0 1; 1^4 1^3 1^2 1 1; (-1)^4 (-1)^3 (-1)^2 -1 1]; 
A = [0 0 0 0 1; 1 1 1 1 1; 1 -1 1 -1 1]; 

Dies erzeugt eine 5-Säule von 3 Reihenmatrix, die ich plotten verwenden das Polynom.

Mein Problem ist, dass ich die letzte Reihe von x-Werten nicht bekommen kann, da jede Reihe eine Gleichung im System von Gleichungen ist und es so viele Gleichungen geben muss, wie es Unbekannte gibt (4: a, b , c und d sind unbekannt, aber e ist immer gleich 1, wie Sie sehen können.

Wenn ich dieses Problem für einen Moment ignoriere, kann ich weiterhin eine vertikale Matrix von y-Werten erstellen, so dass ich das Gleichungssystem lösen kann. Diese y-Werte sind bereits gegeben, so alles, was ich tun muß, ist, diesen Code eingeben:

y = [1 1 3]'; 

Wieder einmal sollte es ein vierte y-Wert sein, um zusammen mit dem Gleichungssystem zu gehen, aber ich habe nicht in der Lage, es unter Verwendung nur der Steigungen der Punkte bei x = -1 und x = 1 abzuleiten.

Sobald sowohl die x-Werte als auch die y-Werte abgeleitet sind, können wir fortfahren, die backslash operator (/) zu verwenden, um das System der linearen Gleichungen A * x = y zu lösen.

p = A\y; 

mldivide ist mehr Informationen über die mldivide Funktion für alle, die Referenz benötigt.

Von hier an sollte der folgende Code, der ein Polynom aus diesem Gleichungssystem erstellt und grafisch darstellt, gleich bleiben.

u = -1:.01:1; 
v = polyval(p, u); 
plot(u,v); 

In diesem Code u ist die Domäne der x-Werte von bis -11 mit einem 0.01 Intervall. Dies wird von uns benötigt, um die polyval-Funktion zu verwenden, die ein Polynom aus einem Gleichungssystem erzeugt, das wir im Intervall u von abgeleitet haben.

Zuletzt, plot graphiert einfach unser abgeleitetes Polynom mit MATLAB GUI auf dem Intervall u.

Wie Sie sehen können, sind die einzigen fehlenden Teile ich habe, sind eine weitere Reihe von x-Werte in meiner Matrix A und ein y-Wert in Matrix y, dass ich die vier Unbekannten finden müssen a, b, c, und d. Ich glaube, Sie müssen die beiden im Problem angegebenen Steigungen verwenden, um jeden Punkt zu finden. Ich habe versucht, die polyder Funktion p die Ableitung der Matrix zu erhalten, indem Sie,

q = polyder(p); 

aber ich bin immer noch verwirrt, wie von dort fortzusetzen. Jede Hilfe wird sehr geschätzt.

+0

Sie beschreiben mehrere Schritte (darunter die Bestimmung der Koeffizienten und die Darstellung der Ergebnisse). Können Sie das sehr gut beschreiben: 1. An welchem ​​Punkt genau stecken Sie fest? 2. Was passiert jetzt und was soll genau passieren? Vorzugsweise mit Beispielen. –

Antwort

2

ich die Ableitung des Polynoms berechnen würde:

dP(x) = 4ax^3 + 3bx^2 + 2cx + d 

Nun, wissen Sie, dass dP(-1)=20 und dP(1)=9 so haben Sie 5 Gleichungen mit 5 Unbekannten:

e = 1 
a + b + c + d + e = 1 
a - b + c - d + e = 3 
-4*a + 3*b - 2*c + d = 20 
4*a + 3*b + 2*c + d = 9 

So können Sie eine 5x5 konstruieren Matrix und lösen Sie das System, wie Sie es mit A\y getan haben.

Der Code dieses 5x5-Matrix zu konstruieren ist:

A = [0 0 0 0 1 ; 1 1 1 1 1 ; 1 -1 1 -1 1 ; -4 3 -2 1 0 ; 4 3 2 1 0]; 
y = [1 1 3 20 9]'; 

Sie dann die Ergebnisse auf einem Grundstück überprüfen:

p=A\y; 
u = -1:.01:1; 
v = polyval(p, u); 
data_pts = [0, 1; 1, 1;-1, 3] 
plot(u,v,data_pts(:,1),data_pts(:,2),'rx') 

, die folgende Handlung gibt:

enter image description here

Sie können das gleiche mit dem Derivat tun und prüft es geht durch h die Punkte (-1,20) und (1,9).

+0

stimme ich voll und ganz zu! Kennen Sie den einfachsten Weg, um für x = -1 und x = 1 auszuwerten und eine Matrix von diesen x Werten in MATLAB zu erhalten? –