Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
23.11.2018
Размер:
107.6 Кб
Скачать

Титул

Задание

1. Построить интерполяционный многочлен методом неопределенных коэффициентов.

2. Построить график интерполяционной функции.

3. Найти приближенные значения функции при данных промежуточных значениях аргумента.

4. Найти приближенные значения функции при данных промежуточных значениях аргумента с помощью кубического сплайна и визуализируйте результаты сплайн-интерполяции.

7

x

y

1,340

4,2556

1,345

4,3532

1,350

4,4552

1,355

4,5618

1,360

4,6734

1,365

4,7903

1,370

4,9130

1,375

5,0419

1,380

5,1774

1,385

5,3201

1,390

5,4706

в точке x=1,3921

Решение

1. Создаем файл Pol.m, содержащий описание функции, возвращающей значения полинома .

function z=Pol(a,x1)

M1=length(a);

s=0;

for i=1:M1

s=s+a(i)*x1.^(M1-i);

end;

z=s;

Создаем файл Vandermond.m, содержащий описание функции, возвращающей значения элементов матрицы Вандермонда.

function z=Vandermond(x)

N=length(x);

z=ones(N,N);

for i=1:N

for j=1:N

z(i,j)=x(i).^(N-j);

end;

end;

Задаем значения экспериментальных данных.

>> x=[1.340;1.345;1.350;1.355;1.360;1.365;1.370;1.375;1.380;1.385;1.390]

x =

1.3400

1.3450

1.3500

1.3550

1.3600

1.3650

1.3700

1.3750

1.3800

1.3850

1.3900

>> y=[4.2556;4.3532;4.4552;4.5618;4.6734;4.7903;4.9130;5.0419;5.1774;5.3201;5.4706]

y =

4.2556

4.3532

4.4552

4.5618

4.6734

4.7903

4.9130

5.0419

5.1774

5.3201

5.4706

Вычисляем значения элементов матрицы Вандермонда.

>> M=Vandermond(x)

M =

18.6659 13.9297 10.3953 7.7577 5.7893 4.3204 3.2242 2.4061 1.7956 1.3400

19.3742 14.4046 10.7097 7.9626 5.9202 4.4016 3.2726 2.4331 1.8090 1.3450

20.1066 14.8937 11.0324 8.1722 6.0534 4.4840 3.3215 2.4604 1.8225 1.3500

20.8638 15.3976 11.3636 8.3864 6.1892 4.5677 3.3710 2.4878 1.8360 1.3550

21.6466 15.9166 11.7034 8.6054 6.3275 4.6526 3.4210 2.5155 1.8496 1.3600

22.4557 16.4511 12.0521 8.8293 6.4684 4.7387 3.4716 2.5433 1.8632 1.3650

23.2919 17.0014 12.4098 9.0582 6.6119 4.8262 3.5228 2.5714 1.8769 1.3700

24.1561 17.5681 12.7768 9.2922 6.7580 4.9149 3.5745 2.5996 1.8906 1.3750

25.0490 18.1515 13.1532 9.5313 6.9068 5.0049 3.6267 2.6281 1.9044 1.3800

25.9715 18.7520 13.5394 9.7757 7.0583 5.0962 3.6796 2.6567 1.9182 1.3850

26.9245 19.3702 13.9354 10.0254 7.2125 5.1889 3.7330 2.6856 1.9321 1.3900

Column 11

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

Вычисляем значения коэффициентов полинома.

>> a=M^-1*y

Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND =

2.020637e-019.

a =

1.0e+010 *

0.0482

-0.4002

1.2414

-1.3953

-1.0762

4.1044

-1.9139

-4.7780

7.7122

-4.5445

1.0020

Таким образом, полином имеет вид:

P10 = (0,0482*x10 – 0.4002*x9 + 1.2414*x8 – 1.3953*x7 – 1,0762*x6 + 4,1044*x5 – – 1,9139*x4 – 4,7780*x3 + 7,7122*x2 – 4,5445*x + 1,0020)*1010

2. Построим график

>> x1=1.335:0.001:1.395;

>> y1=Pol(a,x1);

>> plot(x1,y1)

3. Вычислить значение полинома в заданной промежуточной точке х=1,3921.

>> x1=1.3921;

>> y1=Pol(a,x1)

y1 =

49.7904

4. Найдем приближенное значение функции с помощью кубического сплайна:

>> xi=1.3921;

>> yi=spline(x,y,xi)

yi =

5.5363

Визуализируем результаты сплайн-интерполяции:

>> xi=1.335:0.001:1.395;

>> yi=spline(x,y,xi);

>> plot(xi,yi)

Соседние файлы в папке 7