Программирование функции формулы Ньютона
Аннотация
Пояснительная записка курсовой работы "Интерполяция функции одной переменной методом Ньютона" содержит в себе введение, анализ задания описанием входных и выходных данных, обзор литературных источников, описание математической модели и методов вычислительной математики, пояснения к алгоритму, текст программы, инструкцию. При изучении дисциплины "Информатика" для написания курсовой работы использовались различные литературные источники, которые перечислены в настоящем документе. В данной курсовой работе приведена программа, которая применяется для интерполяции таблично заданной функции методом Ньютона. В ней был использован метод структурного программирования для облегчения написания и отладки программы, а также повышения ее наглядности и читаемости. Целью написания данной работы было получение и закрепление практических навыков разработки алгоритмов различными методами. Представленная программа реализована на языке программирования Pascal. Пояснительная записка содержит 25 листов, на которых размещено два рисунка, текст программы и описание программы и алгоритма.
Содержание
Введение
Анализ задания
Математическая модель задачи
Программирование функции формулы Ньютона
Обзор литературных источников
Разработка программы по схеме алгоритма
Инструкция пользования программой
Текст программы
|
|
Исходные данные и результат решения контрольного примера
Заключение
Список использованных источников
Введение
Современное развитие физики и техники тесно связано с использованием электронных вычислительных машин (ЭВМ). В настоящее время ЭВМ стали обычным оборудованием многих институтов и конструкторских бюро. Это позволило от простейших расчетов и оценок различных конструкций или процессов перейти к новой стадии работы - детальному математическому моделированию (вычислительному эксперименту), которое существенно сокращает потребность в натурных экспериментах, а в ряде случаев может их заменить.
Сложные вычислительные задачи, возникающие при исследовании физических и технических проблем, можно разбить на ряд элементарных -таких как вычисление интеграла, решение дифференциального уравнения и т. п. Многие элементарные задачи являются несложными и хорошо изучены. Для этих задач уже разработаны методы численного решения, и нередко имеются стандартные программы решения их на ЭВМ. Есть и достаточно сложные элементарные задачи; методы решения таких задач сейчас интенсивно разрабатываются.
В связи с этим современный специалист с высшим образованием должен обладать не только высоким уровнем подготовки по профилю своей специальности, но и хорошо знать математические методы решения инженерных задач, ориентироваться на использование вычислительной техники, практически освоить принципы работы на ЭВМ.
|
|
Анализ задания
В качестве входных данных использованы:
1. Количество узлов.
2. Табличные значения функции.
Выходными данными, т.е. результатом программы является:
1. Значения таблично заданной функции в промежуточных значениях.
2. График полинома.
Математическая модель задачи
При выполнении курсовой работы была выбрана следующая математическая модель:
Интерполяция и приближение функций.
1. Постановка задачи.
Одной из основных задач численного анализа является задача об интерполяции функций. Часто требуется восстановить функцию для всех значений на отрезке если известны ее значения в некотором конечном числе точек этого отрезка. Эти значения могут быть найдены в результате наблюдений (измерений) в каком-то натурном эксперименте, либо в результате вычислений. Кроме того, может оказаться, что функция задается формулой и вычисления ее значений по этой формуле очень трудоемки, поэтому желательно иметь для функции более простую (менее трудоемкую для вычислении) формулу, которая позволяла бы находить приближенное значение рассматриваемой функции с требуемой точностью в любой точке отрезка. В результате возникает следующая математическая задача.
|
|
Пусть и» отрезке задана сетка со
и в ее узлах заданы значения функции , равные
.
Требуется построить интерполянту — функцию , совпадающую с функцией в узлах сетки:
.
Основная цель интерполяции — получить быстрый (экономичный) алгоритм вычисления значений для значений , не содержащихся в таблице данных.
2. Интерполяция по Ньютону
Дана табличная функция:
i | ||
0 | ||
1 | ||
2 | ||
.. | .. | .. |
n |
Или
, (1)
Точки с координатами называются узловыми точками или узлами.
Количество узлов в табличной функции равно N=n+1.
Необходимо найти значение этой функции в промежуточной точке, например, , причем . Для решения задачи используется интерполяционный многочлен.
Интерполяционный многочлен по формуле Ньютона имеет вид:
где n – степень многочлена,
Интерполяционная формула Ньютона формула позволяет выразить интерполяционный многочлен через значение в одном из узлов и через разделенные разности функции , построенные по узлам .
|
|
Сначала приведем необходимые сведения о разделенных разностях.
Пусть в узлах
,
известны значения функции . Предположим, что среди точек , , нет совпадающих. Разделенными разностями первого порядка называются отношения
, , .
Будем рассматривать разделенные разности, составленные по соседним узлам, т. е. выражения
.
По этим разделенным разностям первого порядка можно построить разделенные разности второго порядка:
,
,
Таким образом, разделённая разность -го порядка на участке может быть определена через разделённые разности -го порядка по рекуррентной формуле:
. (3)
где , , - степень многочлена.
Максимальное значение равно . Тогда и разделенная разность n-го порядка на участке равна
,
т.е. равна разности разделенных разностей -го порядка, разделенной на длину участка .
Разделенные разности
являются вполне определенными числами, поэтому выражение (1) действительно является алгебраическим многочленом -й степени. При этом в многочлене (1) все разделенные разности определены для участков , .
При вычислении разделенных разностей принято записывать их в виде таблицы
• | |||||
• | • | • | |||
■ | • | • | • | ||
• | • | • | |||
• | • | ||||
Разделенная разность -го порядка следующим образом выражается через значения функции в узлах:
. (1)
Эту формулу можно доказать методом индукции. Нам потребуется частный случай формулы (1):
Интерполяционным многочленом Ньютона называется многочлен
Рассмотренная форма полинома Ньютона носит название первой интерполяционной формулы Ньютона, и используется, обычно, при интерполировании вначале таблицы.
Заметим, что решение задачи интерполяции по Ньютону имеет некоторые преимущества по сравнению с решением задачи интерполяции по Лагранжу. Каждое слагаемое интерполяционного многочлена Лагранжа зависит от всех значений табличной функции yi, i=0,1,…n. Поэтому при изменении количества узловых точек N и степени многочлена n (n=N-1) интерполяционный многочлен Лагранжа требуется строить заново. В многочлене Ньютона при изменении количества узловых точек N и степени многочлена n требуется только добавить или отбросить соответствующее число стандартных слагаемых в формуле Ньютона (2). Это удобно на практике и ускоряет процесс вычислений.
Программирование функции формулы Ньютона
Для построения многочлена Ньютона по формуле (1) организуем циклический вычислительный процесс по . При этом на каждом шаге поиска находим разделенные разности k-го порядка. Будем помещать разделенные разности на каждом шаге в массив Y.
Тогда рекуррентная формула (3) будет иметь вид:
(4)
В формуле Ньютона (2) используются разделенные разности -го порядка, подсчитанные только для участков т.е. разделенные разности -го порядка для . Обозначим эти разделенные разности k-го порядка как . А разделенные разности, подсчитанные для , используются для расчетов разделенных разностей более высоких порядков.
Используя (4), свернем формулу (2). В результате получим
(5)
где
– значение табличной функции (1) для .
– разделенная разность -го порядка для участка .
.
Для вычисления Р удобно использовать рекуррентную формулу внутри цикла по .
Схема алгоритма интерполяции по Ньютону представлена на рисунке:
Function POlinom(n: integer; d:real; x,y :per):real;
var
l:real;
k,i:integer;
p: real;
begin
L:=y[0];
P:=1;
for k:=1 to n do begin
P:=P*(D-X[k-1]);
for i:=0 to (n-k) do begin
Y[i]:=(y[i+1]-y[i])/(x[i+k]-x[i]);
end;
L:=L+P*y[0];
end;
Polinom:=l;
end;
где
n – количество узлов
x[i],y[i] – табличные значения функции
D – точка, в которой необходимо вычислить значение l
Дата добавления: 2019-07-15; просмотров: 223; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!