Математическое моделирование и численные методы
Вычисления в электронных таблицах основаны на использовании следующих их возможностей:
обширной библиотеке функций;
работе с диаграммами;
возможности проведения оптимизационных расчетов.
Решение алгебраических уравнений
Решение алгебраических уравнений вида \(f(x)=0\) основано на графической интерпретации корня уравнения как точки пересечения графика функции \(f(x)\) с осью \(x\).
Для построения графика функции в электронной таблице требуется выполнить следующие этапы:
Ввести данные для построения ряда значений аргумента.
Построить ряд значений аргумента.
Построить ряд значений функции.
Построить диаграмму типа Точечная по рядам аргумента и значений функции.
Разберем последовательно каждый из этапов.
Введем обозначения: \(a\) - нижний предел аргумента, \(b\) - верхний предел, \(n\) - число точек. Тогда постановка задачи примет вид: найти все корни функции \(f(x)\), принадлежащие отрезку \([a, b]\). При этом число точек графика выбирается произвольно с учетом необходимости отобразить поведение функции на рассматриваемом отрезке. Обычно \(n\) кратно 10.
Для ввода данных для построения ряда значений аргумента нам требуется задать пределы изменения аргумента (электронная таблица строит график только на определенном отрезке по точкам) и число промежуточных точек. Все промежуточные точки выбираем равномерно, поэтому расстояние между ними равно \(h=\frac{b-a}{n}\). Таким образом получаем таблицу вида (разместим ее в ячейках A1:B4)
| a= | верхний предел |
| b= | нижний предел |
| n= | число точек |
| h= | =(B2-B1)/B3 |
Ряд значений аргумента образуют значения \(x_0, x_1=x_0+h, ..., x_n=x_{n-1}+h=b\). Легко заметить, что расстояние между любыми 2 данными точками равно \(h\) (имеется в ячейке B4), а первое значение совпадет с данными ячейки A1. Поэтому дополняем таблицу столбцом С с формулами: в ячейке C2 =A1, в ячейке C3 =С2+B$4. В ячейку А1 введем x=, а формулу из ячейки С3 скопируем вниз до строки с номером n+1.
Ряд значений функции (столбец D) формируется как результат вычисления функции от значения из передыдущего столбца. Поэтому достаточно ввести формулу в ячейку D2 (в D1 введем f(x)) и скопировать ее вниз до троки с номером n+1.
Таким образом, получаем следующий макет таблицы (многоточие означает копирование предыдущей строки).
| a= | нижний предел | x= | f(x) |
| b= | верхний предел | =A1 | формула относительно C1 |
| n= | число точек | =C2+B$4 | … |
| h= | =(B2-B1)/B3 | … | … |
Для записи формулы функции используются следующие правила строчной записи формул в Excel.
Для изменения приоритета операций используются круглые скобки.
Из вычислительных операций наибольшим приоритетом обладает умножение, остальные выполняются в том порядке, в котором записаны.
Дроби преобразуются к строчному виду. Числитель берется в скобки только если представляет собой сумму или разность, знаменатель - также в случае произведения.
Порядок действий в вычислениях выражений, содержащих тригонометрические функции или логарифмы, должен соответствовать порядку выполнения операций.
Запись имен функций должна соответствовать англоязычным стандартам, т.е. функции арксинус и тангенс запишутся как asin и tan соответственно.
Вычисление степени основания натурального логарифма производится с помощью функции exp.
Для постороения графика функции выделим заполненные ячейки столбцов C и D, на ленте Вставка выбираем команду Точечная. По полученному графику локализуем корни (при их наличии), записываем получившиеся значения в столбец С ниже таблицы, для каждого корня в столбце D вычислим значение функции. Для уточнения каждого корня используем команду Подбор параметра из группы Анализ “что-если” с ленты Данные. В появившемся окне в в каждом из полей ввода укажем: установить в ячейке ячейка со значениями функции из столбца D для одного из корней
Решение систем алгебраических уравнений
Система алгебраических уравнений имеет вид \(f_i(x_1,x_2,...,x_n)=0\), где \(x_i\) - переменные, \(f_i\) - функции, \(i=1...n\). Требуется найти значения \(x_i\), обеспечивающие выполнение системы равенств.
Главная сложность решения - локализация корней (множественных). Упростим задачу: требуется найти один из корней, вблизи некоторой точки. Тогда задачу можно переформулировать следующим образом. Имеется функция \(f_1(x_1,x_2,...,x_n)\), которую требуется приравнять к 0 при выполнениии условий \(f_i(x_1,x_2,...,x_n)=0\), где \(i=2...n\). Такая формулировка представляет собой задачу нелинейной оптимизации, которую можно решать в Excel с помощью надстройки Поиск решения. В терминах оптимизационных расчетов \(f_1(x_1,x_2,...,x_n)\) называют целевой функцией, а уравнения \(f_i(x_1,x_2,...,x_n)=0\), где \(i=2...n\) - ограничениями.
Сформулируем алгоритм такого решения.
Отведем блок ячеек для записи значений переменных. Заполним их начальными значениями переменных, тем самым задав начальную точку поиска.
В отдельную ячейку запишем формулу для целевой функции.
В отдельных ячейках записываем формулы для левой части каждого из ограничений.
Запускаем надстройку Поиск решения с ленты Данные. Если ее там нет, то подключаем через Файл | Параметры Excel| Надстройки, нажать кнопку Перейти рядом со списком Надстройки Excel, отметить в списке надстроек Поиск решения.

