5.
. -.
: , atLAB.
: atLAB , ( ).
.
. (1736-1813 ..) . (0, 0), (1, 1) :
(5.2)
³ . n . , , . n :
(5.3)
:
(5.4)
³ .
- . (spline) , . - , . - . - (. 5.1), . , , . , , - [ x0, xN ] [ x2k, x2k+2 ] . , .
- -. (CAD-).
, .
- Sk(x) :
, (5.5)
- :
(5.6)
hk = xk+1 - xk, mk = S(xk), uk = 6(dk dk-1), dk = (yk+1 yk)/hk.
N-1 N+1. . (. . 5.1).
5.1
.
dz (, ): S(x0), S(xn) | ||
( ) | m0 = 0, mN = 0 | |
S() | ||
S() | m0 = m1, mN = mN-1 | |
S() | m0 = S(x0), mN = S(xN) |
|
|
. , m0 :
2(h0 + h1)m1 + h1m2 = u1 h0m0 (5.7)
:
hN-2mN-2 + 2(hN-2 + hN-1)mN-1 = uN-1 hN-1mN. (5.8)
:
(5.9)
:
(5.10)
:
(5.11)
.
( ). . , ( , 3- ).
(1, 3) | (3, 7) | (6, 9) | (10, 8) | (14, 11) | dz | |
˳
:
function f = Lagrange(X,Y,t)
f = 0;
n = 5;
for i = 1:n
l=1;
for j = 1:n
if not (j==i)
l = l*(t-X(j))/(X(i)-X(j));
end
end
f = f+l*Y(i);
end
:
function PlotAll(X,Y,k)
step = (X(5)-X(1))/k;
H(1) = X(1);
S(1) = Spline(X,Y,H(1));
L(1) = Lagrange(X,Y,H(1));
for i = 2:k+1
H(i) = H(i-1)+step;
S(i) = Spline(X,Y,H(i));
L(i) = Lagrange(X,Y,H(i));
end
plot(H,S,'r',H,L,'b',X,Y,'black')
-:
function s=Spline(X,Y,x)
dx0 = (Y(2)-Y(1))/(X(2)-X(1));
dxn = (Y(5)-Y(4))/(X(5)-X(4));
for i = 1:4
H(i) = X(i+1)-X(i)
D(i) = (Y(i+1)-Y(i))/H(i)
if i~=1
U(i) = 6*(D(i)-D(i-1))
end
end
U(1) = (3/H(1))*(D(1)-dx0)
U(5) = (3/H(4))*(dxn-D(4))
A = zeros(5)
A(1,1) = H(1)+H(2)
A(1,2) = (H(1)+H(2))/2
for i = 2:4
A(i,i-1) = H(i-1)
A(i,i) = 2*(H(i-1)+H(i))
A(i,i+1) = H(i)
end
A(5,4) = (H(1)+H(2))/2
A(5,5) = H(1)+H(2)
M = U/A
for k = 1:4
if (x<=X(k+1))
break
end
end
w = x-X(k)
s0 = Y(k)
s1 = D(k)-H(k)*(2*M(k)+M(k+1))/6
s2 = M(k)/2
s3 = (M(k+1)-M(k))/(6*H(k))
s = ((s3*w+s2)*w+s1)*w+s0
.1 , . , . .2 .
.1.
.2. г
: , .
|
|