Главная страница
Навигация по странице:

  • З А Д А Н И Е

  • 2. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ

  • Курсовая интерполяция полей. Курсовая Леша. Построенние интерполяционного многочлена


    Скачать 0.63 Mb.
    НазваниеПостроенние интерполяционного многочлена
    АнкорКурсовая интерполяция полей
    Дата28.10.2022
    Размер0.63 Mb.
    Формат файлаdocx
    Имя файлаКурсовая Леша.docx
    ТипКурсовая
    #759319

    МИНОБРНАУКИ РОССИИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «Тульский государственный университет»
    Институт прикладной математики и компьютерных наук
    Кафедра вычислительной техники

    Курсовая работа по дисциплине

    ЧИСЛИННЫЕ МЕТОДЫ

    на тему: ПОСТРОЕННИЕ ИНТЕРПОЛЯЦИОННОГО МНОГОЧЛЕНА


    Студент группы . _________

    (Ф.И.О.) (подпись, дата)
    Руководитель работы _________

    (Ф.И.О., должность) (подпись, дата)
    Комиссия: ________________________

    ________________________

    ________________________

    Тула 2022

    МИНОБРНАУКИ РОССИИ

    ФГБОУ ВО «Тульский государственный университет»

    Институт прикладной математики и компьютерных наук

    Кафедра «Вычислительная техника»

    З А Д А Н И Е
    На курсовой проект (курсовую работу) по дисциплине (наименование дисциплины указать полностью) ____________________________________________________________

    _____________________________________________________________________________

    студенту(ке) группы ____________ Ф.И.О. студента ________________________________

    _____________________________________________________________________________

    Тема проекта (работы) _________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    Входные данные _____________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    Задание получил ___________________ «______» __________________20____г.

    (подпись студента)

    Срок предоставления задания «______» ________________________ 20____г.

    Руководитель ___________________ ___________________________________________

    (подпись) (расшифровка подписи)

    «__» ______________________ 20___г.

    К защите. Руководитель _________________ _____________________________________

    (подпись) (расшифровка подписи)
    Замечания руководителя _______________________________________________________

    __________________________________________________________________________________________________________________________________________________________

    «____» _________________________ 20___г.

    При защите курсового проекта (работы) наличие рецензии обязательно.

    СОДЕРЖАНИЕ


    ВВЕДЕНИЕ



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

    Целью работы является закреплением теоретических знаний по курсу «Численные методы» и изучением различных методов интерполяции.

    Задачи работы:

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

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

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

    1. ЗАДАНИЕ
    Построить интерполяционные многочлены n-ой степени для функции, заданной таблично на интервале [a, b] с шагом h, используя интерполяционный многочлен Бесселя и интерполяционный многочлен Стирлинга, для функции . Построить график для исходной функции.

    2. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ
    Интерполяционные многочлены Стирлинга и Бесселя:

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

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

    Пусть точка х* расположена вблизи некоторого узла, который обозначим . Требуется построить интерполяционный многочлен четной степени. В качестве узлов интерполирования следует выбрать сетку, симметричную относительно узла :
    (1)
    Для представления интерполяционных многочленов Стирлинга и Бесселя используют центральные конечные разности и средние арифметические соседних конечных разностей одного и того же порядка .

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

    Первого порядка:

    или ;

    k-ого порядка ; (2)

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

    На сетке можно получить интерполяционный многочлен Бесселя, обычно обозначаемый :
    (5)
    Итак, рассмотрено два интерполяционных многочлена: многочлен Стирлинга, который используется при построении многочлена четной степени и строится по нечетному числу узлов, и многочлен Бесселя, который используется при построении многочлена нечетной степени и строится по четному числу узлов.

    Если же степень многочлена фиксирована не жестко, т.е. может быть, как четной, так и нечетно, то целесообразно использовать многочлен Стирлинга в случае, когда
    , (6)
    т.е. когда точка интерполирования расположена ближе к узлу , чем к середине между узлами. Многочлен Бесселя следует использовать в случае, когда
    , (7)
    т.е. когда точка интерполирования расположена ближе к середине между узлами и . Одно из условий (6) или (7) всегда может быть обеспечено выбором соответствующего узла в качестве .

    3. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ




    3.1 Входные данные


    Для вычисления интерполяционного многочлена Стирлинга и Бесселя используются следующие переменные:

    • double X* - искомое точка на отрезке интерполяции в textbox1;

    • double a,b – нижняя и верхняя граница отрезка исследуемой функции в textBox2 и textBox3 соответственно;

    • int n – количество заданных точек на отрезке в textBox4;

    • int S – степень многочлена в textBox5.



    3.2 Выходные данные


    По итогу выполнения программы на выход идут следующие элементы:

    - double Stirling – значение функции в точке X*, полученное при помощи полинома Стирлинга;

    - double Bassel - значение функции в точке X*, полученное при помощи полинома Бесселя;

    - long timeSt – время подсчета полинома Стирлинга;

    - long timeBs – время подсчета полинома Бесселя.

    4. АЛГОРИТМЫ ПОСТРОЕНИЯ ИНТЕРПОЛЯЦИОННЫХ МНОГОЧЛЕНОВ



    Алгоритм представлен в виде блок-схем:

    1. Блок-схема 1 - конструктора класса Function, находящий узел , и строящий конечные разности k-того порядка и подсчитывающий значения функции в промежутке от до , где n – степень многочлена;

    2. Блок-схема 2 – метода EndDifference(int n) функция, вычисляющая конечные разности k-того порядка.

    3. Блок-схема 3 – метода Factorial(int a)- функция, вычисляющая факториал от a.

    4. Блок-схема 4 - метода Stirling()функция, вычисляющая значение в точки при помощи интерполяционного полинома Стирлинга.

    5. Блок-схема 5 – метода Bessel()функция, вычисляющая значение в точки при помощи интерполяционного полинома Бесселя.



    Блок-схема 1 – Конструктора класса Function



    Блок-схема 2 – Метода EndDifference



    Блок-схема 3 – Метода Factorial



    Блок-схема 4 – Метода Stirling



    Блок-схема 5 – Метода Bessel

    5. ОПИСАНИЕ ОСНОВНЫХ ФУНКЦИЙ ПРОГРАММЫ



    Программа содержит следующие основные функции:

    public Function (double a, double b, int n, double xisc, int stepen)- конструктор класса Function, находящий узел , и строящий конечные разности k-того порядка и подсчитывающий значения функции в промежутке от до , где n – степень многочлена.

    public void EndDifference(int n) - функция, вычисляющая конечные разности k-того порядка.

    ulong Factorial(int a) – функция, вычисляющая факториал от a.

    public double Stirling()- функция, вычисляющая значение в точки при помощи интерполяционного полинома Стирлинга.

    public double Bessel()- функция, вычисляющая значение в точки при помощи интерполяционного полинома Бесселя.

    private void Interpolation_Click(object sender, EventArgs e) – функция, вызывающая подсчет многочленов в точке и выводящая результат в таблицу.

    Для начала заполняются поля входные данные описанные в пункте 3 в textBox. Далее, при нажатии кнопки вызывается метод private void Interpolation_Click(object sender, EventArgs e), который сначала запускает поиск значения в точке при обоих интерполяционных многочленов. Далее происходит заполнения таблицы точных значений и построение графика по точкам, данным в диапазоне (точное значение функции) и точкам, посчитанным с помощью интерполяционных многочленов Стирлинга и Бесселя.

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

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

    После построения нового диапазона значений строим конечные разности и запускаем алгоритм Стирлинга и Бесселя, описанных в пункте 2.

    6. РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ



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

    С помощью кнопки «Пример» у нас заполняются наши textBoxы уже заготовленными данными. После нажатия кнопки «Интерполировать» мы выводим таблицу значений X и Y в dataGridView1, график интерполяции многочлена Бесселя, интерполяционный многочлен Стирлинга и график первоначальной функции выводится в chart1, значение интерполяции Y в dataGridView2.

    Исходная функция cо степенью многочлена равной трем, результат программы представлен на рисунке 1.


    Рисунок 1 – Результат программы со степенью три
    Исходная функция cо степенью многочлена равной семи, результат программы представлен на рисунке 2


    Рисунок 2 – Результат программы со степенью семь

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


    Рисунок 3 – Результат программы со степенью десять

    7. ПРОВЕРКА КОРРЕКТНОСТИ РАБОТЫ ПРОГРАММЫ



    Мы должны проверить корректность работоспособности программы. Для этого мы, используя формулы подставляем наши значения, получаем ответ и сравниваем его с ответом программы. Начнем с полинома Стирлинга. Формула Стирлинга (4). Возьмем точку X= 4,3 с диапазоном от 0 до 7 с шагом 1, тогда = 4 ,поскольку 4,3 ближе к 4. Посчитаем коэффициент t:



    Затем построим конечную разность функции. Конечная разность представлена на таблице 1:

    Таблица 1 – Конечная разность

    x

    y













    1

    0,00002

    0,41398

    -0,0959

    0,0459

    -0,0279

    0,0199

    -0,0179

    2

    0.414

    0.318

    -0.05

    0.018

    -0.008

    0,002




    3

    0.732

    0.268

    -0.032

    0.01

    -0.006







    4

    1

    0.236

    -0.022

    0.004










    5

    1.236

    0.214

    -0.018













    6

    1.45

    0.196
















    7

    1.646



















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



    Результат, получившийся ручным путём, хоть и имеет не большую погрешность и является сходным с программным. Программа работает корректно.

    Теперь надо проверить следующий полином, полином Бесселя. У нас уже есть посчитанный коэффициент t=0.3 и посчитанная конечная разность в таблице 1. Теперь мы можем сразу в формулу (5) подставить наши значения и выяснить корректность роботы полинома Бесселя. Считаем значение в точке:



    Результат, получившийся ручным путём, хоть и имеет не большую погрешность и является сходным с программным. Программа работает корректно.

    8. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ИНТЕРПОЛЯЦИОННЫХ МНОГОЧЛЕНОВ



    Для сравнительного анализа проведем эксперимент.

    За исходные данные возьмем 3 варианта: с малой степенью, со средней и высокой. В процессе будем засекать время работы программы, без операции ввода исходных данных.

    Результаты сравнительного анализа сведем в таблицу 2.

    Таблица 2 – Сравнительный анализ




    Исходные данные 1

    (3 степень)

    Исходные данные 2

    (7 степень)

    Исходные данные 3

    (10 степень)

    ИМC

    ИМБ

    ИМС

    ИМБ

    ИМС

    ИМБ

    Точность

    X = 13

    Y = 2,6

    X = 14

    Y = 2,7

    X = 15

    Y = 2,8

    X = 16

    Y = 3

    X = 17

    Y = 3,1


    X = 13

    Y = 2,6

    X = 14

    Y = 2,7

    X = 15

    Y = 2,8

    X = 16

    Y = 3

    X = 17

    Y = 3,1


    X = 13

    Y = 2,6

    X = 14

    Y = 2,7

    X = 15

    Y = 2,8

    X = 16

    Y = 3

    X = 17

    Y = 3,1


    X = 13

    Y = 2,6

    X = 14

    Y = 2,7

    X = 15

    Y = 2,8

    X = 16

    Y = 3

    X = 17

    Y = 3,1


    X = 13

    Y = 2,6

    X = 14

    Y = 2,7

    X = 15

    Y = 2,8

    X = 16

    Y = 3

    X = 17

    Y = 3,1



    X = 13

    Y = 2,6

    X = 14

    Y = 2,7

    X = 15

    Y = 2,8

    X = 16

    Y = 3

    X = 17

    Y = 3,1


    Время

    0 сек.

    0 сек.

    0 сек.

    0 сек.

    0 сек.

    0 сек.

    Вывод

    2,92968838

    2,92968045

    2,92968838

    2,92968045

    2,92968838

    2,92968045

    Погрешность

    1,8%

    0,0002%

    1,8%

    0,0002%

    1,8%

    0,0002%

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

    ЗАКЛЮЧЕНИЕ



    В ходе курсовой работы мной были закреплены теоретические знания по курсу «Численные методы» и получены практические навыки построения интерполяционного многочлена с заданными характеристиками. В ходе выполнения данной работы были подробно изучены два интерполяционных многочлена, Стирлинга и Бесселя.

    Было реализовано программное обеспечение на языке высокого уровня С# с использованием интегрированной среды разработки программ MS Visual Studio 2019. для интерполяции функции, заданной таблично.

    БИБЛИОГРАФИЧЕСКИЙ СПИСОК





    1. Полное руководство по языку программирования С#. [Электронный ресурс] - URL: https://metanit.com/ (дата обращения 06.05.2022).

    2. Уроки программирования с нуля. [Электронный ресурс] - URL: http://mycsharp.ru/ (дата обращения 09.052022).

    3. C Sharp [Электронный ресурс] - URL: https://ru.wikipedia.org/ (дата обращения 12.05.2022).

    4. Программирование, NET: [Электронный ресурс] - URL: https://habr.com/ (дата обращения 15.05.2022).

    5. Документация по C# [Электронный ресурс] - URL: https://docs.microsoft.com/ (дата обращения 22.05.2022).

    6. Справочник - А.А. Гусак, В.М. Гусак [Электронный ресурс] – URL: https://matica.org.ua/metodichki-i-knigi-po-matematike/spravochnik-a-a-gusak-v-m-gusak (дата обращения 29.05.2022)

    7. ГОСТ 28397-89 Языки программирования. Термины и определения.

    8. ГОСТ 19.504 – 79 Руководство программиста. Требования к содержанию и оформлению.

    9. ГОСТ 19.404 – 79 Единая система программной документации. Пояснительная записка. Требования к содержанию и оформлению


    ПРИЛОЖЕНИЕ



    написать администратору сайта