Рефераты

Построение интерполяционного многочлена и вычисление по нему значения функции для заданного аргумента

Построение интерполяционного многочлена и вычисление по нему значения функции для заданного аргумента

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Международная «Лига развития науки и образования» (Россия)

Международная ассоциация развития науки, образования и культуры России

(Италия)

Международный «ИНСТИТУТ УПРАВЛЕНИЯ»

(г. Архангельск)

КУРСОВАЯ РАБОТА

ПО ДИСЦИПЛИНЕ

«Информатика и программирование»

Тема : «Построение интерполяционного многочлена и вычисление по нему

значения функции для заданного аргумента»

|Выполнил: студент экономического |

|факультета, группы 12-И Воробьев |

|А.А. |

|Проверил: Горяшин Ю.В. |

| |

Архангельск

2004

Аннотация

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

многочлен и вычислить по нему значение функции для заданного значения

аргумента. Составить блок схему алгоритма и программу на одном из языков

высокого уровня (С++) для вычисления заданного интерполяционного

многочлена. В программе предусмотреть возможности ввода любого числа

значений функции для чего организовать хранение ее значении при помощи

линейного списка.

Содержание

1. Аннотация

2. Содержание

3. Глава №1

4. Глава №2

5. Заключение

6. Список литературы

7. Приложение

8. Программа

Введение.

Возможность постановки вычислительного эксперимента на ЭВМ приводит к

существенному ускорению процессов математизации науки и техники, к

постоянному расширению области приложения современных разделов математики.

Количественные методы внедряются практически во все сферы человеческой

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

математическая грамотность становится необходимой. Однако, развитие науки и

техники, современная технология производства ставят перед специалистами

задачи, для которых либо не возможно, либо крайне громоздко и сложно

получение алгоритма классическими методами математического анализа. Отсюда

стремление использовать различные численные методы, разрабатываемые

вычислительной математикой и позволяющие получить конечный числовой

результат с приемлемой для практических целей точностью.

Численный метод решения задачи - это определенная последовательность

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

являются числа и арифметические действия. Такая примитивность языка

позволяет реализовать численные методы на ЭВМ, что делает их мощными и

универсальными инструментами исследования. Численные методы используются в

тех случаях, когда не удается найти точное решение возникающей

математической задачи. Это происходит главным образом, потому, что искомое

решение обычно не выражается в привычных для нас элементах или других

известных функциях. Даже для достаточно простых математических моделей

иногда не удается получить результат решения в аналитической форме. В таких

случаях основным инструментом решения многих математических задач выступают

численные методы, позволяющие свести решение задачи к выполнению конечного

числа арифметических действий над числами, при этом результаты получаются

также в виде числовых значений.

Многие численные методы разработаны давно, однако при ручных

вычислениях они могли использоваться лишь для решения узкого круга не

слишком сложных задач, и только с появлением высоко производительных ЭВМ

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

внедрения в практику. Численные методы приобрели важнейшее значение как

мощное математическое средство решения практических задач в различных

областях науки и техники.

Интерполирование, интерполяция,- приближенное или точное нахождение

какой-либо величины по известным отдельным значениям или других величин,

связанных с ней. В первоначальном понимании- восстановление функции (точное

или приближенное) по известным ее значениям или значениям ее производных в

заданных отрезках.

Основное применение интерполяции - это вычисление значении

табулированной функции для неузловых (промежуточных) значений аргумента,

поэтому интерполяцию часто называют «искусством чтения таблиц между

строками». (П.Ф. Фильчаков)

Глава 1

Основные направления исследования: разрешимость задачи

интерполирования, простейших интерполяционных формул, применение

интерполяции для построения приближенных интерполяционных формул,

применение интерполяции для построения приближенных и численных методов

решения различных задач математики и ее приложений.

Приближенное представление функций. Интерпояционные функции [pic] на

отрезке [pic] по значениям ее в узлах [pic] сетка [pic]- означает постоение

другой функции [pic] такой, что [pic] В более общей постановке задача

интерполирования функции [pic] состоит в постоении [pic] не только из

условий совпадения значений функций [pic] и [pic] на стеке [pic], но и

совпадения в отдельных узлах производных до какого-то порядка или некоторых

других соотношений, связанных [pic] и [pic].

Обычно [pic] стоится в виде

[pic],

где [pic]- некоторая заранее выбранная система линейно независимых функций.

Такое интерполирование называется л и н е й н ы м относительно системы

[pic], а [pic] интерполяционным многочленом по системе [pic].

Выбор системы [pic] определяется свойством класса функций, для

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

для приближения [pic]- периодической функции на [pic] за [pic]

естественно взять тригонометрическую систему функций, для приближения на

полу оси [pic] ограниченных или возрастающих функции- систему рациональных

или показательных функций, учитывающих поведение приближаемых функций на

