Постановка задачи и ее решение

Известна функция y(x), заданная таблицей значений:

x y(x)
x0 x1 x2 … xn y0 y1 y2 … yn

Требуется, используя значения функции yi, i=0, 1, 2, …, n в узлах интерполяции xi, вычислить значение y(x) для любого x из промежутка [x0 ; xn].

Для решения задачи строится интерполяционный полином Лагранжа:

имеющий в заданных узлах x0, x1, x2, …, xn те же значения, что и функция y(x),

т.е. такой, что

i=0, 1, 2, …, n;

x – значение аргумента, для которого требуется вычислить y(x);

значение полинома Ln(x) будет считаться искомым значением y(x).

Таким образом, решение задачи интерполирования сводится к программированию алгоритма вычисления значения полинома Ln(x).

Пример. Пусть функция y(x) задана таблицей значений

x y(x)
0,1 0,9950
0,3 0,9553
0,5 0,8776
0,7 0,7648
0,9 0,6216
1,1 0,4536
1,3 0,2675
1,5 0,0707
1,7 -0,1288
1,9 -0,3233

Требуется вычислить значение функции y(x) для x=0,2 и x=1,8.

Составим программу:

PROGRAM Lagrange;

USES crt;

CONST n=10;

VAR x,y:array[1..n] of real;

x0,p,s:real;

i,j:integer;

BEGIN

clrscr;

x[1]:=0.1; y[1]:=0.995;

x[2]:=0.3; y[2]:=0.9553;

x[3]:=0.5; y[3]:=0.8776;

x[4]:=0.7; y[4]:=0.7648;

x[5]:=0.9; y[5]:=0.6216;

x[6]:=1.1; y[6]:=0.4536;

x[7]:=1.3; y[7]:=0.2675;

x[8]:=1.5; y[8]:=0.0707;

x[9]:=1.7; y[9]:=-0.1288;

x[10]:=1.9; y[10]:=-0.3233;

writeln('введите значение x');

read(x0);

s:=0;

for i:=1 to n do begin p:=1; for j:=1 to n do if j<>i then

p:=p*(x0-x[j])/(x[i]-x[j]);

s:=s+y[i]*p;

end;

writeln('искомое значение функции: y(x) =',s:7:4)

END.

В данной программе: x0 – переменная вещественного типа, в которую записывается значение аргумента x; значение переменной s –значение полинома Ln(x) – искомое значение функции y(x).

Результат работы программы получим в виде:

искомое значение функции: y(x) = 0.9799 (для x=0,2)

искомое значение функции: y(x) =-0.2270 (для x=1,8)

Листинг программы с результатами расчетов представлен в приложении (см рис.П.3, рис.П.10, рис.П.14).

Варианты заданий

1) x y(x) 2) x y(x) 3) x y(x)
2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 0,9093 0,8085 0,6755 0,5155 0,3350 0,1411 -0,0584 -0,2555 -0,4425 -0,6119 6,3 6,5 6,7 6,9 7,1 7,3 7,5 7,7 7,9 8,1 0,0168 0,2151 0,4048 0,5784 0,7290 0,8504 0,9380 0,9882 0,9989 0,9699 0,1 0,3 0,5 0,7 0,9 1,1 1,3 1,5 1,7 1,9 0,9093 0,8085 0,6755 0,5155 0,3350 0,1411 -0,0584 -0,2555 -0,4425 -0,6119
x=2,1 x=3,7 x=6,4 x=7,6 x=0,17 x=1,89
     
  4) x   y(x)   5) x   y(x)   6) x   y(x)
  2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 -0,4161 -0,5885 -0,7374 -0,8596 -0,9422 -0,9900 -0,9668 -0,8968 -0,7910 -0,6709 0,72 0,92 1,12 1,32 1,52 1,72 1,92 2.12 2,32 2,52 0,4868 0,3985 0,3269 0,2671 0,2187 0,1791 0,1446 0,1200 0,0983 0,0805 0,45 0,50 0,55 0,60 0,65 0,70 0,75 0,80 0,85 0,90 0,4831 0,5463 0,6131 0,6841 0,7602 0,8423 0,9316 1,0296 1,1383 1,2602
x=2,1 x=3,7 x=0,75 x=2,41 x=0,48 x=0,87
     
     
7) x y(x) 8) x y(x) 9) x y(x)
0,49 0,54 0,59 0,64 0,69 0,74 0,79 0,84 0,89 0,94 0,5334 0,5994 0,6696 0,7445 0,8253 0,9131 1,0692 1,1156 1,2346 1,3692 0,47 0.52 0.57 0,62 0,67 0,72 0,77 0,82 0,87 0,92 0,5080 0,5726 0,6410 0,7139 0,7922 0,8770 0,9696 1,0717 1,1853 1,3133 0,50 0,55 0,60 0,65 0,70 0,75 0,80 0,85 0,90 0,95 0,5463 0,6131 0,6841 0,7602 0,8423 0,9316 1,0296 1,1383 1,2602 1,3984
x=0,5 x=0,93 x=0,48 x=0,9 x=0,49 x=0,92
     
