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

  • Интерполяция сеточных функций полиномами

  • Вычмат8. ВЫЧМАТ8. Лабораторная работа 8 Интерполяция сеточных функций полиномами Выполнили студенты 2 курса, гр. 002201 Задорин Н. М гизатулин Г


    Скачать 49.78 Kb.
    НазваниеЛабораторная работа 8 Интерполяция сеточных функций полиномами Выполнили студенты 2 курса, гр. 002201 Задорин Н. М гизатулин Г
    АнкорВычмат8
    Дата27.01.2020
    Размер49.78 Kb.
    Формат файлаdocx
    Имя файлаВЫЧМАТ8.docx
    ТипЛабораторная работа
    #106001

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

    Факультет вычислительной техники и электроэнергетики

    Лабораторная работа №8

    «Интерполяция сеточных функций полиномами»

    Выполнили:

    студенты 2 курса, гр. 0022-01

    Задорин Н.М

    Гизатулин Г.

    Проверил: Трофимов В.М.

    г. Псков, 2019 г

    1. Теоретическая часть

    Интерполяция сеточных функций полиномами

    Простейшая задача интерполирования заключается в следующем. На отрезке [a,b] задано n+1 точек x0, x1, …, xn, которые называются узлами интерполяции, и значения некоторой функции (x) в этих точках:

    (x0) = y0, (x1) = y1, …, (xn) = yn, (8.1)

    Требуется построить функцию F(x) (интерполирующая функция), принадлежащую известному классу и принимающую в узлах интерполяции те же значения, что и (x). При использовании интерполяционной формулы Лагранжа функция F(x) является полиномом L(x) степени не выше n, который выражается следующей формулой:

    (8.2)

    или

    (8.3)

    Таким образом, для решения данной задачи необходимо организовать тройной циклический процесс, два цикла которого предназначены для вычисления одной точки полинома Ln(x).

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

    2.Постановка задачи



    вар




    Значения i

    Отрезок интерполирования

    0

    1

    2

    3

    4

    5

    6

    7

    xнач

    Xкон

    шаг

    3

    xi

    yi

    1.7

    5.7

    6

    6.4

    7.4

    6.5

    10.5

    4.2

    12.8

    2.1

    15

    5

    16.1

    9.8

    19.8

    16.6

    4

    18

    1

    3.Составление блок схемы.



    4.Составление программы.
    #include

    #include

    #include

    #include

    #include

    using namespace std;

    int main()

    {

    double x0 = 4, xn = 18, h = 1, p = 1, Ln, s = 0;

    double x[8] = { 1.7,6,7.4,10.5,12.8,15,16.1,19.8 };

    double y[8] = { 5.7,6.4,6.5,4.2,2.1,5,9.8,16.6 };

    while (x0 < 19)

    {

    s = 0;

    for (int i = 0; i < 8; ++i)

    {

    p = 1;

    for (int j = 0; j < 8; ++j)

    {

    if (i != j) { p *= ((x0 - x[j]) / (x[i] - x[j])); }

    }

    s += y[i] * p;

    }

    cout << fixed << setprecision(5) << "x = " << x0 << fixed << setprecision(7) << " Ln(x) = " << s << endl;

    x0 += h;

    }

    //return 0;

    system("pause");

    }

    5.Результат вычислений программы.

    x = 4.00000 Ln(x) = 5.2478811

    x = 5.00000 Ln(x) = 5.9257294

    x = 6.00000 Ln(x) = 6.4000000

    x = 7.00000 Ln(x) = 6.5451568

    x = 8.00000 Ln(x) = 6.3173286

    x = 9.00000 Ln(x) = 5.7081795

    x = 10.00000 Ln(x) = 4.7610647

    x = 11.00000 Ln(x) = 3.6185396

    x = 12.00000 Ln(x) = 2.5702923

    x = 13.00000 Ln(x) = 2.0705681

    x = 14.00000 Ln(x) = 2.6941551

    x = 15.00000 Ln(x) = 5.0000000

    x = 16.00000 Ln(x) = 9.2715232

    x = 17.00000 Ln(x) = 15.1027020

    x = 18.00000 Ln(x) = 20.7989916

    6.Результат вычислений в Mathcad.

    7.Вывод.

    Благодаря использованию интерполяционной формулы Лагранжа, для которой функция F(x) является полином Ln(x) степени не выше n, мы смогли вывести в виде таблицы значения функции f(x) для точек x с заданным шагом h, при известных значениях функции f(xi) в узлах xi.Вычисления, проведенные в Mathcad15, совпадают с вычислениями, полученными при работе написанной программы в пределах ℇ=10-7.


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