Решение обыкновенных дифференциальных уравнений в excel

Обзор методов решения в Excel

Введение

Уравнение называется обыкновенным дифференциальным n-го порядка, если F определена и непрерывна в некоторой области и, во всяком случае, зависит от . Его решением является любая функция u(x), которая этому уравнению удовлетворяет при всех x в определённом конечном или бесконечном интервале. Дифференциальное уравнение, разрешенное относительно старшей производной имеет вид

Решением этого уравнения на интервале I=[a,b] называется функция u(x).

Решить дифференциальное уравнение у / =f(x,y) численным методом — это значит для заданной последовательности аргументов х0, х1…, хn и числа у0, не определяя функцию у=F(x), найти такие значения у1, у2,…, уn, что уi=F(xi)(i=1,2,…, n) и F(x0)=y0.

Таким образом, численные методы позволяют вместо нахождения функции y=F(x) (3) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk-xk-1 называется шагом интегрирования.

Метод Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции у(х). Он является сравнительно грубым и применяется в основном для ориентировочных расчетов. Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других методов.

Метод Эйлера для обыкновенных дифференциальных уравнений используется для решений многих задач естествознания в качестве математической модели. Например задачи электродинамики системы взаимодействующих тел (в модели материальных точек), задачи химической кинетики, электрических цепей. Ряд важных уравнений в частных производных в случаях, допускающих разделение переменных, приводит к задачам для обыкновенных дифференциальных уравнений – это, как правило, краевые задачи (задачи о собственных колебаниях упругих балок и пластин, определение спектра собственных значений энергии частицы в сферически симметричных полях и многое другое)

Обзор методов решения в Excel

1.1 Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка

Идея Рунге-Кута состоит в том, чтобы использовать метод неопределённых коэффициентов. Наиболее употребительным методом Рунге-Кутта решения уравнения первого порядка y’ = F(x,y) (1) является метод четвертого порядка, в котором вычисления производятся по формуле:

yk+1 = yk +(k1 +2k2 +2k3 +k4 )/6, (2)

k1 = Fk h = F(xk , yk )h

Рассмотрим задачу Коши для уравнений первого порядка на отрезке [a,b]:

, (4)

Разобьём промежуток [a,b] на N частей . Обозначим , где u(x) –точное решение задачи Коши, и через значения приближенного решения в точках . Существует 2 типа численных схем :

1. явные: ) (5)

2. неявные: (6)

Здесь F некоторая функция, связывающая приближения. В явных схемах приближенное значение в точке определяется через некоторое число k уже определённых приближенных значений. В неявных схемах определяется не рекурентным способом, как в явных схемах, а для его определения возникает уравнение, поскольку равенство (6) представляет из себя именно уравнение на . Явные схемы проще, однако зачастую неявные схемы предпочтительнее

1.3 Метод Эйлера

Решить дифференциальное уравнение у / =f(x,y) численным методом — это значит для заданной последовательности аргументов х0, х1…, хn и числа у0, не определяя функцию у=F(x), найти такие значения у1, у2,…, уn, что

Таким образом, численные методы позволяют вместо нахождения функции У=F(x) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk-xk-1 называется шагом интегрирования.

Метод Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции у(х). Он является сравнительно грубым и применяется в основном для ориентировочных расчетов. Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других методов.

Рассмотрим дифференциальное уравнение первого порядка (7) с начальным условием

Требуется найти решение уравнения (7) на отрезке [а,b].

Разобьем отрезок [a, b] на n равных частей и получим последовательность х0, х1, х2,…, хn, где xi=x0+ih (i=0,1,…, n), а h=(b-a)/n-шаг интегрирования.

В методе Эйлера приближенные значения у(хi)»yi вычисляются последовательно по формулам уi+hf(xi, yi) (i=0,1,2…).

При этом искомая интегральная кривая у=у(х), проходящая через точку М00, у0), заменяется ломаной М0М1М2… с вершинами Мi(xi, yi) (i=0,1,2,…); каждое звено МiMi+1 этой ломаной, называемой ломаной Эйлера, имеет направление, совпадающее с направлением той интегральной кривой уравнения (7), которая проходит через точку Мi. Если правая часть уравнения (7) в некотором прямоугольнике R<|x-x0|£a, |y-y0|£b>удовлетворяет условиям:

|df/dx|=|df/dx+f(df/dy)| £ M (M=const),

то имеет место следующая оценка погрешности:

где у(хn)-значение точного решения уравнения (7) при х=хn, а уn— приближенное значение, полученное на n-ом шаге.

Формула (13) имеет в основном теоретическое применение. На практике иногда оказывается более удобным двойной просчет: сначала расчет ведется с шагом h, затем шаг дробят и повторный расчет ведется с шагом h/2. Погрешность более точного значения уn * оценивается формулой

Метод Эйлера легко распространяется на системы дифференциальных уравнений и на дифференциальные уравнения высших порядков. Последние должны быть предварительно приведены к системе дифференциальных уравнений первого порядка.

1.4 Модифицированный метод Эйлера

Рассмотрим дифференциальное уравнение (7) y / =f(x,y) с начальным условием y(x0)=y0. Разобьем наш участок интегрирования на n равных частей. На малом участ интегральную кривую заменим прямой линией.

Рисунок 1 Метод Эйлера в графическом виде

Получаем точку Мккк). Через Мк проводим касательную:

Получаем точку Nk / . В этой точке строим следующую касательную:

Из точки Мк проводим прямую с угловым коэффициентом αк и определяем точку пересечения этой прямой с прямой Хк1. Получаем точку Мк / . В качестве ук+1 принимаем ординату точки Мк / . Тогда:

(14)-рекурентные формулы метода Эйлера.

Сначала вычисляют вспомогательные значения искомой функции ук+1/2 в точках хк+1/2, затем находят значение правой части уравнения (11) в средней точке y / k+1/2=f(xk+1/2, yk+1/2) и определяют ук+1.

Для оценки погрешности в точке хк проводят вычисления ук с шагом h, затем с шагом 2h и берут 1/3 разницы этих значений:

где у(х)-точное решение дифференциального уравнения.

Таким образом, методом Эйлера можно решать уравнения любых порядков. Например, чтобы решить уравнение второго порядка y // =f(y / ,y,x) c начальными условиями y / (x0)=y / 0, y(x0)=y0, выполняется замена

Тем самым преобразуются начальные условия

1.5 Практическая часть

Здесь решается уравнение dy/dx = 2x-y+x 2 на интервале [0,2], начальное значение y(0)=0, для оценки точности задано также точное решение в виде функции u(x)=x 2 . Оценка погрешности делается в нормеL1, как и принято в данном случае

Численное решение дифференциальных уравнений в excel

Pers.narod.ru. Обучение. Excel: Решение обыкновенных дифференциальных уравнений (задача Коши)

Решение обыкновенных дифференциальных уравнений (ОДУ) — популярный раздел численных методов, немного теории можно почитать здесь.

В приведённом примере решается задача Коши, то есть, ищется решение дифференциального уравнения первого порядка вида dy/dx = f(x,y) на интервале x ∈ [x0,xn] при условии y(x0)=y0 и равномерном шаге сетки по x .

Решение выполняется методами Эйлера, «предиктор-корректор» (он же модифицированный метод Эйлера) и методом Рунге-Кутта 4 порядка точности. Пример может служить образцом для Ваших решений, правда, функцию придётся перепрограммировать несколько раз при различных значениях аргумента — поскольку без применения макросов на VBA Excel не позволяет создать полноценную функцию, которую было бы удобно вызывать с разными значениями аргументов.

Здесь решается уравнение dy/dx = 2x-y+x 2 на интервале [0,2] , начальное значение y(0)=0 , для оценки точности задано также точное решение в виде функции u(x)=x 2 . Оценка погрешности делается в норме L1 , как и принято в данном случае.

Скачать пример в Excel XP/2003 (28 Кб)

Рунге-Кутта VBA EXCEL

Решение дифференциальных уравнений первого порядка
методом Рунге-Кутта.

Данный проект VBA позволяет решать дифференциальные уравнения первого порядка одним из численных методов, а именно, методом Рунге-Кутта.

Исходные данные:

  • границы интервала a и b;
  • шаг интегрирования h;
  • начальное значение для решения y(a), позволяющее правильно определить константу…

