Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы численного моделирования. Учебно-методическое пособие
.pdf
11
Л а б о р а т о р н а я р а б о т а 1
В Ы Ч И С Л Е Н И Е З Н А Ч Е Н И Я Ф У Н К Ц И И П У Т Е М
Р А З Л О Ж Е Н И Я Е Е В Р Я Д
Цель работы: формирование представления об источнике погрешности численного метода.
Используемые численные методы строятся на замене бесконечных процессов, пределами которых являются искомые величины, конечной последовательностью действий. Так, например, значение некоторой функции может быть вычислено как сумма членов бесконечного
ряда. Если в ряду взять конечное число членов и принять их сумму за
значение функции, то в этом случае, естественно, будет допущена погрешность, которая заложена в самом методе. Данная погрешность является регулируемой, т. е., с увеличением количества членов ряда, снижается погрешность метода.
Часто для вычисления некоторой функции используют разложение
этой функции в бесконечный ряд. Например, функцию
можно
представить в виде ряда Маклорена:
где
– общий член ряда;
– остаточный член ряда.
Поскольку ряд сходится, т. е. остаточный член при увеличении
значения n стремится к нулю, то функцию
можно аппроксими-
ровать многочленом n-й степени или конечной суммой вида
если
где ε – заданная точность вычисления.
Алгоритм вычисления конечной суммы зависит от вида общего
члена ряда. Для рядов, требующих вычисления для каждого члена
ряда факториалов и возведение аргумента в степени высших порядков,
используют рекуррентные соотношения, т. е. выражают последующий член ряда через предыдущий.

12
Составим рекуррентную формулу для нашего ряда:
где – n-й член ряда (n = 0, 1, 2, …);
– (n +1 )-й член ряда.
Выразим (n +1 )-й член через n-й:
Пусть Тогда все последующие члены ряда можно вычис-
лить по полученной рекуррентной формуле:
Задача. Вычислить значения функции при заданных значениях ар-
гумента, используя ее разложение в бесконечный ряд.
1) Вычислить конечную сумму членов ряда (20 членов) в ячейках
таблицы Excel:
– в табличном процессоре Excel на Листе1 создать таблицу согласно образцу (рис. 1);
– в ячейку В3 занести первое значение аргумента, в ячейки А8,
С8 – номер члена ряда (нулевой или первый в зависимости от ряда)
и соответствующий член ряда, в ячейку В8 – формулу общего члена
ряда и скопировать ее в ячейки В9:В27, в ячейку С9 – рекуррентную
формулу (предварительно ее необходимо вывести) и скопировать ее
в ячейки С10:С27. В ячейках В28 и С28 подсчитать сумму двадцати
членов ряда. В ячейке D28 вычислить значение функции, которую раскладывали в ряд;
– в ячейку А35 занести первое значение аргумента, в ячейку А36 –
формулу для вычисления следующего значения аргумента, скопировать формулу вниз до достижения последнего значения аргумента;
– скопировать значения ячеек В28 и С28 в ячейки В35 и С35 соответственно;
– в ячейку В3 занести следующее значение аргумента, скопировать новые значения ячеек В28 и С28 в ячейки, соответствующие текущему значению аргумента;

13
– выполнить предыдущий пункт для всех значений аргумента в заданном интервале;
– в ячейке F35 вычислить значение заданной функции, скопировать формулу для всех значений аргумента.
Рис. 1. Образец расчетной таблицы
2) Составить программу для вычисления конечной суммы ряда по
формуле общего члена ряда и по рекуррентной формуле. Вычисление
конечных сумм для различных значений аргумента функции х и количества членов ряда n представляет собой задачу с двумя вложенными
циклами. Внутренний цикл – вычисление суммы n членов ряда для фик-
сированного значения аргумента х, внешний цикл – изменение аргумента х в заданном интервале:
– на листе Модуля ввести текст программы:
Sub konechnye_symmy()
Dim …’описать все переменные
Rem решение задачи с использованием формулы общего члена
ряда

