Программа на Visual Basic: интерполяция

Понятие и характеристика некоторых методов интерполяции. Вычисление значения функции между заданными точками несколькими методами. Алгоритм линейной интерполяции. Алгоритм локальной интерполяции по формуле Лагранже. Инструкция пользования программой.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.05.2015
Размер файла 186,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Программа на Visual Basic: интерполяция

Введение

Современное развитие физики и техники тесно связано с использованием электронных вычислительных машин (ЭВМ). В настоящее время ЭВМ стали обычным оборудованием многих институтов и конструкторских бюро. Это позволило от простейших расчетов и оценок различных конструкций или процессов перейти к новой стадии работы - детальному математическому моделированию (вычислительному эксперименту), которое существенно сокращает потребность в натурных экспериментах, а в ряде случаев может их заменить.

Сложные вычислительные задачи, возникающие при исследовании физических и технических проблем, можно разбить на ряд элементарных - таких как вычисление интеграла, решение дифференциального уравнения и т. п. Многие элементарные задачи являются несложными и хорошо изучены. Для этих задач уже разработаны методы численного решения, и нередко имеются стандартные программы решения их на ЭВМ. Есть и достаточно сложные элементарные задачи; методы решения таких задач сейчас интенсивно разрабатываются.

В связи с этим современный специалист с высшим образованием должен обладать не только высоким уровнем подготовки по профилю своей специальности, но и хорошо знать математические методы решения инженерных задач, ориентироваться на использование вычислительной техники, практически освоить принципы работы на ЭВМ.

Все вышесказанное доказывает актуальность моей курсовой работы на тему «Исследование интерполяции».

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

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

· рассмотреть, что такое интерполяция;

· охарактеризовать некоторые методы интерполяции;

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

Общая характеристика интерполяции

Одной из основных задач численного анализа является задача об интерполяции функций. Часто требуется восстановить функцию для всех значений на отрезке если известны ее значения в некотором конечном числе точек этого отрезка. Эти значения могут быть найдены в результате наблюдений (измерений) в каком-то натурном эксперименте, либо в результате вычислений. Кроме того, может оказаться, что функция задается формулой и вычисления ее значений по этой формуле очень трудоемки, поэтому желательно иметь для функции более простую (менее трудоемкую для вычислении) формулу, которая позволяла бы находить приближенное значение рассматриваемой функции с требуемой точностью в любой точке отрезка. В результате возникает следующая математическая задача.

Пусть на отрезке задана сетка со

и в ее узлах заданы значения функции , равные .

Требуется построить функцию , совпадающую с функцией в узлах сетки: .

Основная цель интерполяции - получить быстрый (экономичный) алгоритм вычисления значений для значений , не содержащихся в таблице данных.

Метод Лагранжа

Часто не возникает необходимости иметь коэффициенты многочлена, а надо лишь найти значения функции в промежуточных точках. В этом случае удобно использовать многочлен Лагранжа. Пусть в точках х0, х1,… хn заданы значения функции y0,y1,…yn. Надо найти значения функции в любой промежуточной точке x.

Оценим погрешности, возникающие при расчете по формуле Лагранжа. При очень близком расположении некоторых точек может возникнуть вычитание близких чисел, что ведет к неустойчивости по исходным данным, значит - к большой погрешности. Рассмотрим погрешность метода. Значения многочлена совпадают со значениями функции в узлах интерполяции. В точках, отличных от узлов, погрешность равна

R(x) = f(x) - ?(x),

R(x) - называется остаточным членом интерполяционной формулы. Оценим его значение.

Здесь f (n+1)(x.) - производная n+1 порядка функции f(x) в некоторой точке, принадлежащей интервалу [x0; xn]. Эта точка неизвестна.

Посмотрим, от чего зависит эта погрешность. С одной стороны, чем выше степень многочлена, меньше погрешность, так во многих случаях и есть. Но иногда значения производной высокого порядка бывают велики. Такую ситуацию впервые обнаружил Рунге. Он строил на отрезке [-1;1] интерполяционный многочлен с равномерным распределением узлов для функции 1 / (1+25 x2). Оказалось, что с увеличением степени многочлена его значения расходятся с функцией для любой точки 0,7<|x|<1.

Кроме того, на погрешность влияет расположение узлов. При очень близком расположении некоторых точек может возникнуть разность близких чисел, что может привести к большим погрешностям.

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

Методы и алгоритмы глобальной, локальной и линейной интерполяций

Глобальная интерполяция. Построим многочлен на отрезке [x0;xn], график которого должен проходить через все заданные точки:

ф(x)=a0 + a1x + a2x2 + … + anxn

Многочлен имеет n+1 коэффициент и степень n, т. е. многочлен должен иметь степень на единицу меньше количества точек. Задача состоит в нахождении коэффициентов многочлена. Из условий равенства f(xi)=ф(xi)? для всех точек можно записать этот многочлен для каждой точки:

a0 + a1x0 + a2x02+ … +anx0n = y0;

a0 + a1x1 + a2x12+ … +anx1n = y1;

