Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Лагранж.docx
Скачиваний:
99
Добавлен:
15.03.2016
Размер:
191.95 Кб
Скачать

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ

СООБЩЕНИЯ

КАФЕДРА «МЕХАТРОНИКА В АВТОМАТИЗИРОВАННЫХПРОИЗВОДСТВАХ»

КУРСОВОЙ ПРОЕКТ

По дисциплине «Теория и технология программирования»

На тему «Разработка ПО для интерполирования функций с помощью полиномов Лагранжа.»

Выполнил: Студент гр. САУ-21

Калашников И.В

Проверил доцент ф.м наук: Луканов А.С.

Самара 2015

Содержание

Введение ………………………………………………………………….3

  1. Анализ предметной области. Математическая постановка задачи…………………………………………………………………..4

  2. Техническое задание …………………………………………………7

  3. Алгоритм выполнения программы …………………………………10

  4. Блок-схема ……………………………………………………………11

  5. Листинг программы ………………………………………………….13

  6. Тестирование и отладка ПО…………………………………………..18

  7. Описание программы………………………………………………….21

  8. Руководство пользователя…………………………………………….23

  9. Заключение…………………………………………………………… 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) имеющей следующие значения:

Получим