бесконечности и т.д.

Чаще всего используя а л г е б р а и ч е с к о е интерполирование:

[pic]. Существует ряд явных представлений алгебраических интерполяционных

многочленов. Например интерполяционный многочлен Лагранжа имеет вид:

[pic]

В задаче приближения функции и на всём отрезке [pic] алгебраическое

интерполирование высокого порядка выполняется сравнительно редко.

Алгебраический интерполяционный процесс не является сходящимся в классе

непрерывных на [pic] функций. Обычно ограничиваются линейным

интерполированием по узлам [pic] и [pic] на каждом отрезке [pic] или

квадратичным по трем узлам [pic],[pic],[pic] на отрезке [pic].

Эффективным аппаратом приближения функции являются интерполяционные

сплайны, но их построение в ряде частных случаях требует значительных

вычислительных затрат.

На практике чаще всего используются параболические или кубические

полиноминальные сплайны. Интерполяция кубическим сплайном дефекта 1 для

функции [pic] относительно сетки [pic] называет функцию [pic], являющуюся

многочленом 3-й степени на каждом из отрезков [pic], принадлежащую классу

дважды непрерывно дифференцируемых функции и удовлетворяющую условиям

[pic].

При таком определении кубического сплайна, он имеет еще свободных

параметра, для нахождения которых на сплайн налагаются дополнительные

краевые условия. Например [pic] или [pic] и [pic], или некоторые другие.

Полиномиальный интерполяционный сплайн произвольной степени m

дефекта r определяется как функция [pic], удовлетворяющая, кроме условий

[pic] и [pic], еще дополнительно условиям совпадения в узлах сетки значений

функции [pic] и интерполированной функции [pic] и их производных до

некоторого порядка.

Часто при обработке эмпирических данных [pic] коэффициенты [pic] в

[pic] определяют исходя из требования минимизации суммы

[pic]

[pic]- заданные числа, [pic].

Такое построение функции называют интерполированием по методу

наименьших квадратов.

Интерполирование функций многих переменных имеет ряд принципиальных

и алгебраических трудностей. Например в случае алгебраической интерполяции

интерполяционный многочлен Лагранжа фиксированной степени, вообще говоря,

не существует для произвольной схемы различных узлов интерполяции. В

частности для функций двух переменных [pic] такой многочлен [pic] суммарной

степени не выше n может быть построен по узлам [pic] лишь при условии, что

эти узлы не лежат на алгебраической кривой порядка n.

Другой поход к интерполированию функции многих переменных [pic] стоит

в том, что сначала интерполируется функция по переменной [pic] при

фиксированных [pic] потом по следующей переменной при фиксированных [pic] и

т.д. интерполяционные сплайны для функций многих переменных определяются по

многомерной сетке при соответствующих изменениях по аналогии с одномерным

случаем.

Интерполирование функций и численные методы. Интерполирование функции

используется:

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

2. для приближенного восстановления функции на всей области задания по

значениям её в отдельных точках или по другим известным величинам

3. для получения сглаживающих функций

4. для приближенного нахождения предельных значений функции

5. в задачах ускорения сходимости последовательностей и рядов и в других

вопросах.

Общие идеи построения интерполяционных методов решения уравнения

[pic]=0 и систем уравнения [pic], одни и те же. Трудности задачи

интерполирования функций многих преременных особенно сказывается при

исследовании и практическом использовании такого рода методов для большого

числа уравнений. В основу получении интерполяционных методов решения

уравнения [pic]=0 положена замена функции [pic] ее интерполяционным

многочленом [pic] и последующим решением уравнения [pic]=0 берутся за

приближенные решении уравнения [pic]=0 интерполяционный многочлен [pic]

используется так же при построении итерационных методов решения уравнения

[pic]=0.

Например взяв за [pic] корень линейного интерполяционного

алгебраического многочлена, построенного по значениям [pic] и [pic] в узле

[pic] или по значениям [pic] и [pic] в узлах [pic] и [pic], приходят

соответственно к методу Ньютона и метода секущих

[pic],

где [pic]- разделенная разность функций для узлов [pic] и [pic].

Другой подход к построению численных методов решения уравнения

[pic]=0 основан на интерполировании обратной функции [pic]. Пусть в

качестве интерполяционной формулы для функции [pic] взят интерполяционный

алгебраический многочлен Лагранжа [pic], построенный по узлам [pic] Тогда

за следующее приближению к корню [pic] уравнения [pic]=0 берется величина

[pic].

Численное интегрирование. Аппарат интерполирования функции лежит в

основе построения многих квадратурных и кубатурных формул. Такого рода

формулы строятся путем замены интегрируемой функции на всей области или на

её составных частях интерполяционными многочленами того или иного вида и

последующим интегрированием этих многочленов. Например квадратурные формулы

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

формулы Гаусса:

[pic]