……………………………………...;

a0 + a1xn + a2xn2+ … +anxnn = yn;

Получили систему n+1 линейных уравнений. Система имеет единственное решение, если определитель неравен нулю. Определитель системы имеет вид:

1 x0 x02 … x0n

1 x1 x12 … x1n

……………….....

1 xn xn2 … xnn

Для рассматриваемой задачи это означает, что система имеет единственное решение, если среди узлов нет совпадающих. Отсюда следует, что существует единственный интерполяционный многочлен степени n.

Если степень многочлена (1) не велика (обычно не выше 4), то систему можно решить одним из рассмотренных выше методов. При высоких степенях многочлена можно получить задачу, не устойчивую по исходным данным, а значит - большую погрешность при вычислении коэффициентов. Существует большое количество способов нахождения интерполяционных многочленов, но каким бы способом не определяли, коэффициенты будут одни и те же (в пределах погрешности вычисления на компьютере).

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

Алгоритм глобальной интерполяции по формуле Лагранжа.

Ввод x(i), y(i), где i=1,2…n; xk

Вычисление yk по формуле (2)

Печать xk, yk

x(n), y(n) -массивы заданных точек и функции в этих точках;

xk - точка, в которой надо найти значение функции yk.

Локальная интерполяция

При локальной интерполяции для каждого интервала строится своя функция. Рассмотрим линейную интерполяцию. Задана точка x (i=1, 2, 3….n) на отрезке [a;b] и значения функции в этих точках y(i). Запишем уравнение прямой на i - том интервале, проходящей через точки (xi-1, yi-1) и (xi, yi):

(y-yi-1) / (yi-yi-1) = (x-xi-1) / (xi-xi-1)

Отсюда

y = yi-1 + (yi-yi-2) * (x-xi-1) / (xi-xi-1)

По этой формуле можно определить функцию y в лубой точке. Но сначала надо определить в какой интервал отрзка [a;b] попадет искомая точка, т. е. определитель i.

Алгоритм линейной интерполяции.

Ввод x(i), y(i), где i=1,2…n; xk

i=1

Начало цикла

i=i+1

конец цикла, по условию xk<x(i)

Вычисление yk по формуле (3)

Печать xk, yk

x(n), y(n) -массивы заданных точек и функции в этих точках;

xk - точка, в которой надо найти значение функции yk.

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

Алгоритм локальной интерполяции по формуле Лагранже

Формулу Лагранжа можно использовать и для локальной интерполяции. Для этого удобно проводить интерполяционный многочлен через 4 точки, причем проводить его так, чтобы точка, в которой надо найти значение функции, находилась в середине многочлена, т.е. между второй и третьей точками. Исключение составит точки, находящиеся на первом и последнем интервале.

n - количество узлов интерполяции;

a, b - соответственно левый и правый концы интервала;

x (n), y (n) - массивы узлов интерполяции;

xk - точка, в которой надо найти значение функции;

yk - значение интерполяционного многочлена в точке xk;

nn, nk - соответственно номера 1- ой и последней точек интерполяционного многочлена.

Ввод a, b, n, xk, x(i), y(i) i=1, 2, … n

k=1

Начало цикла

k=k+1

Конец цикла, по условию xk < x(k)

Если х<=2, то nn=1; nk=4

Если 2<k<=n-1, то nn=k-2; nk=k+1

Если k=n, то nn=n-3; nk=n

yk=LAGR(nn,nk,xk,x,y)

Печать xk, yk

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

Инструкция пользования программой

Для запуска программы необходимо открыть лист EXCEL, затем нажать на клавишу ALT и F11 одноременно. Затем появится окно для напиcания программы для языке Visual Basic.

Сначала рассмотрим запись на Visual Basic по методу глобальной интерполяции:

· вводим массивы узлов интерполяции, количество узлов интерполяции и точку, в которой надо найти промежуточное значение;

· переводим формулу Лагранжа (2) на язык программирования для Visual Basic и записываем;

· вводим адрес ячейки для вывода на лист EXCEL, в которую выйдет значение промежуточной точки (уk).

Теперь рассмотрим запись по методу линейной интерполяции:

· вводим массивы узлов интерполяции, количество узлов интерполяции и точку, в которой надо найти промежуточное значение;

· записываем формулу для нахождения промежуточной точки (уk);

· вводим адрес ячейки для вывода на лист EXCEL.

Запись по методу локальной интерполяции:

· обращаем формулу Лагранжа для локальной интерполяции к функции и записываем;

· вводим массивы узлов интерполяции, количество узлов интерполяции и точку, в которой надо найти промежуточное значение;

· находим номера точек;

· вводим условия для значений nn и nk;

· вводим адрес ячейки для вывода на лист EXCEL.

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

1. Вводные данные:

x

-5

-4

-3

-2

-1

0

1

2

3

4

5

y

-2,17

-2,96

-5,29

20,00

1,11

0,00

0,91

2,22

2,43

2,16

1,85

Задача:

