
- •Введение
- •1.Анализ предметной области. Интерполяция функция с помощью полиномов Лагранжа.
- •2.Техническое задание
- •Краткая характеристика области применения
- •Организация, утвердившая документ
- •3.Требование к программному продукту
- •Требования к составу и параметрам технических средств
- •Требования к информационной и программной совместимости Программа должна работать под операционной системой Microsoft Windows xp и выше. Требования к программной документации
- •Стадии и этапы разработки
- •Алгоритм решения задачи
- •Листинг программы
- •Заключение
МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ
СООБЩЕНИЯ
КАФЕДРА «МЕХАТРОНИКА В АВТОМАТИЗИРОВАННЫХПРОИЗВОДСТВАХ»
КУРСОВОЙ ПРОЕКТ
По дисциплине «Теория и технология программирования»
На тему «Разработка ПО для интерполирования функций с помощью полиномов Лагранжа.»
Выполнил: Студент гр. САУ-21
Калашников И.В
Проверил доцент ф.м наук: Луканов А.С.
Самара 2015
Содержание
Введение ………………………………………………………………….3
-
Анализ предметной области. Математическая постановка задачи…………………………………………………………………..4
-
Техническое задание …………………………………………………7
-
Алгоритм выполнения программы …………………………………10
-
Блок-схема ……………………………………………………………11
-
Листинг программы ………………………………………………….13
-
Тестирование и отладка ПО…………………………………………..18
-
Описание программы………………………………………………….21
-
Руководство пользователя…………………………………………….23
-
Заключение…………………………………………………………… 25
Список используемой литературы ……………………………………..26
Введение
Данная курсовая работа выполнена на языке программирования высокого уровня С++ с использованием компилятора Microsoft Visual Studio 2013. Этот язык был разработан в начале 80-х годов в Bell Laboratories. С++ - расширение С, т.е. он обеспечивает кардинальное преимущество языка С++, как над своим предшественником языком С так и над другими языками высокого уровня: поддержка объектно-ориентированного программирования, перегруженных операций и возможность разработки полномасштабных windows -приложений. Можно сказать, что язык С++ является одним из совершенных и сложных языков программирования на сегодняшний день.
С помощью языка С++ можно решать всевозможные задачи ставящиеся перед современным программистом: написание системных программ, разработка полноценных windows-приложений, объектное моделирование. Благодаря тому, что язык С++ первоначально разрабатывался как язык системного программирования, то он предоставляет программисту широкие возможности для работы с аппаратурой. Но так как язык С++ подвергся полномасштабной обработки, то он обеспечивает пользователя широким набором средств для решения задач объектно-ориентированного программирования, благодаря этому язык С++ позволяет осуществить интеграцию принципов объектно-ориентированного программирования на аппаратный уровень.
В данной курсовой работе была реализовано создание класса и его дальнейшее использование в программном продукте для интерполирования функции с помощью полинома Лагранжа
1.Анализ предметной области. Интерполяция функция с помощью полиномов Лагранжа.
Интерполяция, интерполирование — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.
Многим из тех, кто сталкивается с научными и инженерными расчётами, часто приходится оперировать наборами значений, полученных опытным путём или методом случайной выборки. Как правило, на основании этих наборов требуется построить функцию, на которую могли бы с высокой точностью попадать другие получаемые значения. Такая задача называется аппроксимацией. Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных.
Рассмотрим
систему несовпадающих точек (
)
из некоторой области
.
Пусть значения функции
известны
только в этих точках:
Задача
интерполяции состоит в поиске такой
функции из
заданного класса функций, что
-
Точки
называют узлами интерполяции, а их совокупность — интерполяционной сеткой.
-
Пары
называют точками данных или базовыми точками.
-
Разность между «соседними» значениями
— шагом интерполяционной сетки. Он может быть как переменным, так и постоянным.
-
Функцию
— интерполирующей функцией или интерполянтом.
Интерполяционный многочлен Лагранжа — многочлен минимальной степени, принимающий данные значения в данном наборе точек. Для n+1 пар чисел (x0, y0), (x1, y1),…, (xn, yn), где все xj различны, существует единственный многочлен L(x) степени не более n, для которого L(xj) = yj.
В простейшем случае (n=1) — это линейный многочлен, график которого — прямая, проходящая через две заданные точки.
Лагранж предложил способ вычисления таких многочленов:
где базисные полиномы определяются по формуле:
li(x) обладают следующими свойствами:
-
являются многочленами степени n
-
li(xi) = 1
-
li(xj) = 0 при j ≠ i
Отсюда следует, что L(x), как линейная комбинация li(x), может иметь степень не больше n, и L(xi) = yi.
Пример
Найдем формулу интерполяции для f(x) = tan(x) имеющей следующие значения:
Получим