14
Rem ‘i номера строки ячейки таблицы Excel, в которую нужно
поместить значение суммы ряда для первого значения аргумента, j1 – номер столбца таблицы Excel, в который нужно
помещать решение с вычислением члена ряда по формуле общего члена
i = … : j1 = …
Rem – внешний цикл: изменение значения аргумента
For x =… To … Step …
factorial = 1 ‘переменная для накопления факториала
Rem накопление суммы членов ряда для текущего значения аргумента
S1 = 0 ‘S1 – переменная, в которой будет накапливаться
сумма при решении по формуле общего члена, начальное значение равно нулю
Rem внутренний цикл: вычисление суммы 20 членов ряда для
текущего значения х
For n= … To …
If n><0 then factorial = factorial*n
an= … ‘вычисление n-го члена ряда по формуле общего члена
S1 = S1 + an
Next
WorkSheets(“Лист1”).Cells(i, j1).Value = S1
i = i+1
Next
Rem решение задачи с использованием рекуррентной формулы
j2 = … ‘j2 – номер столбца таблицы Excel, в который нужно
помещать решение с вычислением члена ряда по рекуррентной
формуле
Rem внешний цикл: изменение значения аргумента
For x =… To … Step …
Rem накопление суммы членов ряда для текущего значения аргумента
S2 = 0 ‘S2 – переменная, в которой будет накапливаться сумма
при решении по рекуррентной формуле, начальное значение
равно нулю
Rem внутренний цикл: вычисление суммы 20 членов ряда для
текущего значения x
an = … ‘присвоить переменной an значение начального члена
ряда

For n = … To …
аn = … ‘вычисление n-го члена ряда по рекуррентной формуле
S2 = S2 + an
Next
WorkSheets(“Лист1”).Cells(i, j2).Value = S2
i = i+1
Next
End Sub
– запустить и отладить программу;
– на Листе1 создать кнопку для запуска программы;
– сравнить результаты вычислений.
3) Составить программу для заполнения ячеек А35:С45 соответствующими значениями:
– на листе модуля ввести текст программы:
Sub zapolnenie()
Dim …’описать все переменные
i = … ‘номер заполняемой строки
Rem цикл для изменения значения аргумента
For x = … To … Step …
Rem текущее значение аргумента необходимо поместить в заполняемую строку столбца А
… = …
Rem текущее значение аргумента необходимо поместить
в ячейку B3 (аргумент, для которого вычисляется сумма членов ряда)
… =…
Rem сумму членов ряда, вычисленную для текущего значения
аргумента, из ячеек В28 и С28 записать в столбцы B и C заполняемой строки
WorkSheets(“…”).Cells(…,…).Value= WorkSheets(“…”).
Range(“…”).Value
WorkSheets(“…”).Cells(…,…).Value= WorkSheets(“…”).
Range(“…”).Value
Rem изменить номер заполняемой строки
i = …
Next
– запустить и отладить программу;
– на рабочем листе с расчетом создать кнопку для запуска данной
программы.
15

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

П Р И Б Л И Ж Е Н И Е Ф У Н К Ц И Й
В практической деятельности постоянно возникает необходимость выявления форм связи в процессах и явлениях и их математического описания. Форма связи, для которой величина у, характеризующая процесс, зависит от совокупности не связанных между собой вели-
чин так, что каждому набору (
) соответ-
ствует единственное значение величины у, называется функциональной
зависимостью и записывается как . Если вели-
чина есть функция одной независимой переменной х, то эту связь
можно представить соотношением вида .
Известны три способа задания функциональных зависимостей:
аналитический, графический, табличный.
Наиболее удобным является аналитический способ, так как он
прямо указывает действия и их последовательность выполнения над независимой переменной х для получения соответствующего значения ве-
личины у.
Достоинством аналитического способа является возможность получать значения у для любого значения аргумента х с любой точностью.
Кроме того, аналитическое выражение отражает сущность связи в процессах и явлениях.
Недостатки аналитического способа:
– часто аналитическое выражение функции является
слишком сложным и неудобным для дальнейших математических преобразований;
– требует существенных затрат времени вычислений на компьютере, что связано с большим количеством вычислений, особенно если
функция задана громоздким выражением, содержащим тригонометрические, степенные и другие функции, факториалы и т. п.;
– не обладает наглядностью.
В экономике, технике, физике, естествознании широко распространен табличный способ задания функций (чаще всего возникает
в результате наблюдения или эксперимента).
Достоинством табличного способа является возможность сразу
же, без измерений и вычислений найти значение функции для каждого значения независимой переменной х, помещенного в таблицу.
17

