WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 4 | 5 ||

[y (x)] (%) Решим дифференциальное уравнение y = 2 - y. Запишем его под именем eqn:

--> eqn:diff(y,x)=2-y;

d y = (%) - y d x Для решения дифференциального уравнения используется командаode2().

Решение запишем под именемsol:

--> sol:ode2(eqn,y, x);

y = e-x (2 ex + %c) (%) Постоянную c можно найти, если даны начальные условия. Для этого есть командаic1(). Решение с начальными условиями (x = 0, y = 0) запишем под тем же именемsol:

--> sol:ic1(sol,x=0, y=0);

y = e-x (2 ex - 2) (%) Построим график полученной функции на отрезке x [0, 5]. Команда rhs(sol)выдает только правую часть выраженияsol(т.е. отбрасывает “y =”):

--> wxplot2d(rhs(sol),[x,0,5])$ 26.2. Решение дифференциального уравнения второго поряд ка. Для решения дифференциального уравнения второго порядка используется та же командаode2(). Две постоянные находятся из начальных условий (x = = x0, y = y0, y = y0) командойic2(). Приведем процесс решения уравнения y = y с начальными условиями y(0) = 2, y(0) = -1:

--> eqn:diff(y,x,2)=y;

dy = y (%) d x--> sol:ode2(eqn,y, x);

y = %k1 ex + %k2 e-x (%) --> sol:ic2(sol,x=0, y=2,diff(y,x)=-1);

ex 3 e-x y = + (%) 2 Строим график полученной функции:

--> wxplot2d(rhs(sol),[x,0,2])$ 26.3. Решение линейных дифференциальных уравнений и си стем с помощью преобразования Лапласа. Для решения линейного дифференциального уравнения (или системы линейных дифференциальных уравнений) можно использовать командуdesolve(). Предварительно необходи мо задать начальные условия с помощью командыatvalue(). Схему решения продемонстрируем на двух примерах.

Пример 1. Решить уравнение y + y = 6x + ex при начальных условиях y(0) = 1, y(0) = 2, y(0) = 3.

Задаем исходное уравнение под именемeqn:

--> eqn:diff(f(x),x,3)+diff(f(x),x,2)=6*x+exp(x);

Искомую функцию обозначаем какf(x). Заметим, что аргумент в скобках писать в данном случае обязательно. Теперь зададим начальные условия:

--> atvalue(f(x),x=0, 1);

--> atvalue(diff(f(x),x),x=0,2);

--> atvalue(diff(f(x),x,2),x=0, 3);

Далее, находимf(x)командойdesolve():

--> desolve(eqn,f(x));

ex 17e-x f(x) = + + x3 - 3x2 + 10x - (%) 2 Пример 2. Решить систему уравнений x = y - x + et, x(0) = a, y = x - y + et, y(0) = b.

Задаем уравнения:

--> eqn1: diff(x(t),t)=y(t)-x(t)+exp(t);

--> eqn2: diff(y(t),t)=x(t)-y(t)+exp(t);

И начальные условия:

--> atvalue(x(t),t=0, a);

--> atvalue(y(t),t=0, b);

Решаем систему:

--> desolve([eqn1,eqn2],[x(t),y(t)]);

(b - a) e-2 t b + a - [x (t) = et - +, (%) 2 (b - a) e-2 t b + a - y (t) = et + + ] 2 26.4. Задания к теме.

1. Решить уравнение y + xy = xy2 если y(0) = 2.

2. Решить уравнение yy + (y)2 = 0 при начальных условиях: y(0) = 2, y(0) = 1.

3. Решить уравнение y - 4y = 16x3 при начальных условиях: y(0) = 0, y(0) = 0, y(0) = 2.

Ответы: 1. y = ; 2. y = 2 x + 1; 3. y = e2 x + e-2 x - x4 - 3x2 - 2.

2-ex2/§ 27. Численное решение дифференциальных уравнений и систем Для численного решения дифференциальных уравнений и систем необходи мо предварительно загрузить пакетdynamics:

--> load(dynamics);

27.1. Численное решение ДУ первого порядка Численное инте грирование дифференциального уравнения методом Рунге – Кутта выполняется командойrk(). Предварительно дифференциальное уравнение необходимо за писать в виде y = f(x, y), то есть выразить производную в явном виде.

Численное решение рассмотрим на примере. Проинтегрируем уравнение y = 1 - 2y. Правую часть уравнения сохраним под именемeqn:

--> eqn:1-2*y;

Интегрирование проведем на отрезке от 0 до 3 с шагом 0.1 при начальном условии y(0) = 0. Результат запишем под именемpts:

--> pts:rk(eqn,y, 0, [x, 0, 3, 0.1]);

В результате получим 31 пару чисел [xi, yi]. Их можно изобразить в виде графика командойplot2dс опциейdiscrete:

--> wxplot2d([discrete,pts])$ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0 0.5 1 1.5 2 2.5 x 27.2. Численное решение систем дифференциальных уравне ний. Системы дифференциальных уравнений решаются с использованием той y же командыrk(). Уравнения, искомые переменные и начальные условия к ним перечисляются в квадратных скобках.

Пример. Решить систему x = x - xy, x(0) = 2, y = xy - y. y(0) = 1.

на отрезке t [0, 5].

--> eq1:x-x*y; eq2: -y+x*y;

--> pts:rk([eq1,eq2],[x,y], [2,1],[t,0,5,0.1]);

В набореptsзаписаны тройки чисел [ti, xi, yi]. Для того, чтобы построить графики функций x(t) и y(t) необходимо создать наборы пар чисел [ti, xi] и [ti, yi]. Для этого используется командаmakelist. Сохраним наборы таких пар чисел под именамиxtиyt:

--> xt: makelist([pts[i][1],pts[i][2]], i, 1, length(pts))$ --> yt: makelist([pts[i][1],pts[i][3]], i, 1, length(pts))$ Теперь построим оба графика на одном чертеже:

--> wxplot2d([[discrete,xt], [discrete,yt]])$ discretediscrete 1. 1. 1. 1. 0. 0. 0. 0 1 2 3 4 Можно построить график в фазовой плоскости. Для этого предварительно создадим набор пар точек [xi, yi] под именемyx:

--> yx: makelist([pts[i][2],pts[i][3]], i, 1, length(pts))$ --> wxplot2d([[discrete,yx]],[x,0,3],[y,0,3])$ 2. 1. 0. 0 0.5 1 1.5 2 2.5 x 27.3. Построение векторного поля направлений траекторий в фазовой плоскости. В случае системы из двух дифференциальных уравне ний первого порядка с помощью программы Maxima можно построить векторное поле направлений в фазовой плоскости. Это делается с использованием команды plotdf.

Возьмем ту же систему дифференциальных уравнений --> eq1:x-x*y; eq2: -y+x*y;

В фазовой плоскости нарисуем траекторию, начинающуюся в точке x = = 2, y = 1 в направлении роста t:

--> plotdf([eq1,eq2], [x,y], [x, 0, 3], [y, 0, 3], [trajectory_at,2, 1], [direction,forward])$ С использованием мыши в окне с графиком фазовой плоскости можно на рисовать и другие траектории.

Если в исходной система уравнений содержится один или несколько пара метров, можно проводить исследование влияния этих параметров на получаемые поля траекторий в фазовой плоскости.

y y 2.2.1.1.0.0.0 0.4 0.8 1.2 1.6 2 2.4 2.x Рассмотрим систему с двумя параметрами:

x = x - xy - ax2, y = xy - y - c.

--> eq1:x-x*y-a*x2;eq2:-y+x*y-c;

--> plotdf([eq1,eq2],[x,y],[x, 0, 3],[y, 0, 3], [sliders,"a=-1:1,c=-1:1"]);

В нижней части экрана с фазовой плоскостью появляется два бегунка, поз воляющие изменять значения параметров a и c.

27.4. Задания к теме 1. Проинтегрировать уравнение y = x sin y - 1 на отрезке x [0, 10] при начальном условии y(0) = 2.

2. Проинтегрировать систему на отрезке t [0, 15]:

x = x - xy - 0.1x2, x(0) = 2, y = -y + xy - 0.1y2, y(0) = 1.

§ 28. Основные команды программы Maxima Список основных математических функций Запись в Функция Описание Maxima abs(x) |x| модуль числа sqrt(x) x квадратный корень exp(x) ex экспонента log(x) ln x натуральный логарифм sin(x) sin x cos(x) cos x тригонометрические функ tan(x) tg x ции cot(x) ctg x asin(x) arcsin x acos(x) arccos x обратные тригонометриче atan(x) arctg x ские функции acot(x) arcctg x Команды преобразования выражений expand(выражение);– раскрытие скобок.

factor(выражение);– разбиение на множители.

ratsimp(выражение);

radcan(выражение); – упрощение выражения.

trigsimp(выражение);

Решение уравнений solve(f(x) = 0,x);– решение уравнения f(x) = 0.

solve([f(x, y)=0,g(x, y)=0],[x, y]);– решение системы уравнений.

find_root(f(x) = 0,x, xa, xb); – численное решение уравнения f(x) = 0 на отрезке x [xa, xb].

Построение графиков plot2d(f(x),[x,xa,xb], [y,ya,yb])$ – построение графика функции y = f(x) в прямоугольнике x [xa, xb], y [ya, yb].

plot2d([f(x),g(x)], [x,xa,xb])$– построение графиков двух функций y = f(x) и y = g(x) для x [xa, xb].

plot2d([discrete,pts])$– построение графика по набору пар чисел [xi, yi], записанных под именемpts.

plot3d(f(x, y),[x,xa,xb], [y,ya,yb], [z,za,zb])$ – построение по верхности z = f(x, y) для x [xa, xb], y [ya, yb], z [za, zb].

Математический анализ limit(f(x),x, xa);– нахождение предела f(x) при x xa.

diff(f(x),x);– нахождение производной функции f(x).

diff(f(x),x, k);– нахождение k-той производной f(x).

integrate(f(x),x);– нахождение интеграла от f(x).

integrate(f(x),x, xa, xb);– нахождение определенного интеграла от функции f(x) по отрезку [xa, xb].

quad_qags(f(x),x, xa, xb);– численное нахождение определенного ин теграла.

Дифференциальные уравнения sol:ode2(f(x, y,diff(y, x)) = 0, y, x); – нахождение решения sol дифференциального уравнения f(x, y, y) = 0.

ic1(sol,x=x0, y=y0);– нахождение постоянной в решенииsolиз на чального условия y(x0) = y0.

pts:rk(f(x, y),y, y0, [x,x0,x1,dx]);– численное решение уравнения y = f(x, y) на отрезке x [x0, x1] при условии y(x0) = y0. Решение записывает ся под именемptsи представляет собой набор пар чисел [xi, yi], где xi меняется с x0 до x1 с шагом dx.

Литература 1. Ахтямов А.М. Математика для социологов и экономистов. М.: Физматлит, 2004.

2. Минорский В.П. Сборник задач по высшей математике. М.: Изд-во физ.-мат. лит., 2006.

3. Стахин Н.А. Основы работы с системой аналитических (символьных) вы числений MAXIMA. М.:, 2008.

4. Ильина В.А., Силаев П.К. Система аналитических вычислений MAXIMA для физиков-теоретиков. М.: МГУ, 2007.

Pages:     | 1 |   ...   | 4 | 5 ||






© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.