где [pic]- знакопостоянная весовая функция, получаемая в результате замены

функции [pic] интерполяционным алгебраическим многочленом, построенным по

корням [pic] ортогонального относительно веса [pic] многочлена степени n.

Изложенная выше схема построения формул для приближенного вычисления

интегралов применима и в многомерном случае

Формулы численного дифференцирования, в основе которых лежит

интерполирование, получаются в результате дифференцирования

интерполяционных многочленов. Ввиду неустойчивости задачи численнго

дифференцирования относительно ошибок использования значений функций в

узлах шаг интерполирования должен согласоваться с погрешносьтью значений

функций. Поэтому на практике нередки случаи, когда известная на густой

сетке функция используется в данной задаче не во всех точках, а на более

редкой сетке.

При численном решении интегральных уравнений, известная функция [pic]

заменяется в интегральном уравнении каким-либо интерполяционным

приближением (интерполяционным алгебраическим многочленом, интерполяционным

сплайном и т.д.) с узлами интерполирования [pic], а приближенные значения

[pic] для [pic] находятся из системы, полученной после подстановке вместо

независимости переменной x узлов интерполирования [pic]. В случае

нелинейных интегральных уравнений приближенные значения [pic] находятся

соответственно из нелинейной системы.

Интерполяционная формула- для приближенного вычисления значений

функции [pic], основанного вычисления на замене приближаемой функции [pic]

более простой в каком- то смысле функцией

[pic]

|[pic] |[pic] |

наперед заданного класса, причем параметры [pic] выбираются так чтобы

значения [pic] совпадали с известными заранее значениями [pic] для данного

множества [pic]попаро различных значений аргумента:

такой способ приближенного представления функций называется

интерполированием, а точки [pic], для которых должны выполняться условия

[pic], - узлами интерполяции.

В ряде случаев (например, при интерполировании алгебраическими

многочленами) параметры [pic] могут быть явно выражены из системы [pic], и

тогда [pic]непосредственно используется для приближенного вычисления

значений функции [pic].

Интерполяционный процесс- процесс получения последовательности

интерполирующих функций [pic] при неограниченном возрастании числа n узлов

интерполирования. Если интерполирующие функции [pic] представлены в виде

частных сумм некоторого функционального ряда, то последний иногда

называется интерполяционным рядом. Целью построения интерполяционного

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

задачах интерполирования, приближение в каком- то смысле по средствам

интерполирующих функций [pic], о которой или имеется неполная информация,

или форма которой слишком сложна для непосредственного использования.

Интерполяционная формула Эверетта:

Интерполяционные формулы Грегори- Ньютона построенные по нисходящим или

восходящим разностям, наиболее целесообразно применять в начале или конце

таблицы. При этом для достижения высокой степени точности иногда приходится

рассматривать разности, отстоящие достаточно далеко от интересующих нас

значений функции [pic] или [pic]. Поэтому на средних участках таблицы лучше

результаты дают интерполяционные формулы, построенные на базе центральных

разностей, то есть разностей, которые ближе всего расположены к центральной

сотке, содержащей [pic].

К интерполяционным формулам с центральными разностями относятся

формулы Гаусса, Стирлинга, Бесселя, Эверетта и многие другие; формула

Эверетта получила наибольшее распространение, она была получена 1900 г.:

[pic]

где [pic]; [pic]; [pic].

Формуле Эверетта так же можно придать форму, наиболее удобную для

вычисления:

[pic]

если для ее коэффициентов ввести обозначения

[pic] [pic] [pic] [pic]

[pic] [pic] [pic]

Коэффициенты [pic] удобнее всего вычислять по следующей рекуррентной

формуле, которая непосредственно вытекает из [pic]:

[pic]; [pic]; [pic]

Таблица разностей:

|x |y |[pic|[pic]|[pic]|[pic]|[pic]|

| | |] | | | | |

|[pi|[pi|[pic|[pic]|[pic]|[pic]|[pic]|

|c] |c] |] | | | | |

|[pi|[pi|[pic|[pic]|[pic]|[pic]|[pic]|

|c] |c] |] | | | | |

|[pi|[pi|[pic|[pic]|[pic]|[pic]|[pic]|

|c] |c] |] | | | | |

|[pi|[pi|[pic|[pic]|[pic]|[pic]|[pic]|

|c] |c] |] | | | | |

|[pi|[pi|[pic|[pic]|[pic]|[pic]| |

|c] |c] |] | | | | |

|[pi|[pi|[pic|[pic]|[pic]| | |

|c] |c] |] | | | | |

|[pi|[pi|[pic|[pic]| | | |

|c] |c] |] | | | | |

|[pi|[pi|[pic| | | | |

|c] |c] |] | | | | |

|[pi|[pi| | | | | |

|c] |c] | | | | | |

