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

Учебное пособие 800203

.pdf
Скачиваний:
10
Добавлен:
01.05.2022
Размер:
925.77 Кб
Скачать

и для интерполирования назад (начальной точкой выбрана xn )

Pn(x)= f(xn )+ f(xn-1,xn )(x-xn )+f(xn-2,xn-1,xn )(x-xn )(x-xn-1)+ (7.5) +...+ f(x0,x1,...,xn )(x-xn )(x-xn-1)...(x-x1).

Нумерация узлов при проведении расчетов по формуле Ньютона не имеет значения. Это позволяет легко добавлять новые узлы. Например, добавление одного узла xn+1 приводит к появлению в интерполяционном многочлене интерполирования вперед слагаемого вида

f(x0,x1,...,xn, xn+!)(x-x0)(x-x1)...(x-xn-1)(x-xn).

Рассмотрим теперь один из способов расчета коэффициентов многочлена (7.4) в программе. Заметим, что коэффициентами многочлена являются одно из значений функции в начальном узле f x0 , одна из разделенных разностей первого

порядка f x0,x1 , одна из разделенных разностей второго по-

рядка f x0,x1,x2 и т.д. Следовательно, остальные значения функции и разделенных разностей являются промежуточными данными. Пусть значения xk и fk расположены в одномер-

ных массивах из n элементов

x,y : array [0..n-1] of real;

Для хранения разделенных разностей первого порядка можно использовать элементы массива y[1]..y[n-1], так как хранимые в них значения используются только при вычислении разделенных разностей первого порядка и не являются коэффициентами многочлена Ньютона

For k:=1 to n-1 do y[k]:=(y[k]-y[k-1])/(x[k]-x[k-1]);

Разделенные разности второго порядка вычисляются на основе разделенных разностей первого порядка и хранятся в элементах массива y[2]..y[n-1]

120

For k:=2 to n-1 do y[k]:=(y[k]-y[k-1])/(x[k]-x[k-2]);

Разделенные разности порядка j вычисляются на основе разделенных разностей первого порядка j-1 и хранятся в элементах массива y[j]..y[n-1]

For k:=j to n-1 do y[k]:=(y[k]-y[k-1])/(x[k]-x[k-j]);

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

Вычисление значений интерполяционного многочлена при конкретных аргументах x наиболее экономично проводить по схеме Горнера, получаемой путем последовательного вынесения за скобки множителей (x - xi)

Pn(x) = f (x0)+(x- x0)[ f (x0,x1)+(x- x1)[ f (x0,x1,x2)+...+ +(x- xn-1) f (x0,x1,...,xn)]..].

Практические задания

1.На основе функции f x , заданной в Вашем варианте сформируйте узлы интерполяции xk a,b , fk f xk

2.Напишите программу построения интерполяционного многочлена Лагранжа.

3.Напишите программу построения интерполяционного многочлена Ньютона.

4.Постройте графики исходной функции f x и двух интерполяционных многочленов.

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

121

Варианты заданий

f(x)

[a,b]

f(x)

[a,b]

 

 

 

 

 

 

 

 

1.

e–x

[-1,1]

7.

ln x

[5,7]

2.

sin x

[- , ]

8.

arcsin x

[-0.5,0.5]

 

 

 

 

 

 

 

 

3.

cos x

[0,2 ]

9.

arctg x

[-1,2]

 

 

 

 

 

 

 

 

4.

ex

[- /2, /2]

10.

x3

[-2,2]

 

 

 

 

 

 

 

 

5.

(cos x)2

[0.3, 2 /3]

11.

1/x

[-3.-1]

 

 

 

 

 

 

 

 

6.

1/x2

[0.5,2]

12.

 

 

 

[0,9]

 

x

 

 

 

 

 

 

 

 

122

ЗАКЛЮЧЕНИЕ

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

Материал представлен в виде лабораторных работ. В первых четырех лабораторных работах рассмотрены общие вопросы программирования на языке Паскаль. Описаны принципы работы с интегрированной средой Free Pascal, приведено краткое описание языка, работы с массивами, программирования подпрограмм. Рассмотрены принципы хранения и обработки текстовых данных, программирования работы с устройствами персонального компьютера. Приведены рекомендации по построению пользовательского интерфейса.

Последние три лабораторные работы посвящены численным методам. Рассмотрены методы численного решения уравнений, интегрирования и интерполяции.

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

123

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

1.Абрамов В.Г. Введение в язык Паскаль: учеб пособие / В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова. М.: Наука. Гл. ред. физ.-мат. лит., 1988.

2.Марченко А.И. Программирование в среде Turbo Pascal / А.И. Марченко, Л.А. Марченко. 2-е изд. М.: Бином Универсал, 1997.

3.Епанешников А.Н. Программирование в среде

Turbo Pascal 7.0 / А.Н. Епанешников, В.Н. Епанешников.

3изд., стер. М.: Диалог-МИФИ, 1995.

4.Фаронов В.В. Turbo Pascal 7.0: практика программирования / В.В. Фаронов. 7-е изд., перераб. М.: Нолидж, 2001.

5.Немнюгин С.А. Turbo Pascal: учебник / С.А. Немнюгтн. СПб.: Питер, 2000.

6.Немнюгин С. А. Turbo Pascal: Практикум / С.А. Немнюгин. СПб.: Питер, 2000.

7.Меняев М.Ф. Информатика и основы программирования: учеб. пособие / М.Ф. Меняев. М.: Омега-Л, 2005.

124

ОГЛАВЛЕНИЕ

Введение………………………………………………….. 3 Лабораторная работа № 1. Программирование основных алгоритмических конструкций на языке Паскаль……….. 4 Лабораторная работа № 2. Работа с массивами………….. 29 Лабораторная работа № 3. Работа с текстом, файлами. Процедуры и функции……………………………………... 52 Лабораторная работа № 4. Работа с устройствами………. 72 Лабораторная работа № 5. Приближенной решение нелинейных уравнений……………………… 104 Лабораторная работа № 6. Методы численного интегрирования……………………………………………………… 113 Лабораторная работа № 7. Интерполирование алгебраическими многочленами…………………………………….. 117 Заключение…………………………………………………. 123 Библиографический список……………………………….. 124

125

Учебное издание

Корчагин Юрий Эдуардович Слинчук Светлана Александровна

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ:

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

В авторской редакции

Подписано к изданию 15.07.2016. Объем данных 950 Кб.

ФГБОУ ВО «Воронежский государственный технический университет»

394026 Воронеж, Московский просп., 14

126