- •Алгоритмы и методы вычислений
- •Содержание
- •Введение
- •1Лабораторная работа №1 основы и принципы работы с пакетом MathCad
- •1.1Основные приемы работы с пакетом мк
- •Работа с формульным редактором
- •Работа с клавиатурой
- •Особые комбинации клавиш
- •Работа с текстовым редактором
- •Работа с буфером обмена
- •Расположение блоков в документе
- •Работа со вставками – Insert
- •Работа с двумерными графиками
- •Основные типы трехмерных графиков
- •1.2Задание к выполнению работы
- •1.3Задание для самостоятельной работы
- •1.4Требования к отчету
- •2Лабораторная работа №2 приближенное решение алгебраических и дифференциальных уравнений
- •2.1Теоретические сведения
- •Функция поиска корня нелинейного уравнения – root
- •Директива Given для решения системы уравнений
- •Функции Find и Minerr для решения систем нелинейных уравнений
- •Решение дифференциальных уравнений
- •Метод Эйлера
- •Метод Рунге-Кутта
- •Функции решения дифференциальных уравнений
- •2.2Задание к выполнению работы
- •2.3Задание для самостоятельной работы
- •2.4Требования к отчету
- •3Лабораторная работа №3 статистический анализ экспериментальных данных
- •3.1Теоретические сведения
- •Анализ влияния факторов на исходный параметр
- •Статистическая обработка данных с помощью системы MathCad
- •Выполнение регрессии разного вида
- •3.2Задание к выполнению работы
- •3.3Задание для самостоятельной работы
- •3.4Варианты заданий
- •3.5Требования к отчету
- •4Лабораторная работа №4 поиск эестркмума функции при наличии ограничений
- •4.1Теоретические сведения
- •Метод множителей Лагранжа
- •Алгоритм метода поиска экстремумов целевой функции с заданными ограничениями
- •4.2Решение задач оптимизации средствами мк
- •Функции Maximize и Minimize
- •4.3Задание к выполнению работы
- •4.4Требования к отчету
- •5Лабораторная работа №5 графический метод решения задач линейного программирования
- •5.1Геометрическая интерпретация и графический метод решения задач линейного программирования
- •5.2Задание к выполнению работы
- •5.3Варианты заданий
- •5.4Требования к отчету
- •6Лабораторная работа №6 решения задач линейного программирования табличным симплекс-методом
- •6.1Теоретические сведения
- •Табличный симплекс-метод
- •Алгоритм табличного симплекс-метода
- •Условие вырожденности
- •Постановка, типы, свойства транспортных задач
- •Определение начального опорного плана
- •Алгоритм поиска оптимального плана задачи
- •6.2Задание к выполнению работы
- •6.3Задание для самостоятельной работы
- •6.4Варианты заданий
- •Табличный симплекс-метод
- •Транспортная задача
- •6.5Требования к отчету
- •Рекомендованная литература
Метод Рунге-Кутта
Пусть уk – приближенное значение решения при x = xk уже построено.
Найдем:
fk=f(xk,yk),
ak=f(xk+h/2,yk+fkh/2),
и за приближенное значение решения при х = хk+1 = xk + h примем:
yk+1 = yk + akh.
Рисунок 2.2 – Метод Рунге-Кутта
Геометрически это означает, что для построения звена Мk Мk+1 ломаной, аппроксимирующей интегральную кривую, сначала проводим через точку М отрезок Μk Μk+1, совпадающий с направлением fk поля в точке Мk (как это делалось в методе Эйлера). Вычисляем координаты точки Nk – середины этого отрезка:
(хк+h/2, yk+h/2),
и находим величину
ak=f(xk+h/2,yk+fkh/2).
Через точку Мk проводим отрмок Mk Mk+\ параллельно направлению поля в точке Nk. Ординату точки Mk+1 и принимаем за уk+1.
Этот метод будет точнее метода Эйлера, так как он учитывает поворот поля на интервале {xk, xk+1}.
Еще более точный результат получим, если вычисления проводить по схеме:
fk=f(xk,yk),
ak=f(xk+h/2,yk+fnh/2),
bk=f(xk+h/2,yk+anh/2),
gk=f(xk+h/2,yk+bnh),
yk+1=yk+1/6(fk+2ak+2bk+gk)h.
За исходную точку, как и раньше, берем точку m0(х0,y0). Выбрав шаг А, вычислим:
F0=f(x0,y0),
a0=f(x0+h/2,y0+f0h/2),
b0=f(x0+h/2,y0+a0h/2),
g0=f(x0+h/2,y0+b0h).
Находим
y1=y0+1/6(f0+2a0+2b0+g0)h.
Получили точку Μ1(x1, y1). Аналогично находим f1, a1, b1, g1 и вычисляем у2 и так далее.
Функции решения дифференциальных уравнений
Рассмотрим пример использования функции Rkfixed, предназначенной для поиска набора значений решения дифференциального уравнения методом Рунге-Кутта, встроенной в МК.
Синтаксис применения функций для решения данной задачи выглядит следующим образом:
Rkfixed(x,x1,x2,n,f) ,
где x – имя аргумента; x1,x2 – начало и конец интервала значений аргумента; n – число разбиений; f – имя функции, приравниваемой к недифференцируемой части уравнения.
На рисунке 2.1 представлен пример использования встроенной функции МК rkfixed, которая позволяет найти массив приближенных значений методом Рунге-Кутта.
Рисунок 2.3 – Фазовый портрет затухающих колебаний полученный методом Рунге-Кутта в МК
Frame и mu – параметры для вариации коэффициента затухания и носят частный характер.
2.2Задание к выполнению работы
Ознакомиться с инструментарием МК для нахождения корней алгебраических уравнений.
Найти корни указанного уравнения (как в численном виде, так и результирующую формулу вычисления корней) с помощью средств МК. Поиск корней следует выполнить с использованием функций: Root(), Find(), Monner().
Составить произвольную систему из нескольких уравнений и найти ее корни с помощью одной из указанных функций.
Построить график функции, соответствующей вашему уравнению и определить корни графическим путем. Сравнить результаты, полученные при использовании разных методов. Сделать выводы.
Найти средствами МК (функция rkfixed) массив точек функции, удовлетворяющей однородному дифференциальному уравнению, выбранному в соответствии с вашим вариантом.
Представить результаты в виде графика.
Составить отчет о проделанной работе.