Таблицу можно продолжать строить, в нашем случае до последнего [pic], число

разностей зависит от количества значений y. Таблица разностей высчитывается

[pic], и так далее(можно заметить такую систему в приведенной выше

таблице)

Тестовый пример.

П р и м е р. Функция [pic] задана таблицей на сегменте [pic].

Определим при помощи интерполяции значение [pic].

Р е ш е н и е. По данным значениям функции составляем таблицу

разностей (табл. 1), из которых видно, что четвертые разности в данном

примере практически равны постоянны, а пятые разности практически равны

нулю, и поэтому мы их в дальнейших вычислениях не будем принимать во

внимание.

Принимаем [pic]=0,85; [pic]=0,9; [pic]=0,874.

Тогда [pic]=0,8273695; [pic]=0,8075238, и, далее, так как шаг таблицы

[pic]=0,05, то

[pic]

Т а б л и ц а 2

|x |[pic] |[pic] |[pic] |[pic] |[pic] |[pic] |

|0.6|0.9120049|-0.014873|-0.001057|0.000029|0.000002|-0.000000|

|0 | |3 |4 |5 |1 |4 |

|0.6|0.8971316|-0.015930|-0.001027|0.000031|0.000001|0.0000002|

|5 | |7 |9 |6 |7 | |

|0.7|0.8812009|-0.016958|-0.000996|0.000033|0.000001|-0.000000|

|0 | |6 |3 |3 |9 |5 |

|0.7|0.8642423|-0.017954|-0.000963|0.000035|0.000001|0.0000001|

|5 | |9 |0 |2 |4 | |

|0.8|0.8462874|-0.018917|-0.000927|0.000036|0.000001| |

|0 | |9 |8 |8 |5 |[pic] |

|0.8|0.8273695|-0.019845|-0.000891|0.000038| | |

|5 | |7 |0 |3 | | |

|0.9|0.8075238|-0.020736|-0.000852| | | |

|0 | |7 |7 | | | |

|0.9|0.7867871|-0.021589| | | | |

|5 | |4 | | | | |

|1.0|0.7651977| | | | | |

|0 | | | | | | |

Т а б л и ц а 2

|Эверетта |

|[p|[pic] |[pic] |

|ic| | |

|] | | |

|0 |0.52000|0.8227369|

|1 | |5 |

|2 |-0.0632|-0.000927|

| |3 |8 |

| |0.01179|0.0000014|

|0 |0.48000|0.8075238|

|1 | | |

|2 |-0.0615|-0.000891|

| |7 |0 |

| |0.01160|0.0000015|

|[pic][pic] |

Все вычисления по формуле Эверетта представлены в табл. 2.

Все необходимые значения разностей(и самой функции, которые мы в

табл. 2 обозначили как разности нулевого порядка [pic]) взяты из табл. 1.

Первые три строки в табл. 2 заполнены значениями [pic] для [pic] и [pic], а

последующие три строки соответственно значениями [pic] для [pic] и [pic].

Перемножив (не снимая промежуточных результатов) коэффициенты [pic] на

расположенные в той же строке [pic], мы и получим искомое значение функции

[pic], как сумму произведений

Проверка производится непосредственно при помощи степенного ряда для

рассматриваемой функции Эверетта [pic] согласно которому получим [pic]

ГЛАВА №2

MAIN[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

Заключение

Удалось построить интерполяционный многочлен и вычислить по нему

значение функции для заданного значения аргумента. Составлена блок схема

алгоритма и программа на языке С++ (Приложение) для вычисления заданного

интерполяционного многочлена. В программе предусмотрена возможность ввода

любого числа значений функции для чего организованно хранение ее значения

при помощи линейного списка.

Список литературы

1. Архангельский Н.А. Вычислительные методы алгебры в приемах и

задачах. М.: МАИ, 1976.

2. Васильев Ф.П. Численные методы решения экстремальных задачь. М.:

Наука,1988.

3. Васильков Ф.В., Василькова Н.Н. Компьютерные технологии

вычислений в математическом моделировании: Учеб. Пособие. М.:

Финансы и статистика, 1999.

4. Фильчаков П.Ф., Справочник по высшей математике. Киев: Наукова

думка, 1974.

5. Фильчаков П.Ф., Численные методы. Киев: Наукова думка, 1976.

6. Большая математическая энциклопедия. М.: Олма-Пресс, 2004

7. Демидович Б.П., Марон И.А. Основы вычислительной математики. М.:

Наука, 1970.

8. Тихонов А.Н., Вводные лекции по прикладной математике. М.:

Наука, 1984.

9. Калиткин Н.Н., Численные методы. М.: Наука, 1987.

10. Корн Г., Корн Т. Справочник по математике. М.: Наука, 1984.

-----------------------

Начало

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

Конец


© 2010 БИБЛИОТЕКА РЕФЕРАТЫ