.


:




:

































 

 

 

 


.




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. г

: , .





:


: 2017-03-12; !; : 382 |


:

:

, .
==> ...

1352 - | 1209 -


© 2015-2024 lektsii.org - -

: 0.015 .