07.03.2007, 22:05 |
tigerbine |
Auf diesen Beitrag antworten » |
[WS] Spline-Interpolation - Beispiele
Gliederung
Kleine Programmsammlung
- Linearer Spline
- Quadratischer Spline
- Kubischer Spline
- Lokaler kubischer Spline
Splinewettkampf (trig. Funtkion)
- Linearer Spline
- Quadratischer Spline
- Kubischer Spline
Das ganze noch einmal - mit B-Splines
- Splinewettkampf
- Linearer B-Spline
- Quadratischer B-Spline
- Kubischer B-Spline
Unterschied Funktion und Kurve
- Interpolierende Funktion
- Interpolierende Kurve 1
- Interpolierende Kurve 2
Auswirkungen geänderter Parameter
- Ändern eines Datensatzes
- Ändern eines Koeffizienten
Einfaches Beispiel für kubischen Spline
Drei Punkte mit Splines verbinden |
07.03.2007, 22:06 |
tigerbine |
Auf diesen Beitrag antworten » |
1. Linearer Spline
Im Anhang dieses Beitrags befindet sich ein Matlab-file (spline1.m) zur Berechnung von linearen Splines. Es ist als eine Art "Rechenknecht" für die im Theorie-Teil aufgeführte Berechnungsvorschrift gedacht.
Ein Beispiel
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
|
Es wird ein linearer Spline berechnet.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3]
Funktionswerte eingeben: [2,3,5,4]
n =
3
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
1 1 1
Berechnung der Deltas df_0,...,df_n-1
df =
1 2 -1
Matrix der Restriktionen in Newton-Darstellung
RN =
2 1
3 2
5 -1
Matrix der Restriktionen in Monom-Darstellung: 1,x
RM =
2 1
1 2
7 -1
|
|
Werden quadratische Polynome reproduziert?
Nein, es stehen ja nur lineare Polynome zur Verfügung.
Werden kubische Polynome reproduziert?
Nein, es stehen ja nur lineare Polynome zur Verfügung. |
07.03.2007, 22:07 |
tigerbine |
Auf diesen Beitrag antworten » |
2. Quadratischer Spline
Im Anhang dieses Beitrags befindet sich ein Matlab-file (spline2.m) zur Berechnung von quadratischen Splines. Es ist als eine Art "Rechenknecht" für die im Theorie-Teil aufgeführte Berechnungsvorschrift gedacht.
Wir wollen nun einmal schauen, ob nun auch quadratische Funktionen reproduziert werden können.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
|
Es wird ein quadratischer Spline berechnet.
Beachte: Der Datensatz hat die Form
Spline-Knoten: t_0,...,t_n
Spline-Werte: u_0,...,u_n
IP-Stellen: r_1 ,..., r_n
IP-Funktionswerte: f(r_1),...,f(r_n)
Spline-Knoten eingeben : t=[-1,0,1]
u_0 eingeben: u_0=1
u_n eingeben: u_n=1
IP-Stellen eingeben: r=[-0.5,0.5]
IP-Funktionswerte eingeben: f=[0.25,0.25]
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
1 1
Berechnung der Deltas a_1,...,a_n
a =
0.5 0.5
Berechnung der Deltas b_0,...,b_n
b =
0.5 0.5
Berechnung der beta_0,...,beta_n-2
beta =
1
Berechnung der alpha_1,...,alpha_n-1
alpha =
6
Berechnung der gamma_1,...,gamma_n-1
gamma =
1
Berechnung der y_1,...,y_n-1
y =
0
Aufstellen der Matrix M
M =
6
Berechnung der Lösung u von Mu=y: u_1,...,u_n-1
0
Der komplette Vektor u:
u =
1 0 1
Matrix der Restriktionen in Newton-Darstellung
RN =
1 -1.5 1
0 0.5 1
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²
RM =
0 0 1
0 0 1
Vergleichsfunktion eingeben? (0=ja, 1=nein) 0
Funktion eingeben. Variabel vt verwenden, Beispiel: vt.^2: vt.^2
|
|
Die Restriktionen lauten also:
Werden auch lineare Polynome reproduziert?
Ja.
Werden auch noch kubische Polynome reproduziert?
Nein, es stehen ja nur quadratische Funktionen zur Verfügung. |
10.03.2007, 16:39 |
tigerbine |
Auf diesen Beitrag antworten » |
3. Kubischer Spline
Zitat: |
Workshop-Spline-Interpolation-Theorie
- Natürlicher Spline
Die Bedingung wird deswegen als natürlich bezeichnet, weil die zweite Ableitung im Wesentlichen die Krümmung einer Funktion darstellt. Daher hat dieser Spline die geringste Krümmung.
Sie erweist sich allerdings als schlecht, da hier dann z.B. die Funktion nicht durch einen kubischen Spline reproduziert wird.
- Vollständiger Spline
Sofern diese Werte bekannt sind, wird ein kubisches Polynom durch den Spline reproduziert.
|
Versuchen wir das einmal zu verifizieren.
1. Durchlauf
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3]
Funktionswerte eingeben: [0,1,8,27]
n =
3
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
1 1 1
Berechnung der Deltas df_0,...,df_n-1
df =
1 7 19
Berechnung der Brüche df0/dt0,...,df_n-1/dt_n-1
dfdt =
1 7 19
Berechnung der Betas b_1,...,b_n-1
b =
1 1
Berechnung der Alphas a_1,...,a_n-1 (vorläufig)
a =
4 4
Berechnung der Gammas c_1,...c_n-1
c =
1 1
Berechnung der rs r_1,...,r_n-1 (vorläufig)
r =
24 78
------------------------------------------------------------------------------
Bitte wählen: 0 - natürlicher Spline
1 - vollst. Spline
Deine Wahl: 0
------------------------------------------------------------------------------
Berechnung der Alphas a_1,...,a_n-1 (nat. Spline)
a =
3.5 3.5
Berechnung der rs r_1,...,r_n-1 (nat. Spline)
r =
22.5 49.5
Aufstellen der Matrix M
M =
3.5 1
1 3.5
Berechnung der Lösung s von Ms=r: s_1,...,s_n-1
2.6 13.4
Der komplette Vektor s:
s =
0.2 2.6 13.4 21.8
Matrix der Restriktionen in Newton-Darstellung
RN =
0 0.2 0.8 0.8
1 2.6 4.4 2
8 13.4 5.6 -2.8
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
0 0.2 0 0.8
-1.2 3.8 -3.6 2
37.2 -53.8 25.2 -2.8
|
|
Sieht doch gar nicht so schlecht aus. Dennoch wird die Funktion nicht reproduziert (), wie eine genaue Betrachtung zeigt:
natürlicher kubischer Spline
2. Durchlauf
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3]
Funktionswerte eingeben: [0,1,8,27]
n =
3
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
1 1 1
Berechnung der Deltas df_0,...,df_n-1
df =
1 7 19
Berechnung der Brüche df0/dt0,...,df_n-1/dt_n-1
dfdt =
1 7 19
Berechnung der Betas b_1,...,b_n-1
b =
1 1
Berechnung der Alphas a_1,...,a_n-1 (vorläufig)
a =
4 4
Berechnung der Gammas c_1,...c_n-1
c =
1 1
Berechnung der rs r_1,...,r_n-1 (vorläufig)
r =
24 78
------------------------------------------------------------------------------
Bitte wählen: 0 - natürlicher Spline
1 - vollst. Spline
Deine Wahl: 1
Bitte s_0 eingeben: 0
Bitte s_n eingeben: 27
------------------------------------------------------------------------------
Berechnung der Alphas a_1,...,a_n-1 (vollst. Spline)
a =
4 4
Berechnung der rs r_1,...,r_n-1 (vollst. Spline)
r =
24 51
Aufstellen der Matrix M
M =
4 1
1 4
Berechnung der Lösung s von Ms=r: s_1,...,s_n-1
3 12
Der komplette Vektor s:
s =
0 3 12 27
Matrix der Restriktionen in Newton-Darstellung
RN =
0 0 1 1
1 3 4 1
8 12 7 1
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
0 0 -4.4409e-016 1
2.6645e-015 -7.1054e-015 6.6613e-015 1
1.0658e-014 -7.1054e-015 1.7764e-015 1
|
|
Nun wird die Funktion reproduziert, es gilt . (Wer es nicht glaubt, möge es von Hand nachrechnen.
)
vollständiger kubischer Spline
Werden auch Polynome von Grad 4 reproduziert?
Nein, denn der es stehen nur kubische Polynome zur Verfügung. |
27.03.2007, 01:58 |
tigerbine |
Auf diesen Beitrag antworten » |
4. Lokal kubischer Spline
Wieder dieselben Splineknoten, Funktionswerte und Deltas
Den Vektor s braucht man hier nicht über ein LGS zu berechnen, sondern das sind hier die Werte der ersten Ableitung der Funktion in den Splineknoten:
Damit erhält man die Restriktionen:
|
09.09.2007, 07:28 |
tigerbine |
Auf diesen Beitrag antworten » |
Splinewettkampf
Nun sollen die in (1)-(3) vorgestellten Splines miteinander verglichen werden. Dazu wählen wir die Funktion
|
Anzeige | |
|
11.09.2007, 03:27 |
tigerbine |
Auf diesen Beitrag antworten » |
1. Linearer Spline
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
|
Es wird ein linearer Spline berechnet.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0.05,0.06,0.075,0.09,0.13,0.21,0.4]
Funktionswerte eingeben: [0.0456,-0.0491,0.0520,-0.0894,0.1283,-0.2097,0.2394]
n =
6
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
0.01 0.015 0.015 0.04 0.08 0.19
Berechnung der Deltas df_0,...,df_n-1
df =
-0.0947 0.1011 -0.1414 0.2177 -0.338 0.4491
Matrix der Restriktionen in Newton-Darstellung
RN =
0.0456 -9.47
-0.0491 6.74
0.052 -9.4267
-0.0894 5.4425
0.1283 -4.225
-0.2097 2.3637
Matrix der Restriktionen in Monom-Darstellung: 1,x
RM =
0.5191 -9.47
-0.4535 6.74
0.759 -9.4267
-0.57922 5.4425
0.67755 -4.225
-0.70607 2.3637
Vergleichsfunktion eingeben? (0=ja, 1=nein) 0
Funktion eingeben. Variable vt verwenden, Beispiel: vt.^2: vt.*sin(1./vt) |
|
|
11.09.2007, 03:28 |
tigerbine |
Auf diesen Beitrag antworten » |
2. Quadratischer Spline
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
|
Es wird ein quadratischer Spline berechnet.
Beachte: Der Datensatz hat die Form
Spline-Knoten: t_0,...,t_n
Spline-Werte: u_0,...,u_n
IP-Stellen: r_1 ,..., r_n
IP-Funktionswerte: f(r_1),...,f(r_n)
Spline-Knoten eingeben : t=[0.025,0.055,0.0675,0.0825,0.11,0.17,0.305,0.45]
u_0 eingeben: u_0=0.0186
u_n eingeben: u_n=0.3578
IP-Stellen eingeben: r=[0.05,0.06,0.075,0.09,0.13,0.21,0.4]
IP-Funktionswerte eingeben: f=[0.0456,-0.0491,0.0520,-0.0894,0.1283,-0.2097,0.2394]
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
0.03 0.0125 0.015 0.0275 0.06 0.135 0.145
Berechnung der Deltas a_1,...,a_n
a =
0.005 0.0075 0.0075 0.02 0.04 0.095 0.05
Berechnung der Deltas b_0,...,b_n
b =
0.025 0.005 0.0075 0.0075 0.02 0.04 0.095
Berechnung der beta_0,...,beta_n-2
beta =
6.6667 120 66.667 96.97 33.333 17.593
Berechnung der alpha_1,...,alpha_n-1
alpha =
513.33 413.33 369.7 153.03 74.074 35.357
Berechnung der gamma_1,...,gamma_n-1
gamma =
53.333 66.667 13.636 8.3333 3.1189 13.103
Berechnung der y_1,...,y_n-1
y =
-5.5467 -2.5 -2.5233 -6.7675 2.1726 -4.8303
Aufstellen der Matrix M
M =
513.33 53.333 0 0 0 0
120 413.33 66.667 0 0 0
0 66.667 369.7 13.636 0 0
0 0 96.97 153.03 8.3333 0
0 0 0 33.333 74.074 3.1189
0 0 0 0 17.593 35.357
Berechnung der Lösung u von Mu=y: u_1,...,u_n-1
-0.010576 -0.0022043 -0.004796 -0.044243 0.056169 -0.16456
Der komplette Vektor u:
u =
0.0186 -0.010576 -0.0022043 -0.004796 -0.044243 0.056169 -0.16456 0.3578
Matrix der Restriktionen in Newton-Darstellung
RN =
0.0186 1.08 -410.51
-0.010576 -7.7048 1116.6
-0.0022043 7.2272 -986.67
-0.004796 -11.281 492.31
-0.044243 8.6271 -173.84
0.056169 -6.6467 52.754
-0.16456 4.2523 -12.995
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²
RM =
-0.52153 31.868 -410.51
4.098 -136.11 1116.6
-5.4851 147.83 -986.67
4.5812 -96.203 492.31
-3.4791 50.349 -173.84
3.0694 -26.693 52.754
-3.0469 13.414 -12.995
Vergleichsfunktion eingeben? (0=ja, 1=nein) 0
Funktion eingeben. Variable vt verwenden, Beispiel: vt.^2: vt.*sin(1./vt) |
|
|
11.09.2007, 03:28 |
tigerbine |
Auf diesen Beitrag antworten » |
3. Kubischer Spline
natürlicher kub. Spline
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0.05,0.06,0.075,0.09,0.13,0.21,0.4]
Funktionswerte eingeben: [0.0456,-0.0491,0.0520,-0.0894,0.1283,-0.2097,0.2394]
n =
6
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
0.01 0.015 0.015 0.04 0.08 0.19
Berechnung der Deltas df_0,...,df_n-1
df =
-0.0947 0.1011 -0.1414 0.2177 -0.338 0.4491
Berechnung der Brüche df0/dt0,...,df_n-1/dt_n-1
dfdt =
-9.47 6.74 -9.4267 5.4425 -4.225 2.3637
Berechnung der Betas b_1,...,b_n-1
b =
0.015 0.015 0.04 0.08 0.19
Berechnung der Alphas a_1,...,a_n-1 (vorläufig)
a =
0.05 0.06 0.11 0.24 0.54
Berechnung der Gammas c_1,...c_n-1
c =
0.01 0.015 0.015 0.04 0.08
Berechnung der rs r_1,...,r_n-1 (vorläufig)
r =
-0.22395 -0.1209 -0.88629 0.7992 -1.841
------------------------------------------------------------------------------
Bitte wählen: 0 - natürlicher Spline
1 - vollst. Spline
Deine Wahl: 0
------------------------------------------------------------------------------
Berechnung der Alphas a_1,...,a_n-1 (nat. Spline)
a =
0.0425 0.06 0.11 0.24 0.5
Berechnung der rs r_1,...,r_n-1 (nat. Spline)
r =
-0.010875 -0.1209 -0.88629 0.7992 -2.1246
Aufstellen der Matrix M
M =
0.0425 0.01 0 0 0
0.015 0.06 0.015 0 0
0 0.04 0.11 0.015 0
0 0 0.08 0.24 0.04
0 0 0 0.19 0.5
Berechnung der Lösung s von Ms=r: s_1,...,s_n-1
-0.34505 0.37897 -9.2308 7.5962 -7.1358
Der komplette Vektor s:
s =
-14.032 -0.34505 0.37897 -9.2308 7.5962 -7.1358 7.1134
Matrix der Restriktionen in Newton-Darstellung
RN =
0.0456 -14.032 456.25 45625
-0.0491 -0.34505 472.34 -59760
0.052 0.37897 -653.71 44451
-0.0894 -9.2308 366.83 -7824.7
0.1283 7.5962 -147.77 1392.3
-0.2097 -7.1358 49.997 -131.57
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
-4.9559 328.15 -6843.7 45625
17.807 -810.01 12126 -59760
-26.157 948.56 -11322 44451
11.952 -321.74 2792.5 -7824.7
-8.2976 145.56 -802.13 1392.3
5.8146 -56.041 157.89 -131.57
Vergleichsfunktion eingeben? (0=ja, 1=nein) 0
Funktion eingeben. Variable vt verwenden, Beispiel: vt.^2: vt.*sin(1./vt)
|
|
vollständiger kub. Spline
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0.05,0.06,0.075,0.09,0.13,0.21,0.4]
Funktionswerte eingeben: [0.0456,-0.0491,0.0520,-0.0894,0.1283,-0.2097,0.2394]
n =
6
------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1
dt =
0.01 0.015 0.015 0.04 0.08 0.19
Berechnung der Deltas df_0,...,df_n-1
df =
-0.0947 0.1011 -0.1414 0.2177 -0.338 0.4491
Berechnung der Brüche df0/dt0,...,df_n-1/dt_n-1
dfdt =
-9.47 6.74 -9.4267 5.4425 -4.225 2.3637
Berechnung der Betas b_1,...,b_n-1
b =
0.015 0.015 0.04 0.08 0.19
Berechnung der Alphas a_1,...,a_n-1 (vorläufig)
a =
0.05 0.06 0.11 0.24 0.54
Berechnung der Gammas c_1,...c_n-1
c =
0.01 0.015 0.015 0.04 0.08
Berechnung der rs r_1,...,r_n-1 (vorläufig)
r =
-0.22395 -0.1209 -0.88629 0.7992 -1.841
------------------------------------------------------------------------------
Bitte wählen: 0 - natürlicher Spline
1 - vollst. Spline
Deine Wahl: 1
Bitte s_0 eingeben: -7.2487
Bitte s_n eingeben: 2.6013
------------------------------------------------------------------------------
Berechnung der Alphas a_1,...,a_n-1 (vollst. Spline)
a =
0.05 0.06 0.11 0.24 0.54
Berechnung der rs r_1,...,r_n-1 (vollst. Spline)
r =
-0.11522 -0.1209 -0.88629 0.7992 -2.0491
Aufstellen der Matrix M
M =
0.05 0.01 0 0 0
0.015 0.06 0.015 0 0
0 0.04 0.11 0.015 0
0 0 0.08 0.24 0.04
0 0 0 0.19 0.54
Berechnung der Lösung s von Ms=r: s_1,...,s_n-1
-2.4983 0.96944 -9.4395 7.5518 -6.4517
Der komplette Vektor s:
s =
-7.2487 -2.4983 0.96944 -9.4395 7.5518 -6.4517 2.6013
Matrix der Restriktionen in Newton-Darstellung
RN =
0.0456 -7.2487 -222.13 91930
-0.0491 -2.4983 615.89 -66706
0.052 0.96944 -693.07 46148
-0.0894 -9.4395 372.05 -7982.9
0.1283 7.5518 -147.21 1492.2
-0.2097 -6.4517 46.397 -237.61
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
-13.937 796.37 -14931 91930
20.329 -916.9 13624 -66706
-27.282 987.51 -11769 46148
12.18 -327.87 2846.8 -7982.9
-8.6371 152.52 -848.54 1492.2
7.3827 -76.335 241.24 -237.61
Vergleichsfunktion eingeben? (0=ja, 1=nein) 0
Funktion eingeben. Variable vt verwenden, Beispiel: vt.^2: vt.*sin(1./vt)
|
|
|
15.10.2008, 12:57 |
tigerbine |
Auf diesen Beitrag antworten » |
Splinewettkampf in neuem Gewand
Erneut betrachten wir die Funktion
Wir wollen nun überprüfen, ob wir mittels Rechnung mit Basissplines zu den gleichen Ergebnisse kommen und worin die Vorteile dieser Rechenweise liegen. Die B-Spline Basis kann man sich zum Beispiel mit maple ausgeben lassen. Dazu verwendet man zum Beispiel für einen linearen Basisspline durch die Knoten -1,0, wobei -1 ein Doppelknoten ist, den folgenden Code:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
>readlib(spline): readlib(bspline):
>
>bspline(1,t,[-1,-1,0]
{ 0 t < -1
{
{ -t t < 0
{
{ 0 0 <= t
|
|
Die Gestalt der interpolierenden Splines des "Spline-Wettkampfs" soll hier nur in Form von Linearkombinationen der Basis-Splines angegeben werden. Wer es genauer Wissen möchte, kann sich ja wie gezeigt die Basis-Splines ausgeben lassen.
|
02.11.2008, 19:03 |
tigerbine |
Auf diesen Beitrag antworten » |
Lin. /quad / kub. interpolierender B-Spline
- linearer B-Spline
[attach]9041[/attach]
code: |
1:
|
S(t)= + (0.0456473) * B_0(t)+ (-0.0491068) * B_1(t)+ (0.0520464) * B_2(t)+ (-0.0894) * B_3(t)+ (0.128305) * B_4(t)+ (-0.209743) * B_5(t)+ (0.239389) * B_6(t) |
|
- quadratischer B-Spline
[attach]9042[/attach]
code: |
1:
|
S(t)= + (0.0186278) * B_0(t)+ (0.188868) * B_1(t)+ (-0.0936553) * B_2(t)+ (0.107566) * B_3(t)+ (-0.210676) * B_4(t)+ (0.318015) * B_5(t)+ (-0.518107) * B_6(t)+ (-0.00504517) * B_7(t)+ (0.637997) * B_8(t) |
|
- natürlicher kubischer B-Spline
[attach]9043[/attach]
code: |
1:
|
S(t)= + (0.0456473) * B_0(t)+ (-0.0011535) * B_1(t)+ (-0.118155) * B_2(t)+ (0.151123) * B_3(t)+ (-0.302357) * B_4(t)+ (0.506073) * B_5(t)+ (-0.851462) * B_6(t)+ (-0.21118) * B_7(t)+ (0.239389) * B_8(t) |
|
- vollständiger kubischer B-Spline
[attach]9044[/attach]
code: |
1:
|
S(t)= + (0.0456473) * B_0(t)+ (0.0323139) * B_1(t)+ (-0.141793) * B_2(t)+ (0.158283) * B_3(t)+ (-0.308127) * B_4(t)+ (0.513388) * B_5(t)+ (-0.894028) * B_6(t)+ (-0.0139445) * B_7(t)+ (0.239389) * B_8(t) |
|
|
02.11.2008, 19:08 |
tigerbine |
Auf diesen Beitrag antworten » |
Linearer B-Spline
Wir wollen die vorherigen Aussagen erneut visualisieren. Mit einem linearen B-Spline können wir also kein quadratisches oder kubisches Polynom reproduzieren. Wir betrachten das Intervall (mit den Knoten) [-1,0,1]. Dann haben die Basisvektoren (mit Mehrfachknoten am Rand) die Gestalt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
|
B_0=
{ 0 t < -1
{
{ -t t < 0
{
{ 0 0 <= t
B_1=
{ 0 t < -1
{
{ t + 1 t < 0
{
{ -t + 1 t < 1
{
{ 0 1 <= t
B_2=
{ 0 t < 0
{
{ t t < 1
{
{ 0 1 <= t
|
|
Lineares Polynom
[attach]9047[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (0) * B_1(t)+ (1) * B_2(t) |
|
Quadratisches Polynom
[attach]9045[/attach]
code: |
1:
|
S(t)= + (1) * B_0(t)+ (0) * B_1(t)+ (1) * B_2(t) |
|
Kubisches Polynom
[attach]9046[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (0) * B_1(t)+ (1) * B_2(t) |
|
|
02.11.2008, 19:16 |
tigerbine |
Auf diesen Beitrag antworten » |
quadratischer B-Spline
Mit einem quadratischen B-Spline können wir kein kubisches Polynom reproduzieren. Wir betrachten das Intervall (mit den Knoten) [-1,0,1] und den IP-Stellen [-1,-0.5,0.5,1]. Dann haben die Basisvektoren (mit Mehrfachknoten) auf dem Gitter [-1,-1,-1,0,1,1,1] die Gestalt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
|
B_0=
{ 0 t < -1
{
{ 2
{ (t + 1) - 2 t - 1 t < 0
{
{ 0 0 <= t
B_1=
{ 0 t < -1
{
{ 2
{ - 3/2 (t + 1) + 2 t + 2 t < 0
{
{ 2
{ 1/2 - t + 1/2 t t < 1
{
{ 0 1 <= t
B_2=
{ 0 t < -1
{
{ 2
{ 1/2 (t + 1) t < 0
{
{ 2
{ 1/2 + t - 3/2 t t < 1
{
{ 0 1 <= t
B_3=
{ 0 t < 0
{
{ 2
{ t t < 1
{
{ 0 1 <= t
|
|
lineares Polynom
[attach]9048[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (-0.5) * B_1(t)+ (0.5) * B_2(t)+ (1) * B_3(t) |
|
quadratisches Polynom
[attach]9049[/attach]
code: |
1:
|
S(t)= + (1) * B_0(t)+ (0) * B_1(t)+ (0) * B_2(t)+ (1) * B_3(t) |
|
kubisches Polynom
[attach]9050[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (0.25) * B_1(t)+ (-0.25) * B_2(t)+ (1) * B_3(t) |
|
|
02.11.2008, 19:21 |
tigerbine |
Auf diesen Beitrag antworten » |
kubischer B-Spline
Mit einem kubischen B-Spline können wir nun auch ein kubisches Polynom reproduzieren. Wie zu erwarten, kann ein Polynom vom Grad 4 nicht reproduziert werden. Wählen wir sogar den natürlichen B-Spline, so können wir noch nicht einmal ein quadratisches Polynom reproduzieren. Wir betrachten das Intervall mit den Knoten (Mehrfachknoten am Rand). Dann haben die Basissplines die folgende Gestalt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
|
B_0=
{ 0 t < -1
{
{ 3 2
{ -(t + 1) + 3 (t + 1) - 3 t - 2 t < 0
{
{ 0 0 <= t
B_1=
{ 0 t < -1
{
{ 3 2
{ 7/4 (t + 1) - 9/2 (t + 1) + 3 t + 3 t < 0
{
{ 2 3
{ 1/4 - 3/4 t + 3/4 t - 1/4 t t < 1
{
{ 0 1 <= t
B_2=
{ 0 t < -1
{
{ 3 2
{ -(t + 1) + 3/2 (t + 1) t < 0
{
{ 2 3
{ 1/2 - 3/2 t + t t < 1
{
{ 0 1 <= t
B_3=
{ 0 t < -1
{
{ 3
{ 1/4 (t + 1) t < 0
{
{ 2 3
{ 1/4 + 3/4 t + 3/4 t - 7/4 t t < 1
{
{ 0 1 <= t
B_4=
{ 0 t < 0
{
{ 3
{ t t < 1
{
{ 0 1 <= t
|
|
- Vollständiger kubischer B-Spline
lineares Polynom
[attach]9051[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (-0.666667) * B_1(t)+ (0) * B_2(t)+ (0.666667) * B_3(t)+ (1) * B_4(t) |
|
quadratisches Polynom
[attach]9052[/attach]
code: |
1:
|
S(t)= + (1) * B_0(t)+ (0.333333) * B_1(t)+ (-0.333333) * B_2(t)+ (0.333333) * B_3(t)+ (1) * B_4(t) |
|
kubisches Polynom
[attach]9053[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (0) * B_1(t)+ (0) * B_2(t)+ (0) * B_3(t)+ (1) * B_4(t) |
|
Polynom vierten Grades
[attach]9054[/attach]
code: |
1:
|
S(t)= + (1) * B_0(t)+ (-0.333333) * B_1(t)+ (0.333333) * B_2(t)+ (-0.333333) * B_3(t)+ (1) * B_4(t) |
|
- natürlicher kubischer B-Spline
lineares Polynom
[attach]9055[/attach]
code: |
1:
|
S(t)= + (-1) * B_0(t)+ (-0.5) * B_1(t)+ (0.5) * B_2(t)+ (1) * B_3(t) |
|
quadratisches Polynom
[attach]9056[/attach]
code: |
1:
|
+ (1) * B_0(t)+ (0) * B_1(t)+ (0) * B_2(t)+ (1) * B_3(t) |
|
kubisches Polynom
[attach]9058[/attach]
code: |
1:
|
+ (-1) * B_0(t)+ (0.25) * B_1(t)+ (-0.25) * B_2(t)+ (1) * B_3(t) |
|
Polynom vierten Grades
[attach]9059[/attach]
code: |
1:
|
S(t)= + (1) * B_0(t)+ (-0.25) * B_1(t)+ (-0.25) * B_2(t)+ (1) * B_3(t) |
|
|
03.11.2008, 23:54 |
tigerbine |
Auf diesen Beitrag antworten » |
Interpolierende Funktion
Zunächst soll ein natürlicher kubischer Spline durch eine Menge von Punkten gelegt werden. Daber werden diese aufsteigend nach der x-Koordinate sortiert.
[attach]9071[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0.2,0.8,0.95,1.01,1.21,1.57,1.6,2.14,2.7,3.1,3.21,3.5,3.54,3.74,4.05]
Funktionswerte eingeben: [0.7,0.3,1.11,1.67,2.01,0.6,0.93,3.17,2.54,0.98,2.26,0.45,1.87,0.31,0.76]
n =
14
------------------------------------------------------------------------------
Matrix der Restriktionen in Newton-Darstellung
RN =
1.0e+003 *
0.0007 -0.0025 0.0030 0.0051
0.0003 0.0030 0.0160 0.0460
0.0011 0.0088 0.0082 -0.3606
0.0017 0.0085 -0.0341 0.0046
0.0020 -0.0049 0.0028 0.0976
0.0006 0.0098 0.0416 -1.0515
0.0009 0.0113 -0.0132 0.0154
0.0032 0.0015 -0.0046 -0.0143
0.0025 -0.0082 0.0107 0.0784
0.0010 0.0129 -0.0118 -0.7749
0.0023 0.0010 -0.0248 0.5429
0.0004 0.0322 0.0822 -5.1950
0.0019 0.0305 -0.1914 0.7099
0.0003 -0.0177 0.0617 -0.0995
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
1.0e+005 *
0.0000 -0.0000 -0.0000 0.0001
-0.0002 0.0008 -0.0010 0.0005
0.0033 -0.0102 0.0106 -0.0036
-0.0005 0.0009 -0.0005 0.0000
-0.0021 0.0050 -0.0039 0.0010
0.0423 -0.0800 0.0503 -0.0105
-0.0014 0.0020 -0.0010 0.0002
0.0016 -0.0021 0.0009 -0.0001
-0.0167 0.0182 -0.0066 0.0008
0.2375 -0.2278 0.0728 -0.0077
-0.1984 0.1795 -0.0541 0.0054
2.2617 -1.9291 0.5484 -0.0519
-0.3578 0.2908 -0.0787 0.0071
0.0657 -0.0489 0.0121 -0.0010
|
|
code: |
1:
2:
|
S(t)= + (0.7) * B_0(t)+ (0.200681) * B_1(t)+ (-0.423467) * B_2(t)+ (0.755254) * B_3(t)+ (2.20821) * B_4(t)+ (2.52114) * B_5(t)+ (-0.736029) * B_6(t)+ (2.96734) * B_7(t)+ (2.84296) * B_8(t)+ (4.51593) * B_9(t)+ (-1.34738) * B_10(t)+ (4.25591) * B_11(t)+ (-3.35568) * B_12(t)+ (4.38443) * B_13(t)+ (-2.25156) * B_14(t)+ (-0.378515) * B_15(t)+ (0.76) * B_16(t) |
|
|
04.11.2008, 00:30 |
tigerbine |
Auf diesen Beitrag antworten » |
2. Interpolierende Kurve 1
Schaut man die Punkte in obigem Bild an, so könnte man auch deren Reihenfolge ändern, mit dem Ziel einen Weg durch diese zu legen. Dann müssen wir die Splinepunkte allerdings anders vergeben.
Man könnte mit die Paare sowie bilden. Das würde die folgenden Splines liefern:
- x-Koordinate (in Abhängigkeit von t)
[attach]9072[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Funktionswerte eingeben: [0.2,0.8,1.57,1.6,0.95,1.01,1.21,2.14,2.7,3.21,3.54,3.1,3.5,3.74,4.05]
n =
14
------------------------------------------------------------------------------
Matrix der Restriktionen in Newton-Darstellung
RN =
0.2000 0.5182 0.0818 0.0818
0.8000 0.7637 0.0063 -0.2391
1.5700 0.5372 -0.5072 -0.0353
1.6000 -0.5125 -0.1375 0.4402
0.9500 -0.3473 0.4073 -0.3356
1.0100 0.1317 0.0683 0.3323
1.2100 0.6006 0.3294 -0.4036
2.1400 0.8557 -0.2957 0.1821
2.7000 0.4464 0.0636 -0.0048
3.2100 0.5688 -0.2388 -0.2928
3.5400 -0.2016 -0.2384 0.5861
3.1000 -0.0922 0.4922 -0.4416
3.5000 0.4506 -0.2106 0.1804
3.7400 0.2098 0.1002 -0.0501
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
0.2000 0.5182 -0.0000 0.0818
0.5210 -0.4447 0.9629 -0.2391
-1.1100 2.0017 -0.2603 -0.0353
-13.9484 14.8401 -4.5398 0.4402
35.7066 -22.4012 4.7705 -0.3356
-47.7863 27.6946 -5.2486 0.3323
111.1710 -51.7841 7.9978 -0.4036
-89.7275 34.3153 -4.3021 0.1821
5.9790 -1.5746 0.1842 -0.0048
215.9331 -71.5593 7.9602 -0.2928
-663.0055 192.1222 -18.4079 0.5861
704.9317 -180.9515 15.5079 -0.4416
-370.0002 87.7814 -6.8865 0.1804
136.4451 -29.0906 2.1036 -0.0501
|
|
- y-Koordinate (in Abhängigkeit von t)
[attach]9073[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Funktionswerte eingeben: [0.7,0.3,0.6,0.93,1.11,1.67,2.01,3.17,2.54,2.26,1.87,0.98,0.45,0.31,0.76]
n =
14
------------------------------------------------------------------------------
Matrix der Restriktionen in Newton-Darstellung
RN =
0.7000 -0.5798 0.1798 0.1798
0.3000 -0.0405 0.3405 -0.1989
0.6000 0.4416 -0.1116 -0.0543
0.9300 0.1641 0.0159 0.2362
1.1100 0.4321 0.1279 -0.3604
1.6700 0.3275 0.0125 0.6053
2.0100 0.9578 0.2022 -1.0208
3.1700 0.3414 -0.9714 0.8680
2.5400 -0.7335 0.4535 -0.3110
2.2600 -0.1375 -0.2525 -0.0839
1.8700 -0.7264 -0.1636 0.2568
0.9800 -0.7968 0.2668 -0.0831
0.4500 -0.3462 0.2062 0.1055
0.3100 0.1718 0.2782 -0.1391
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
0.7000 -0.5798 0.0000 0.1798
1.0786 -1.7157 1.1359 -0.1989
-0.0776 0.0187 0.2687 -0.0543
-7.9212 7.8623 -2.3458 0.2362
30.2574 -20.7717 4.8127 -0.3604
-90.4503 51.6530 -9.6723 0.6053
260.7888 -123.9666 19.5977 -1.0208
-387.0580 153.6820 -20.0664 0.8680
216.5686 -72.6780 8.2286 -0.3110
51.0368 -17.5007 2.0978 -0.0839
-289.6534 84.7064 -8.1229 0.2568
162.6573 -38.6511 3.0914 -0.0831
-163.2793 42.8331 -3.6990 0.1055
374.2281 -81.2071 5.8426 -0.1391
|
|
|
04.11.2008, 00:37 |
tigerbine |
Auf diesen Beitrag antworten » |
3. Interpolierende Kurve 2
Trägt man die über t berechneten x und y-Werte gegeneinander auf, so erhalten wir dieses Bild:
[attach]9074[/attach]
Wie man eine noch glattere kurve durch die Punkte legen kann, steht im angehängten PDF-file |
04.11.2008, 00:59 |
tigerbine |
Auf diesen Beitrag antworten » |
1. Änderungen des Datensatzes
wir haben nun Splines als Stückweise polynomiale Funktionen kennengelernt. Nun soll einmal die Frage motiviert werden, wie ändert sich der interpolierende Spline, wenn man einen Datenpunkt ändert? Wir sehen, das sich zwar der komplette Spline ändert, je weiter wir uns aber von dem geänderten Datenpunkt entfernen, umso kleiner wird die Veränderung.
[attach]9077[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3,4,5,6,7,8,9]
Funktionswerte eingeben: [1,5,3,7,9,0,2,8,4,6]
n =
9
------------------------------------------------------------------------------
Matrix der Restriktionen in Newton-Darstellung
RN =
1.0000 6.0077 -2.0077 -2.0077
5.0000 -0.0153 -1.9847 4.0384
3.0000 0.0537 3.9463 -2.1457
7.0000 5.8006 -3.8006 -3.4554
9.0000 -5.2560 -3.7440 6.9673
0 -5.7767 7.7767 -2.4139
2.0000 7.3628 -1.3628 -4.3118
8.0000 0.3254 -4.3254 5.6610
4.0000 -2.6644 4.6644 -2.3322
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
1.0e+003 *
0.0010 0.0060 0.0000 -0.0020
-0.0050 0.0241 -0.0181 0.0040
0.0444 -0.0501 0.0190 -0.0021
0.0798 -0.0854 0.0308 -0.0035
-0.5873 0.4149 -0.0943 0.0070
0.5854 -0.2887 0.0464 -0.0024
0.9953 -0.4937 0.0806 -0.0043
-2.4253 0.9723 -0.1289 0.0057
1.6672 -0.5624 0.0630 -0.0023 |
|
[attach]9079[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
|
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
Beachte: Der Datensatz hat die Form
Knoten: t_0 ,..., t_n
Funktionswerte: f(t_0),...,f(t_n)
Knotenpunkte eingeben: [0,1,2,3,4,5,6,7,8,9]
Funktionswerte eingeben: [1,5,3,-1,9,0,2,8,4,6]
n =
9
------------------------------------------------------------------------------
Matrix der Restriktionen in Newton-Darstellung
RN =
1.0000 5.0843 -1.0843 -1.0843
5.0000 1.8315 -3.8315 -0.5787
3.0000 -6.4102 2.4102 7.3992
-1.0000 5.8094 4.1906 -13.0181
9.0000 1.1725 -10.1725 11.6732
0 -7.4992 9.4992 -3.6747
2.0000 7.8245 -1.8245 -3.9744
8.0000 0.2011 -4.2011 5.5722
4.0000 -2.6289 4.6289 -2.3144
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
1.0e+003 *
0.0010 0.0051 0.0000 -0.0011
0.0005 0.0066 -0.0015 -0.0006
-0.0633 0.1023 -0.0494 0.0074
0.4879 -0.4489 0.1344 -0.0130
-1.0923 0.7363 -0.1619 0.0117
0.8262 -0.4148 0.0683 -0.0037
0.8909 -0.4472 0.0737 -0.0040
-2.3836 0.9561 -0.1268 0.0056
1.6544 -0.5581 0.0625 -0.0023 |
|
Schauen wir uns auch noch einmal das Beispiel mit der gestörten Nullfunktion an. Im [WS] Polynominterpolation - Theorie weicht man, gerade an den Rändern des Itervalls [a,b] mit steigendem Polynomgrad immer mehr von der Funktion ab. Dies sieht mit einem kubischen Spline schon deutlich besser aus.
[attach]9081[/attach] |
04.11.2008, 01:06 |
tigerbine |
Auf diesen Beitrag antworten » |
2. Änderung eines Koeffizienten
Man erkennt, dass sich der Spline bei Änderung eines c-Wertes nur auf dem Träger des zugehörigen B-Spline verändert.
[attach]9090[/attach]
code: |
1:
|
S(t)= + (3) * B_0(t)+ (5.01112) * B_1(t)+ (9.03335) * B_2(t)+ (2.86658) * B_3(t)+ (3.50031) * B_4(t)+ (13.1322) * B_5(t)+ (-2.02901) * B_6(t)+ (0.983848) * B_7(t)+ (10.0936) * B_8(t)+ (0.641703) * B_9(t)+ (11.3396) * B_10(t)+ (9.11319) * B_11(t)+ (8) * B_12(t) |
|
[attach]9086[/attach]
code: |
1:
|
S(t)= + (3) * B_0(t)+ (5.01112) * B_1(t)+ (9.03335) * B_2(t)+ (2.86658) * B_3(t)+ (3.50031) * B_4(t)+ (13.1322) * B_5(t)+ (2) * B_6(t)+ (0.983848) * B_7(t)+ (10.0936) * B_8(t)+ (0.641703) * B_9(t)+ (11.3396) * B_10(t)+ (9.11319) * B_11(t)+ (8) * B_12(t) |
|
Und das ganze noch einmal in der ersten Berechnungsvariante. Hier wurde ein s-Wert geändert.
[attach]9087[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
-221.0025 -146.4682 -30.5003 -2.0334
111.8055 103.1378 31.9012 3.1668
36.1920 27.5243 6.6967 0.3663
-11.7930 -44.4533 -29.2921 -5.6319
1.0000 -6.0742 9.0870 7.1612
1.0000 -6.0742 9.0870 -2.0129
3.0969 -12.3649 15.3777 -4.1098
-81.3965 114.3752 -47.9923 6.4519
246.6476 -213.6689 61.3557 -5.6979
-267.7489 172.1285 -35.0936 2.3396
|
|
[attach]9088[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³
RM =
-221.0025 -146.4682 -30.5003 -2.0334
111.8055 103.1378 31.9012 3.1668
36.1920 27.5243 6.6967 0.3663
79.2656 137.6640 84.5312 17.1328
1.0000 -6.0742 31.8517 29.9258
1.0000 -6.0742 9.0870 -2.0129
3.0969 -12.3649 15.3777 -4.1098
-81.3965 114.3752 -47.9923 6.4519
246.6476 -213.6689 61.3557 -5.6979
-267.7489 172.1285 -35.0936 2.3396
|
|
|
09.02.2016, 11:29 |
Steffen Bühler |
Auf diesen Beitrag antworten » |
Nun folgt ein kleines Beispiel für das Berechnen eines kubischen Splines.
Folgende zwei Kurven sollen verbunden werden:
Es handelt sich hier um zwei Normalparabeln. Die erste ist in Normallage. Die zweite ist nach unten geklappt, um 2 nach rechts und und um 1 nach oben verschoben. Hier die vollständigen Graphen:
Der Spline soll also die Punkte (1|1) mit Steigung 2 und (2|1) mit Steigung 0 verbinden. Somit muss sein Graph durch diese Punkte gehen und dort auch die richtige Steigung haben.
Ein kubischer Spline wird durch folgende Gleichung beschrieben:
Die Ableitung dieser Funktion ist
Also wird Punkt (1|1) mit Position und Steigung eingesetzt:
Und dasselbe für Punkt (2|1):
Somit haben wir vier Gleichungen für die vier Koeffizienten a, b, c und d.
Es ergibt sich
und damit die Funktion für den kubischen Spline:
Hier sieht man, wie schön diese Funktion die beiden Punkte verbindet:
Und hier noch einmal stückweise:
|
30.05.2017, 13:14 |
Steffen Bühler |
Auf diesen Beitrag antworten » |
Drei Punkte mit Splines verbinden
Das folgende Beispiel ist etwas komplizierter, auch wenn es zunächst recht simpel erscheint. Gegeben sind nun lediglich die drei Punkte , die durch zwei Splines verbunden werden sollen.
Gesucht sind also zwei kubische Funktionen sowie . Die erste soll und verbinden, die zweite dann und .
Somit muss durch und gehen:
Und muss durch und gehen:
Außerdem sollen Steigung und Krümmung der beiden Funktionen im Punkt identisch sein:
Nun haben wir sechs Gleichungen für die acht Unbekannten . Die letzten zwei bekommen wir, indem für die Krümmung in den Außenpunkten beliebige Werte gewählt werden. Hier werden beide Krümmungen auf Null gesetzt:
Mit diesen acht Gleichungen ergeben sich folgende Werte für die Koeffizienten:
Dies ergibt diese zwei Graphen:
Hier noch einmal stückweise:
Man erkennt den sprung-, knick- und ruckfreien Übergang bei sowie die verschwindende Krümmung an den Außenpunkten.
Prinzipiell funktioniert das Ganze dann natürlich auch mit beliebig vielen Punkten. |