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

Методы численного моделирования. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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:


,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]