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

Лаба 3

.DOC
Скачиваний:
39
Добавлен:
01.05.2014
Размер:
1.84 Mб
Скачать

Минестерство образования Российской Федерации

Санкт-Петербургский

Государственный Электротехнический Университет

«ЛЭТИ»

К лабораторная Работя №3

«Вычисление значения полинома».

Работу выполнил: Студент группы №0221 Голиков А.Н. Преподаватель: Коновалов Г.М.

Санкт-Петербург 2000

Вычисления значений полинома.

Цель работы: ознакомление с методами вычисления значений полинома и способами их оценки на примере полинома:

P(x)= -x7+7x6-21x5+35x4-35x3+21x2-7x+1 (Вар 13.)

Прямое” вычисление:

Протокол работы:

V=[-1,7,-21,35,-35,21,-7,1];

x0=1;

[y0,pogr0]=lab2kuz(V,x0)

y0 =

0

pogr0=

1.7764e-013

h=0.013;

x=x0-h:0.01.*h:x0+h;

[y,pogr]=lab2kuz(V,x);

plot(x,y1)

grid

gtext('"Прямое" Вычисление')

текст файла lab2kuz.m

function [y,e]=lab2kuz(V,x)

%Функция считает значение полинома

% P(x)= V1*X^N + V2*X^(N-1) + ... + V(N-1)*X + VN

%с некоторой погрешностью Е, допущенной машиной при вычислениях.

%Формат функции:

% [P,e]=lab2kuz2(V,x)

%, где P и e - возвращаемые функцией значения соответственно

%полинома и погрешности, с которой он расчитан, а входные параметры

%V и х вводятся пользователем (V - массив содержащий коэфициенты

%полинома, x - корень, при котором рассчитывать полином.)

%

%Смотр. также функции: POLYVAL; LAB2KUZ2

%Работу выполнил студент гр 0221 Голиков АН

y=0;

n=length(V);

e=abs(V(1)).*(n+1);

d=0;

for i=1:1:n

e=e+abs(d).*((2.*n)+2-i);

d=V(i).*(x.^(n-i));

y=y+d;

end

e=e.*0.5.*eps;

Практические погрешности, определенные по графику

|max|=1.75*10-14

X[0.990;1.009]

Вычисление функцией POLYVAL:

Протокол работы:

V=[-1,7,-21,35,-35,21,-7,1];

x0=1;

y=polyval(V,x0)

y =

0

h=0.011;

x=x0-h:0.01.*h:x0+h;

y=polyval(V,x);

plot(x,y)

текст файла polyval.m

можно прочитать в

дирриктории MatLab.

Практические погрешности,

определенные по графику

|max|=5*10-15

X[0.991;1.008]

Вычичление по схеме Горнера

Протокол работы:

V=[-1,7,-21,35,-35,21,-7,1];

x0=1;

[y0,pogr0]=lab2kuz2(V,x0)

y =

0

pogr0 =

2.1205e-014

h=0.011;

x=x-h:0.01*h:h+x;

[y,pogr]=lab2kuz2(V,x);

plot(x,y);

grid;

Текст файла lab2kuz2.m

function [b,e]=lab2kuz2(V,x)

%Функция считает значение полинома

% P(x)= V1*X^N + V2*X^(N-1) + ... + V(N-1)*X + VN

%с некоторой погрешностью Е, допущенной машиной при вычислениях.

%Формат функции:

% [P,e]=lab2kuz2(V,x)

%, где P и e - возвращаемые функцией значения соответственно

%полинома и погрешности, с которой он расчитан, а входные параметры

%V и х вводятся пользователем (V - массив содержащий коэфициенты

%полинома, x - корень, при котором рассчитывать полином.)

%

%Смотр. также функции: POLYVAL; LAB2KUZ

%Работу выполнил студент гр 0221 Голиков АН

n=length(V);

d=eps./2;

b=V(1);

e=0;

for i=2:1:n;

tmp=b;

b=b.*x+V(i);

e=e.*abs(x)+(abs(b)+2*abs(tmp)).*d;

end

Практические погрешности, определенные по графику

|max|=5*10-15

X[0.992;1.008]

Вывод: на практике убедился, что ЭВМ при счете делает погрешности, а также

ознакомился с полиномами, их вычислением, оценкой погрешностей .

Соседние файлы в предмете Информатика