Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

прога отчет5

.docx
Скачиваний:
0
Добавлен:
16.12.2024
Размер:
155.5 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

ИЯТШ ОЯТЦ

Отчет

по лабораторной работе №5

Задание значений переменным и массивам. Форматный ввод-вывод.

Работа с файлом

Выполнила студентка группы 0А23

Шевченко А.В.

Проверил преподаватель

Дериглазов А.А.

Томск-2022

Оглавление:

Цель работы 3

Задание 4

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

Ход работы 9

Цель работы

Ознакомиться с методом восстановления функциональных зависимостей – интерполяция. Научиться реализовывать данный метод программно на языке Си.

Задание

1) Получить номер варианта задания у преподавателя, ведущего лабораторные занятия.

2) Ознакомиться с заданием к лабораторной работе (файл Задания.doc).

3) Ознакомиться с учебно-методическими указаниями (файл Лаб_5.doc).

4) Составить алгоритм решения задачи согласно своему варианту.

5) Составить блок-схему алгоритма программы.

6) Набрать текст программы на языке Си при помощи текстового редактора.

7) Провести трансляцию и компоновку программы.

8) Решить контрольный пример.

9) Составить отчет по лабораторной работе в соответствии с правилами оформления отчета (файл Общие_указания_к_лабораторным_работам.doc).

Вариант 19

Составить программу интерполирования функции с использованием полинома Лагранжа.

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

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

В программе использовать динамическое выделение памяти для хранения данных.

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

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

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

При решении задачи в этом случае вместо функции оперируют с функцией Ф(x). Задача построения такой функции Ф(x) называется задачей интерполирования. Чаще всего интерполирующую функцию Ф(x) отыскивают в виде алгебраического полинома.

Интерполяционный полином

Для каждой функции , определенной на [a, b], и любого набора узлов x0, x1,....,xn( xi [a, b], xi xj при i j ) среди алгебраических многочленов степени не выше n существует единственный интерполяционный многочлен Ф(x), который может быть записан в форме:

(1)

где - многочлен n-ой степени, обладающий следующим свойством:

(2)

Для интерполяционного полинома многочлен имеет вид:

(3)

Многочлен (1) и решает задачу интерполирования и называется интерполяционным полиномом Лагранжа.

Интерполяционная формула Лагранжа

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

(4)

Запись полинома в виде (4) более удобна для программирования.

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

(5)

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

В этом случае, прежде чем реализовывать процедуру интерполяции согласно формуле (4.5), необходимо определить те узлы интерполяции, для которых справедливо условие (5). При этом следует помнить, что наименьшая погрешность достигается при нахождении значения x в центре области интерполяции. Для обеспечения этого предлагается следующая процедура:

После ввода в программу значения величины х необходимо проверить условие x0x xm, где x0 и xm – начальное и конечное значение узловых точек интерполяции.

При выполнения предыдущего условия начинается поиск области интерполяции, для чего находим первое xi такое, для которого выполняется условие xi > x, при этом номер i будет соответствовать середине интервала интерполяции. Для определения области интерполяции ее левая граница будет начинаться с номера , а заканчиваться узлом с номером .

После выполнения пунктов 1 и 2 программируется формула (4).

Основное назначение интерполяции – это вычисление значений табулированной функции для не узловых (промежуточных) значений аргумента, поэтому интерполяцию часто называют «искусством чтения таблиц между строками».

Ход работы

  1. Подключение заголовочных файлов, объявление переменных.

  2. Ввод узловых значений x0, x1… xn (максимальное число узлов m = 191); аргумента x = любому числу в промежутке между узлами и порядка восстанавливающего полинома n = 14 с терминала.

  3. Создание динамического массива массива.

  4. Работа с формулой полинома Лагранжа:

  1. Необходимо найти F(x) значение в некой точке x, которая находится в интервале узловых значений, опираясь на заданную функцию.

  2. Условие для повторения программы.

Рисунок 1 –Код

Рисунок 2 –Код

Рисунок 3 –Код

Рисунок 4 – Вывод значений

Вывод

Ознакомиться с методом восстановления функциональных зависимостей – интерполяция. Научиться реализовывать данный метод программно на языке Си.