- После запуска надстройки получаем окно, в котором делаем следующие установки:
- Оптимизировать целевую ячейку - выбираем ячейку с формулой для целевой функции;
- До выбираем Значения 0;
- Изменяя значения переменных - выбираем ячейки для переменных (должны содержать числа или быть пустыми!);
- В соответствии с ограничениями нажимаем Добавить, Ссылки на ячейки устанавливаем на блок левых частей ограничений, знак ограничения устанавливаем =, Значения пишем 0. При необходимости оставляем выбранным флажок Сделать переменные без ограничений неотрицательными, для нелинейной целевой функции выбранный метод решения не изменяем.
- После запуска на исполнение система сообщит о возможности решения, а также установит подобранные значения в ячейках переменных.
Приближение функций
Если построить несколько графиков функций на одном и том же интервале, то можно заметить, что на отдельных участках некоторые из них совпадают. На рисунке представлены графики
fwv x<-seq(-1,1, by =0.1) y<-sin(x) y1<-0.845*x plot(x,y, type='l', col="red",xlab="x",ylab="функция") lines(x,y1, col="blue")}
функций \(y=\sin(x)\) и \(y=0,845x\) . Видно, что они близки друг к другу.
Если графики функций на некотором участке практически совпадают, то можно утверждать, что функции взаимозаменяемы на этом участке. Поэтому в расчетах можно использовать ту из них, которая более “удобна” - приближение.
Пример. Имеется ряд функций, определенные интегралы от которых вычисляются только приближенно, например, \[ \int_a^b\frac{dx}{\ln x}\]. Одним из методов является представление подынтегральной функции в виде суммы \[f(x)\approx\sum_{i=0}^n a_ix^i\] , тогда интеграл можно представить в виде полинома
\[ \int_a^bf(x)dx\approx\sum_{i=0}^n\frac{b^{n+1}-a^{n+1}}{n+1}\]. Главная сложность - определить значения \(n\) и коэффициентов \(a_i\) .
Microsoft Excel позволяет использовать в качестве приближения так называемые линии тренда, в том числе полиномиальные до \(n=5\).
Технология построения линии тренда.
Построить график функции.
Выделите диаграмму.
Щелкните значок “+” в правом верхнем углу диаграммы.
Выберите пункт Линия тренда.
4.В диалоговом окне Добавление линии тренда выберите нужные параметры рядов данных и нажмите кнопку ОК.
Для использования линии тренда в ее свойствах требуется отметить пункты Показывать уравнение на графике и Поместить на график величину достоверности аппроксимации (R^2). Если назначение первого пункта очевидно, то второй позволяет оценить качество приближения - чем ближе \(R^2\) к 1, тем лучше приближение. Для полинома качество приближения возрастает при увеличении \(n\).