18
Недостатки табличного способа:
– нельзя задать всю функцию непрерывно, всегда есть такие значения аргумента х, которых нет в таблице. В экономике и технике постоянно приходится сталкиваться с необходимостью вычисления зна-
чений функции в точках х, отличных от фиксированных в таб-
лице;
– хранение таблицы
в памяти компьютера при
большом числе n может оказаться обременительным либо вообще невозможным.
На практике часто прибегают к замене некоторой функции, заданной аналитически или таблично, другой функцией, близкой к исходной,
но более простой и удобной для вычислений. Такая задача называется
приближением функций. Здесь функция, которую заменяют, называется
приближаемой, а функция, на которую заменяют, – приближающей.
При постановке задачи приближения нужно ответить на четыре
вопроса:
1) Какие узлы мы будем использовать? Узлы – это точки, значение
функции в которых известно (определено в таблице или вычислено
с помощью аналитического выражения функции). Необходимо выбрать
такие узлы для построения приближающей функции, чтобы погрешность (разница между значениями исходной и приближающей функций
в промежутках между узлами) была минимальна.
2) Какой класс приближающих функций мы будем использовать?
Ответ зависит от вида приближаемой функции и целей, для которых
в дальнейшем будет использоваться приближающая функция. Широко
используются следующие классы функций: многочлены, тригонометрические функции, показательные функции и др.
3) Какой критерий согласия (близости исходной и приближающей
функции) мы применим? В качестве критерия согласия можно выбрать:
– точное совпадение приближаемой и приближающей функций
в узловых точках. Такая задача называется интерполяцией или лагранжевой интерполяцией (рис. 2а);
– минимум суммы квадратов отклонений приближаемой и приближающей функций в узловых точках. Такая задача называется ап-
проксимацией (рис. 2б);
– уменьшение максимального отклонения приближаемой и приближающей функций до минимума (многочлены Чебышева).

19
а
б
Рис. 2. Приближение функции, заданной узлами таблицы:
а – интерполяция; б – аппроксимация
4) Какую точность мы хотим получить? То есть с какой степе-
нью точности получим значения функции в промежутках между узлами.
И н т е р п о л и р о в а н и е и э к с т р а п о л и р о в а н и е
Пусть на отрезке задано дискретное множество несовпадающих
точек хi, которые будем называть узлами, и в которых известны значе-
ния функции (всего (n + 1) узел). Требуется найти ана-
литическое выражение φ(х) приближающей функции, совпадающей
в узлах интерполяции со значениями заданной (приближаемой) функции, т. е. должно выполняться равенство φ(хi) = f (xi) = yi, i = 0,1, … , n.
Процесс вычисления значений функции в точках х, отличных от
узлов интерполяции, называют интерполированием функции f(x). Если
аргумент х, для которого определяется приближенное значение функции, принадлежит заданному отрезку [x0, xn], то задача называется ин-
терполированием в узком смысле. Если аргумент х находится за преде-
лами отрезка интерполирования [x0, xn], то задача называется экстра-
полированием.
Геометрически задача интерполирования для функции одной пе-
ременной означает построение кривой, проходящей через
точки плоскости с координатами (х0; у0), (х1; у1), …, (хn, yn). (рис. 2а).
Часто в качестве приближающей функции применяют полиномы (многочлены) некоторой степени. Основой для применения многочленов

20
в качестве приближений к непрерывным функциям является свойство
полноты многочленов в классе непрерывных функций, выражаемое
теоремой Вейерштрасса:
Если f(x) – непрерывная на отрезке [a, b] функция, то для любого
ε > 0 можно указать такой многочлен Р(х), что
при
всех значениях х из [a, b].
Кроме того, полиномы являются функциями простой природы.
Чтобы вычислить значение полинома, нужно выполнить конечное
число арифметических операций.
Если интерполируемая функция f(x) – периодическая, то приближающую функцию выбирают из класса тригонометрических. Очевидно, что через данные точки можно провести бесконечное множество
различных кривых.
Таким образом, задача отыскания функции f(x) по конечному
числу (n + 1) ее значений слишком неопределенная. Эта задача становится однозначной, если в качестве приближающей функции выбрать
полином (многочлен) степени не выше n, удовлетворяющий условиям
Р
n(x0
) = y0, Pn(x1) = y1, …, Pn(xn) = yn.
В случае когда приближающая функция φ(х) выбирается в классе
степенных функций, интерполяция называется параболической.
Этот способ приближения основывается на том, что на небольших отрезках функция f(x) может быть достаточно хорошо аппроксимирована
полиномом второго, третьего и высших порядков.
Интерполяция полиномом. В случае интерполяции полиномом
приближающую функцию ищем в виде полинома степени n:
,
где ai (i = 0, 1, …, n) – неизвестные постоянные коэффициенты, которые
необходимо найти таким образом, чтобы в узлах интерполяции полином принимал значения Рn(x0) = y0, Pn(x1) = y1, …, Pn(xn) = yn.
Теорема. Для любых значений f(xi) и xi различных узлов xi (i = 0,
1, …, n) существует единственный интерполяционный полином n-й сте-
пени.
Так как мы имеем (n + 1) узел интерполяции, то можем записать
систему из (n + 1) уравнений с (n + 1) неизвестными а0, а1, …, аn:
,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