Вычислить значение функции между всеми точками методами:

1. Лагранжа как глобальную интерполяцию;

2. Лагранжа как локальную интерполяцию;

3. линейной интерполяции.

2. График функции вводных данных:

Рис.1

Текст программы по методу глобальной интерполяции по формуле Лагранжа

Текст программы по методу линейной интерполяции:

Текст программы по методу локальной интерполяции по формуле Лагранжа:

Все найденные точки на листе EXCEL:

Рис.2

Построение найденных промежуточных точек на графике:

Рис. 3

Заключение

В данной курсовой работе я разобрал формулу Лагранжа для разных методов интерполяции. Формулу Лагранжа удобно использовать, если нет необходимости иметь коэффициенты многочлена, а надо лишь найти значения функции в промежуточных точках. Именно такая задача была поставлена передо мной, т.е. найти значения функции в промежуточных точках. Судя по графику (рис.3), можно прийти к выводу, что найденные точки являются значениями данной функции.

В процессе выполнения курсовой работы были закреплены приобретенные за период обучения навыки и умения самостоятельного составления алгоритмов и программ на языке программирования Visual Basic простых типовых математических задач. Эта работа ещё раз подтвердила полезность использования ЭВМ для решения прикладных математических задач. Полученные знания и накопленный опыт решения простых задач в будущем позволят разрабатывать гораздо более сложные программы и алгоритмы, облегчат разбиение сложных задач на простые элементы.

интерполяция лагранже линейный

Список использованной литературы

1. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков. - М.: Наука, 2010. - 597 с.

2. Бут, Э. Д. Численные методы / Э. Д. Бут. - М. : Физматгиз, 1959. - 239 с.

3. Воробьева, Г. Н. Практикум по вычислительной математике / Г. Н. Воробьева, А. Н. Данилова. - М. : Высшая школа, 2011. - 207 с.

4. Рено, Н. Н. Численные методы: учебное пособие / Н. Н. Рено. - М.: КДУ, 2009. - 100 с.

5. Турчак, Л. И. Основы численных методов / Л. И. Турчак. - М.: Наука, 2008. - 318 с.

6. Хемминг, Р. В. Численные методы / Р. В.. Хемминг. - М.: Наука, 2010. - 400 с.

Размещено на Allbest.ru


Подобные документы

  • Назначение и возможности пакета MATLAB. Цель интерполирования. Компьютерная реализация решения инженерной задачи по интерполяции табличной функции различными методами: кусочно-линейной интерполяцией и кубическим сплайном, а также построение их графиков.

    контрольная работа [388,3 K], добавлен 25.10.2012

  • Интерполяция данных с использованием значений функции, заданной множеством точек, для предсказания значения функции между ними. Результаты линейной интерполяции в графическом виде. Кубическая сплайн-интерполяция. Функции для поиска вторых производных.

    презентация [2,7 M], добавлен 29.09.2013

  • Примеры работы с линейной интерполяцией и её результаты в графическом виде. Алгоритм кубической сплайн-интерполяции. Используемые функции линейной, обобщенной, полиномиальной регрессии. Графические возможности программы MathCAD и редактирование графиков.

    презентация [2,7 M], добавлен 16.10.2013

  • Сущность теории приближений и характеристика интерполяции как процесса получения последовательности интерполирующих функций. Полиномы Эрмита и интерполирование с кратными узлами. Программная разработка приложения по оценке погрешности интерполирования.

    курсовая работа [1,1 M], добавлен 05.06.2014

  • Анализ существующих методов масштабирования изображений. Повышение скорости обработки и изменения картинок. Алгоритм масштабирования с использованием параллелизма. Отбор пикселей для правильного расчета градиента. Выбор метода интерполяции изображения.

    курсовая работа [5,8 M], добавлен 17.06.2017

  • Написание программы решения технических задач языком высокого уровня Си: определение мольной теплоемкости кислорода методом интерполяции. Построение математических моделей, графиков и таблиц по результатам расчетов, составление текста программы.

    курсовая работа [382,9 K], добавлен 19.05.2011

  • Исследование методов интерполяции функции и разработка программного продукта для автоматизации расчётов, выполняемых в данных методах. Обоснование выбора языка программирования. Требования к программе и программному изделию. Организация работы с ПЭВМ.

    дипломная работа [2,1 M], добавлен 16.06.2017

  • Сравнительная оценка существующих программ, повышающих разрешение изображений на языке Borland Delphi. Выбор оптимального инструментария для разработки логической схемы. Форма поиска файлов, преобразования изображений и реализации алгоритмов интерполяции.

    дипломная работа [3,0 M], добавлен 29.11.2011

  • Назначение и возможности пакета MATLAB, его основные составляющие. Набор вычислительных функций. Роль интерполяции функций в вычислительной математике. Пример интерполяции с четырьмя узлами. Интерполирование и сглаживание, схемы решения задач в MATLAB.

    курсовая работа [594,5 K], добавлен 28.12.2012

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

    лабораторная работа [205,1 K], добавлен 23.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.