вводятся в соответствующие ячейки столбца «J».

И самое главное (самая ответственная часть) необходимо без ошибок ввести формулу в ячейку «D3». Эта формула получается из заданного уравнения и представляет функцию, являющуюся производной от решения. Ее параметрами может быть как только х (т.е. ячейка «D4»), так и х совместно с у (т.е. ячейкой «D5»). На рисунке показан пример ввода формулы для заданного уравнения…
В ячейки «D4» и «D5» вводить ничего не нужно… Туда значения будет подставлять макрос…

Если не удалось запустить видео, воспользуйтесь этой ссылкой . видео на YouTube

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

Графики должны быть построены на заданном Вами интервале (на рисунке от -0,4 до 1,25)…
В каждой точке, где производная (график синего цвета) пересекает ось , функция решения(красная) должна иметь экстремум (максимум или минимум)…
Если терпением Вы не отличаетесь, то не задавайте очень длинный интервал и/или очень мелкий шаг…

Подсказка:
Собственно, процедура заполнения массивов х и у по методу Рунге-Кутта будет выглядеть так:
(при этом глобальная переменная D3formula предварительно инициализируется: D3formula = Range(«D3»).Formula)

Private Function func(x As Double, y As Double) As Double ‘производная
Dim f As String
‘функция вычисляется по формуле, введенной пользователем в ячейку D3 (гед D4 — это x, D5 — это y)
f = Replace(D3formula, «D4», CStr(x))
f = Replace(f, «D5», CStr(y))
Range(«D3»).FormulaLocal = f
func = Range(«D3»)
End Function

Sub MethodRungeKutta()
‘вспомогательные переменные
Dim k1 As Double, k2 As Double, k3 As Double, k4 As Double
Dim i As Integer

For i = 1 To n ‘нулевые значения уже есть

x(i) = x(0) + i * h
k1 = func(x(i — 1), y(i — 1))
k2 = func(x(i — 1) + h / 2, y(i — 1) + k1 * h / 2)
k3 = func(x(i — 1) + h / 2, y(i — 1) + k2 * h / 2)
k4 = func(x(i), y(i — 1) + k3 * h)

y(i) = y(i — 1) + h / 6 * (k1 + 2 * k2 + 2 * k3 + k4) ‘значения вычисляются
p(i — 1) = k1 ‘сохранение в массив для графика

Чтобы на диаграмме отобразились рассчитанные графики, производится заполнение соответствующих диапазонов в столбцах «AA-AB-AC»… Можете сравнить результаты с этим табличным вариантом.

источники:

http://pers.narod.ru/study/excel_odu.html

http://orenstudent.ru/RungeKuttaVBA_change_formula.htm

Решение обыкновенных дифференциальных уравнений (ОДУ) — популярный раздел численных методов, немного теории можно почитать здесь.

В приведённом примере решается задача Коши, то есть, ищется решение дифференциального уравнения первого порядка вида dy/dx = f(x,y) на интервале x ∈ [x0,xn] при условии y(x0)=y0 и равномерном шаге сетки по x.

Решение выполняется методами Эйлера, «предиктор-корректор» (он же модифицированный метод Эйлера) и методом Рунге-Кутта 4 порядка точности. Пример может служить образцом для Ваших решений, правда, функцию придётся перепрограммировать несколько раз при различных значениях аргумента — поскольку без применения макросов на VBA Excel не позволяет создать полноценную функцию, которую было бы удобно вызывать с разными значениями аргументов.

Здесь решается уравнение dy/dx = 2x-y+x2 на интервале [0,2], начальное значение y(0)=0, для оценки точности задано также точное решение в виде функции u(x)=x2.
Оценка погрешности делается в норме L1, как и принято в данном случае.

Решение обыкновенных дифференциальных уравнений в Excel

 Скачать пример в Excel XP/2003 (28 Кб)

Рейтинг@Mail.ru

Hosted by uCoz

Использование
дифференциальные уравнений находит
широкое применение для компьютерного
моделирования динамических процессов
в автоматизированных системах управления,
в механике, других математических
моделях. Практическое применение в
различных областях науки и техники
находят как обыкновенные дифференциальные
уравнения, так и уравнения в частных
производных. Ниже будет рассмотрен
пример решения обыкновенных дифференциальных
уравнений с заданными начальными
условиями, то есть для таких уравнений
значения функции и ее производных до
n-1
порядка являются известными при Х=0. Для
обыкновенных дифференциальных
уравнений,как правило, решается задача
Коши, то есть задаются уравнения вида
y=f
(x,y)
с начальными условиями x0,
y0
при x0
≤ x
≤ xкон.

Численное решение
таких уравнений заключается в разбиении
интервала х точками xi
с шагом h
для i=1,2,…n
и нахождении значений yi
по формуле
yi
= yi-1
+ ∆yi,
где ∆yi

— приращение
переменной у на каждом шаге.

Формула данного
приращения определяется выбранным
численным методом, Для метода Эйлера
∆yi
=
h∙f(xi,yi),
а в инженерных методах (Рунге-Кутта и
других) она записывается более сложным
образом. При этом уравнение 2-го и более
высоких порядков предварительно должны
быть сведены к нормальной системе
обыкновенных дифференциальных уравнений
1-го порядка. Так уравнение y»=xy’
+y2
с начальными условиями x0
=0, y0
=3, y’
=1 преобразуется к системе двух уравнений
1-го порядка:

y1′
=y2,
y2′
=xy2
+ y12

с начальными
условиями y10
= 3, y20
= 1.

Один из вариантов
решения этой системы обыкновенных
дифференциальных уравнений на интервале
(0, 1) с шагом 0, 1 методом Эйлера приведен
на рис.4.47.

Рис.4.47. Решение
дифференциального уравнения

В столбце А создан
диапазон изменения аргумента х от 0 до
1 с шагом 0, 1. Столбец В содержит вычисленные
по формуле Эйлера значения Y1(=B2
+ 0,1*C2),
столбец С – значения Y2
(=C2
+ 0,1*(A2*C2+B2^2)).

Графики изменения
функций Y1(х)
и Y2(х)
представлены на диаграмме.

4.8.9. Финансовые вычисления в Excel

Для выполнения
различных финансовых вычислений Excel
содержит группу финансовых функций,
реализуемых с помощью Мастера функций.
Они включают такие функции как: вычисление
амортизации активов, ставку доходности
по вкладу, вычисление процентов за
определенный инвестиционный период и
многие другие. Ниже рассмотрим примеры
реализации некоторых финансовых
функций.

Расчет амортизационных отчислений

Для расчета
амортизационных отчислений необходимо
знать три основных параметра:

  • начальная стоимость
    имущества;

  • остаточная
    стоимость имущества — стоимость в конце
    периода амортизации, иногда называемая
    остаточной стоимостью имущества после
    завершения эксплуатации;

  • время эксплуатации
    — количество периодов, в течение которых
    имущество амортизируется, иногда
    называемые периодами амортизации.

Для расчета
амортизационных отчислений могут быть
использованы различные подходы и способы
и в зависимости от этого могут быть
применены и различные финансовые
функции. В наиболее простом подходе
амортизация распределяется равномерно
на каждый год эксплуатации имущества
и для расчета величины амортизационных
отчислений используют функцию АПЛ,
которая имеет следующий синтаксис:
АПЛ(А;В;С), где:

  • А — начальная
    стоимость имущества;

  • В — остаточная
    стоимость имущества;

  • С — продолжительность
    эксплуатации.

Рассмотрим пример
расчета амортизационных отчислений.
Пусть имеется приобретенное имущество
стоимостью 400000 руб., продолжительность
его эксплуатации составляет 8 лет, а
остаточная стоимость равняется 50000 руб.
Величина амортизационных отчислений
составит 43,500 руб. за каждый год эксплуатации

Рис.4.48. Вычисление
амортизационных отчислений

Соседние файлы в папке Информатика

  • #
  • #
  • #
  • #
  • #
  • #

Like this post? Please share to your friends:
  • Решение образец скачать в word
  • Решение нелинейных уравнений методом хорд в excel
  • Решение нелинейных уравнений методом касательных в excel
  • Решение нелинейных уравнений методом итераций в excel
  • Решение нелинейных уравнений метод половинного деления excel