10) x y(x) 11) x y(x) 12) x y(x)
0,48 0,53 0,58 0,63 0,68 0,73 0,78 0,83 0,88 0,93 0,5206 0,5859 0,6552 0,7291 0,8087 0,8949 0,9893 1,0934 1,2097 1,3409 0,53 0,58 0,63 0,68 0,73 0,78 0,83 0,88 0,93 0,98 0,5859 0,6552 0,7291 0,8087 0,8949 0,9893 1,0934 1,2097 1,3409 1,4909 0,71 0,81 0,91 1,01 1,11 1,21 1,31 1,41 1,51 1,61 2,0340 2,2479 2,4843 2,7456 3,0344 3,3535 3,7062 4,0960 4,5267 5,0028
x=0,5 x=0,9 x=0,56 x=0,95 x=0,75 x=1,6
     
13) x y(x) 14) x y(x) 15) x y(x)
0,75 0,85 0,95 1,05 1,15 1,25 1,35 1,45 1,55 1,65 2,1170 2,3396 2,5857 2,8577 3,1582 3,4903 3,8574 4,2631 4,7115 5,2070 0,73 0,83 0,93 1,03 1,13 1,23 1,33 1,43 1,53 1,63 2,0751 2,2933 2,5345 2,8011 3,0957 3,4212 3,7810 4,1787 4,6182 5,1039 0,7 0,9 1,1 1,3 1,5 1,7 1,9 2,1 2,3 2,5 0,4966 0,4066 0,3329 0,2725 0,2231 0,1827 0,1496 0,1224 0,1002 0,0821
x=0,8 x=1,62 x=0,77 x=1,59 x=0,8 x=2,45
     
     
     
     
     
     
           
16) x y(x) 17) x y(x) 18) x y(x)
0,74 0,84 0,94 1,04 1,14 1,24 1,34 1,44 1,54 1,64 2,0959 2,3164 2,5600 2,8292 3,1268 3,4556 3,8190 4,2207 4,6646 5,1552 0,55 0,65 0,75 0,85 0,95 1,05 1,15 1,25 1,35 1,45 0,5782 0,6968 0,8223 0,9561 1,0995 1,2539 1,4208 1,6019 1,7991 2,0143 1,7 1,8 1,9 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,8283 3,1075 3,4177 3,7622 4,1443 4,5679 5,0372 5,5569 6,1323 6,7690
x=0,79 x=1,55 x=0,57 x=1,31 x=1,81 x=2,56
     
     
     
19) x y(x) 20) x y(x) 21) x y(x)
1,73 1,83 1,93 2,03 2,13 2,23 2,33 2,43 2,53 2,63 2,9090 3,1979 3,5173 3,8727 4,2669 4,7037 5,1876 5,7235 6,3166 6,9729 1,71 1,81 1,91 2,01 2,11 2,21 2,31 2,41 2,51 2,61 2,8549 3,1371 3,4506 3,7987 4,1847 4,6127 5,0868 5,6119 6,1931 6,8363 1,74 1,84 1,94 2,04 2,14 2,24 2,34 2,44 2,54 2,64 2,9364 3,2277 3,5512 3,9103 4,3085 4,7499 5,2388 5,7801 6,3793 7,0423
x=1,76 x=2,5 x=1,74 x=2,6 x=1,77 x=2,55
           
           
           
22) x y(x) 23) x y(x) 24) x y(x)
1,72 1,82 1,92 2,02 2,12 2,22 2,32 2,42 2,52 2,62 2,8818 3,1669 3,4838 3,8355 4,2256 4,6580 5,1370 5,6674 6,2545 6,9043 1,75 1,85 1,95 2,05 2,15 2,25 2,35 2,45 2,55 2,65 2,9642 3,2585 3,5855 3,9483 4,3507 4,7966 5,2905 5,8373 6,4426 7,1123 1,35 1,45 1,55 1,65 1,75 1,85 1,95 2,05 2,15 2,25 2,4604 3,0486 3,7239 4,4921 5,3594 6,3316 7,4149 8,6151 9,9384 11,3906
x=1,73 x=2,6 x=1,77 x=2,53 x=1,4 x=2,23
25) x y(x)  
0,1 0,3 0,5 0,7 0,9 1,1 1,3 1,5 1,7 1,9 0,0998 0,2955 0,4794 0,6442 0,7843 0,8912 0,9636 0,9975 0,9917 0,9463  
x=0,2 x=1,55  
               

Задание 2

ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ

Цель работы: составить программу для вычисления определенного интеграла методом Симпсона.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: