МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Международная «Лига развития науки и образования» (Россия)
Международная ассоциация развития науки, образования и культуры России
(Италия)
Международный «ИНСТИТУТ УПРАВЛЕНИЯ»
(г. Архангельск)
КУРСОВАЯ РАБОТА
ПО ДИСЦИПЛИНЕ
«Информатика и программирование»
Тема : «Построение интерполяционного многочлена и вычисление по нему
значения функции для заданного аргумента»
Выполнил: студент экономического факультета, группы 12-И Воробьев А.А.
Проверил: Горяшин Ю.В.
Архангельск
2004
Аннотация
Цель курсовой: для функции заданной в таблице построить интерполяционный
многочлен и вычислить по нему значение функции для заданного значения
аргумента. Составить блок схему алгоритма и программу на одном из языков
высокого уровня (С++) для вычисления заданного интерполяционного
многочлена. В программе предусмотреть возможности ввода любого числа
значений функции для чего организовать хранение ее значении при помощи
линейного списка.
Содержание
Аннотация
Содержание
Глава №1
Глава №2
Заключение
Список литературы
Приложение
Программа
Введение.
Возможность постановки вычислительного эксперимента на ЭВМ приводит к
существенному ускорению процессов математизации науки и техники, к
постоянному расширению области приложения современных разделов
математики. Количественные методы внедряются практически во все сферы
человеческой деятельности, что приводит к расширению круга профессий,
для которых математическая грамотность становится необходимой. Однако,
развитие науки и техники, современная технология производства ставят
перед специалистами задачи, для которых либо не возможно, либо крайне
громоздко и сложно получение алгоритма классическими методами
математического анализа. Отсюда стремление использовать различные
численные методы, разрабатываемые вычислительной математикой и
позволяющие получить конечный числовой результат с приемлемой для
практических целей точностью.
Численный метод решения задачи – это определенная последовательность
операций над числами, т.е. вычислительный алгоритм, языком которого
являются числа и арифметические действия. Такая примитивность языка
позволяет реализовать численные методы на ЭВМ, что делает их мощными и
универсальными инструментами исследования. Численные методы используются
в тех случаях, когда не удается найти точное решение возникающей
математической задачи. Это происходит главным образом, потому, что
искомое решение обычно не выражается в привычных для нас элементах или
других известных функциях. Даже для достаточно простых математических
моделей иногда не удается получить результат решения в аналитической
форме. В таких случаях основным инструментом решения многих
математических задач выступают численные методы, позволяющие свести
решение задачи к выполнению конечного числа арифметических действий над
числами, при этом результаты получаются также в виде числовых значений.
Многие численные методы разработаны давно, однако при ручных вычислениях
они могли использоваться лишь для решения узкого круга не слишком
сложных задач, и только с появлением высоко производительных ЭВМ начался
период бурного развития методов вычислительной математики и их внедрения
в практику. Численные методы приобрели важнейшее значение как мощное
математическое средство решения практических задач в различных областях
науки и техники.
Интерполирование, интерполяция,- приближенное или точное нахождение
какой-либо величины по известным отдельным значениям или других величин,
связанных с ней. В первоначальном понимании- восстановление функции
(точное или приближенное) по известным ее значениям или значениям ее
производных в заданных отрезках.
Основное применение интерполяции – это вычисление значении
табулированной функции для неузловых (промежуточных) значений аргумента,
поэтому интерполяцию часто называют «искусством чтения таблиц между
строками». (П.Ф. Фильчаков)
Глава 1
Основные направления исследования: разрешимость задачи
интерполирования, простейших интерполяционных формул, применение
интерполяции для построения приближенных интерполяционных формул,
применение интерполяции для построения приближенных и численных методов
решения различных задач математики и ее приложений.
.
стоится в виде
,
.
ограниченных или возрастающих функции- систему рациональных или
показательных функций, учитывающих поведение приближаемых функций на
бесконечности и т.д.
. Существует ряд явных представлений алгебраических интерполяционных
многочленов. Например интерполяционный многочлен Лагранжа имеет вид:
.
Эффективным аппаратом приближения функции являются интерполяционные
сплайны, но их построение в ряде частных случаях требует значительных
вычислительных затрат.
, принадлежащую классу дважды непрерывно дифференцируемых функции и
удовлетворяющую условиям
.
, или некоторые другие.
и их производных до некоторого порядка.
определяют исходя из требования минимизации суммы
.
Такое построение функции называют интерполированием по методу
наименьших квадратов.
лишь при условии, что эти узлы не лежат на алгебраической кривой
порядка n.
и т.д. интерполяционные сплайны для функций многих переменных
определяются по многомерной сетке при соответствующих изменениях по
аналогии с одномерным случаем.
Интерполирование функций и численные методы. Интерполирование функции
используется:
для замены сложно вычисляемой функции другой, вычисляемой проще
для приближенного восстановления функции на всей области задания по
значениям её в отдельных точках или по другим известным величинам
для получения сглаживающих функций
для приближенного нахождения предельных значений функции
в задачах ускорения сходимости последовательностей и рядов и в других
вопросах.
=0.
, приходят соответственно к методу Ньютона и метода секущих
,
.
.
Численное интегрирование. Аппарат интерполирования функции лежит в
основе построения многих квадратурных и кубатурных формул. Такого рода
формулы строятся путем замены интегрируемой функции на всей области или
на её составных частях интерполяционными многочленами того или иного
вида и последующим интегрированием этих многочленов. Например
квадратурные формулы наивысшей алгебраической степени точности, так
называемые квадратурные формулы Гаусса:
многочлена степени n.
Изложенная выше схема построения формул для приближенного вычисления
интегралов применима и в многомерном случае
F
H
L
P
V
ae
J
L
N
P
R
T
V
ae
??a
&
&
в основе которых лежит интерполирование, получаются в результате
дифференцирования интерполяционных многочленов. Ввиду неустойчивости
задачи численнго дифференцирования относительно ошибок использования
значений функций в узлах шаг интерполирования должен согласоваться с
погрешносьтью значений функций. Поэтому на практике нередки случаи,
когда известная на густой сетке функция используется в данной задаче не
во всех точках, а на более редкой сетке.
находятся соответственно из нелинейной системы.
более простой в каком- то смысле функцией
попаро различных значений аргумента:
, – узлами интерполяции.
.
, о которой или имеется неполная информация, или форма которой слишком
сложна для непосредственного использования.
Интерполяционная формула Эверетта:
.
К интерполяционным формулам с центральными разностями относятся формулы
Гаусса, Стирлинга, Бесселя, Эверетта и многие другие; формула Эверетта
получила наибольшее распространение, она была получена 1900 г.:
.
Формуле Эверетта так же можно придать форму, наиболее удобную для
вычисления:
если для ее коэффициентов ввести обозначения
:
Таблица разностей:
, число разностей зависит от количества значений y. Таблица разностей
высчитывается
, и так далее(можно заметить такую систему в приведенной выше таблице)
Тестовый пример.
.
Р е ш е н и е. По данным значениям функции составляем таблицу разностей
(табл. 1), из которых видно, что четвертые разности в данном примере
практически равны постоянны, а пятые разности практически равны нулю, и
поэтому мы их в дальнейших вычислениях не будем принимать во внимание.
=0,874.
=0,05, то
Т а б л и ц а 2
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1.00 0.9120049
0.8971316
0.8812009
0.8642423
0.8462874
0.8273695
0.8075238
0.7867871
0.7651977 -0.0148733
-0.0159307
-0.0169586
-0.0179549
-0.0189179
-0.0198457
-0.0207367
-0.0215894 -0.0010574
-0.0010279
-0.0009963
-0.0009630
-0.0009278
-0.0008910
-0.0008527 0.0000295
0.0000316
0.0000333
0.0000352
0.0000368
0.0000383 0.0000021
0.0000017
0.0000019
0.0000014
0.0000015
-0.0000004
0.0000002
-0.0000005
0.0000001
Т а б л и ц а 2
0
1
2 0.52000
-0.06323
0.01179 0.82273695
-0.0009278
0.0000014
0
1
2 0.48000
-0.06157
0.01160 0.8075238
-0.0008910
Все вычисления по формуле Эверетта представлены в табл. 2.
.
, как сумму произведений
ГЛАВА №2
Заключение
Удалось построить интерполяционный многочлен и вычислить по нему
значение функции для заданного значения аргумента. Составлена блок схема
алгоритма и программа на языке С++ (Приложение) для вычисления заданного
интерполяционного многочлена. В программе предусмотрена возможность
ввода любого числа значений функции для чего организованно хранение ее
значения при помощи линейного списка.
Список литературы
Архангельский Н.А. Вычислительные методы алгебры в приемах и задачах.
М.: МАИ, 1976.
Васильев Ф.П. Численные методы решения экстремальных задачь. М.:
Наука,1988.
Васильков Ф.В., Василькова Н.Н. Компьютерные технологии вычислений в
математическом моделировании: Учеб. Пособие. М.: Финансы и статистика,
1999.
Фильчаков П.Ф., Справочник по высшей математике. Киев: Наукова думка,
1974.
Фильчаков П.Ф., Численные методы. Киев: Наукова думка, 1976.
Большая математическая энциклопедия. М.: Олма-Пресс, 2004
Демидович Б.П., Марон И.А. Основы вычислительной математики. М.: Наука,
1970.
Тихонов А.Н., Вводные лекции по прикладной математике. М.: Наука, 1984.
Калиткин Н.Н., Численные методы. М.: Наука, 1987.
Корн Г., Корн Т. Справочник по математике. М.: Наука, 1984.
PAGE
PAGE 17
Начало
l_msp=NULL;l_fll=NULL;l_f=NULL;
w_u=NULL;r_u=NULL;l_u=NULL;
w_v=NULL;r_v=NULL;l_v=NULL;
h=FileFunction();
w_f=l_f;
TableMin();
TableMax();
BBEDuTE X=
x
u=UX(x,h);
VX(u);
p=Summa();
«OTBET: »
p
Конец
Начало
!feof(in)
l_f==NULL
l_w=w_f
R_f->radr=w_f
Нет
да
fscanf(in,”%f”,&w_f->x); fscanf(in,”%f”,&w_f->y);
R_f=w_f;
W_f=l_f;
W_f=l_f->radr;
H=(w_f->x)-(l_f->x)
FileFunction()
TableMin
Начало
s=w_f->y;
w_f=w_f->radr;
s1=w_f->y;
p=s1-s;
L_msp==NULL
L_msp=w_msp;
R_msp->radr1=w_msp
да
нет
l_fll==NULL
R_msp->radr1=w_msp
L_msp=w_msp;
да
нет
w_fll->a=p;r_fll=w_fll;
w_msp->z=p;r_msp=w_msp;
w_f!=r_f
нет
w_msp=l_msp;
да
r_msp=w_msp;
w_msp=l_msp;
w_msp!=r_msp
w_msp->z=p;
w_msp->z=p;l_msp=w_msp;
L_msp==NULL
s=c;
w_msp=w_msp->radr1;
c=w_msp->z;
s1=w_msp->z;
p=s1-s;
r_fll->radr2=w_fll;
w_fll->a=p;r_fll=w_fll;
r_msp->radr1=w_msp;
c=w_msp->z;
l_msp=NULL;
i=1;iradr;i++;
I=(i/2)
w_f=l_f;i>=1;i–
w_f=w_f->radr;
u=(x-(w_f->x))/h;
l_u=w_u;
w_u->u=u;
r_u=w_u;
i=1;iu);
r_u->uadr=w_u;
w_u->u=u1;
r_u=w_u;
Конец
VX(float u)
Начало
v=1-u;
l_v=w_v;
r_v->vadr=w_v;
w_v->v=v;
r_v=w_v;
i=1;iv);
r_v->vadr=w_v;
w_v->v=v1;
r_v=w_v;
Конец
Summa()
Начало
i=1;
w_f=l_f;
w_fll=l_fll;
w_u=l_u;
w_v=l_v;
w_f!=r_f
w_f=w_f->radr;i++;
I=i/2
w_f=l_f;i>=1;i–
w_f=w_f->radr;
s=(w_f->y)*(w_v->v);
w_f=w_f->radr;
s1=(w_f->y)*(w_u->u);
w_f=l_f;
w_f!=r_f
w_f=w_f->radr;i++;
i++;
j=i;
;i>=1;i–
w_fll=w_fll->radr2;
i=j;
i=((i/2)-1);i>=1;i–
w_fll=w_fll->radr2;
w_v=w_v->vadr;
s=s+(w_fll->a)*(w_v->v);
i=j;
i=((i/2));i>=1;i–
w_fll=w_fll->radr2;
w_fll!=r_fll
i==0
j–;
i=j;
j=i-1;
i=j;
w_fll=l_fll;
w_f=l_f;
Конец
p=s1+s;
w_u!=r_u
i=j*2;
w_fll=w_fll->radr2;
i=((i/2));i>=1;i–,j++
w_u=w_u->uadr;
s1=s1+(w_fll->a)*(w_u->u);
i=j-1;
j=0;
i=i-1;
i=j-1;
w_fll=w_fll->radr2;
;i>=1;i–
j=i;
j=i;
w_u=l_u;
w_f=w_f->radr;i++;
w_f!=r_f
Конец
Нашли опечатку? Выделите и нажмите CTRL+Enter