Как построить фазовый портрет в maple

Корпорация "Центр"

Построение фазового портрета

Доброго времени суток! Мне нужно построить фазовый портрет такого дифференциального уравнения в maple:
d 2 *x(t)/dt 2 +k*x(t) = 0
Я делаю это таким способом:

with(DEtools); DEplot(eval(df1, k = 2), x(t), t = -10 .. 10, x = -10 .. 10, number = 1, [x(0) = 1, (D(x))(0) = 0])

Но получаю такую ошибку:
Error, (in DEtools/DEplot/CheckDE) derivatives must be given explicitly

Я, правда, не могу понять в чём проблема, я всё сделал как в help и всё равно у меня вылезает эта ошибка. буду благодарен за помощь!

Построение фазового портрета
Очень нужна помощь! Нужно составить программу для построения фазового портрета модели Мальтуса. .

Ошибка при построении фазового портрета
restart; with(DEtools); sys := diff(x(t), t) = y, diff(y(t), t) = sin(x); DEplot(, , t = 0.

Построение фазового портрета
Здравствуйте, уважаемые форумчане. Столкнулась со следующей проблемой: преподаватель задал.

Построение фазового портрета
Необходимо построить фазовый портрет на графике траектории рисуются с множеством кружочков, как их.

Внастоящее время в связи с бурным развитием компьютерных технологий широкое применение получили специализированные математические пакеты программ, такие, как Ax

Для дифференциального уравнения порядка выше первого команда DEplot представляет только кривые решений дифференциальных уравнений, а для систем дифференциальных уравнений первого порядка могут быть изображены и фазовые портреты.

С помощью команды DEplot можно построить фазовый портрет в плоскости ( x , y ), для системы двух дифференциальных уравнений: , если в параметрах данной команды указать scene=[x,y].

Если система дифференциальных уравнений является автономной, то на фазовом портрете будет отображено поле направлений в виде стрелок. Размер стрелок регулируется параметром arrows = SMALL , MEDIUM , LARGE , LINE или NONE .

Для того чтобы отобразить весь фазовый портрет, необходимо для каждой фазовой траектории указывать начальные условия: например, для системы двух дифференциальных уравнений первого порядка несколько начальных условий в команде DEplots указываются после задания диапазона изменения независимой переменной t: [[x(0)=x1, y(0)=y1], [x(0)=x2, y(0)=y2],…, [x(0)=xn, y(0)=yn]].

Начальные условия можно задавать в более компактной форме: [ t 0, x 0, y 0] , где t 0  точка, в которой задаются начальные условия; x 0 и y 0  значения искомых функций в точке t 0 .

Фазовый портрет системы двух дифференциальных уравнений первого порядка можно также построить с помощью команды phaseportrait ( sys , [ x , y ], x 1.. x 2,[[ cond ]]) , где sys  система двух дифференциальных уравнений первого порядка; [ x , y ]  имена искомых функций, x 1.. x 2  интервал, на котором следует построить фазовый портрет, а в фигурных скобках указываются начальные условия. Эта команда находится в пакете DEtools , поэтому данный пакет должен быть предварительно загружен.

Построить фазовый портрет системы дифференциальных уравнений: для нескольких наборов начальных условий (рис.7.7): х(0)=1, у(0)=0.2; х(0)=0, у(0)=1; х(0)=1, у(0)=0.4; х(0)=1, у(0)=0.75; х(0)=0, у(0)=1.5; х(0)=  0.1, у(0)=0.7.

[> restart; with(D Е tools):

Рис. 7.7. Фазовый портрет системы дифференциальных уравнений для нескольких наборов начальных условий

Построить фазовый портрет системы дифференциальных уравнений: . Начальные условия, диапазон изменения переменной и размеры координатных осей подбираются из соображений наглядности фазового портрета (рис. 7.8).

[> restart; with(D Е tools):

[[0,1,-2], [0,-3,-3], [0,-2,4], [0,5,5], [0,5,-3],[0,-5,2], [0,5,2], [0,-1,2]], x=-30..30, y=-20..20, stepsize=.1, colour=blue, linecolor=black);

Рис. 7.8. Фазовый портрет системы дифференциальных уравнений

8. ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ, ВЕКТОРНЫЙ АНАЛИЗ, РЯДЫ, ИНТЕГРАЛЬНЫЕ ПРЕОБРАЗОВАНИЯ

8.1. Дифференциальное исчисление функций многих переменных

Большинство задач дифференциального и интегрального исчисления функций многих переменных решается в Maple с помощью тех же команд, что и для функций одной переменной, только с указанием дополнительных опций.

8.1.1. Частные производные

Для вычисления частных производных функции f(x 1 ,…, x m ) используется команда:

где x1,…, xm – переменные, по которым производится дифференцирование, а после знака $ задается соответствующий порядок дифференцирования. Например, частная производная будет задана в виде: diff(f,x,y).

Найти и функции .

[> f := arctan ( x / y ):

Найти все частные производные 2-го порядка функции .

8.1.2. Локальные и условные экстремумы функций многих переменных

Для исследования функции нескольких пременных на локальный и условный экстремум используется команда из стандартной библиотеки extrema(f,,,’s’) , где cond – ограничения для поиска условного экстремума, которые записываются в виде неравенств или равенств. После ограничений в фигурных скобках указываются все переменные, от которых зависит функция f , а затем в кавычках записывается s – имя переменной, которой будут присвоены координаты точек экстремума. Для поиска локального экстремума множество задается пустым <> .

Отметим, что команда extrema выдает все критические точки, т.е. и те, в которых экстремума нет. Отсеять недающие экстремума критические точки можно с помощью подстановки этих точек в функцию, с использованием команды subs .

Как и для функции одной переменной, наибольшее и наименьшее значения функции нескольких переменных можно найти командами

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

Если требуется найти переменные, при которых линейная функция многих переменных имеет максимум (или минимум) при наложении ограничений, заданных в виде линейных равенств или неравенств нужно использовать симплекс-метод. Для этого необходимо загрузить пакет simplex , а затем воспользоваться командой maximize (или minimize ), где в качестве range в фигурных скобках указывают ограничения.

Пакет simplex предназначен для решения задач линейной оптимизации. После его загрузки команды maximize и minimize выдают координаты точек, при которых заданная линейная функция имеет максимум или минимум. Для поиска неотрицательных решений используется команда NONNEGATIVE .

Найти экстремумы функции .

Получилось два экстремума, поэтому очевидно, что f max =0 и f min =  9/8, причем максимум достигается в точке (0,0). Остальные критические точки следует проверить. В силу четности функции по обеим переменным, можно ограничиться проверкой критических точек с положительными координатами.

Таким образом, функция имеет локальные экстремумы: f max = f (0,0)=0 и f min = f = f =9/8.

Найти наибольшее и наименьшее значения функции в прямоугольнике x = 0, y = 0, x = 1, y = 2.

Замечание: заданную область удобнее записывать в виде неравенств: 0 x 1, 0 y 2.

[> restart: readlib(maximize): readlib(minimize):

Таким образом, функция имеет наибольшее значение f max =17 и наименьшее значение f min =  4.

Найти условные экстремумы функции f ( х , у, z ) = xy + yz при x 2 + y 2 = 2, y + z = 2, x > 0, y > 0, z > 0.

[>restart: readlib(extrema): f:=x*y+y*z:

Несмотря на предварительное использование команды упрощения выражения simplify , полученный результат имеет не аналитический вид, однако это можно исправить, если воспользоваться командой convert .

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

Таким образом, функция имеет следующие условные экстремумы: f max = f (1,1,1) = 2 и f min = f (1,1,1) = 0; третья критическая точка является седловой.

При каких значениях переменных функция f ( x , y , z ) =  x + 2 y + 3 z имеет максимум, если требуется выполнение условий x + 2 y  3 z  4, 5 x  6 y + 7 z  8, 9 x + 10 z  11, а все переменные неотрицательные?

Warning, new definition for maximize

Warning, new definition for minimize

8.2. Интегральное исчисление функций многих переменных

В Maple имеются две специальные команды для вычисления двойных и тройных интегралов из библиотеки student .

Для вычисления двойных интегралов используется команда Doubleint(f(x, y), D), где D – область интегрирования, записываемая в одном из следующих форматов:

Корпорация "Центр"

– x=х1..х2, y=y1..y2 , где числа х1, х2, y1, y2 задают прямоугольную область интегрирования;

– x=f1(y)..f2(y), y=y1..y2 , где f1(y), f2(y)  линии, ограничивающие область интегрирования слева и справа на интервале от y1 до y2 ;

– x=х1..х2, y=g1(x)..g2(x) , где g1(y), g2(y)  линии, ограничивающие область интегрирования снизу и сверху на интервале от х1 до х2 .

Для вычисления тройных интегралов используется команда Tripleint(f(x, y, z),x, y, z, V), где V – область интегрирования.

Обе эти команды являются командами отложенного действия. Чтобы получить значение интеграла, следует использовать команду value(%).

Повторные интегралы можно вычислять с помощью повторения команды int , например, повторный интеграл вычисляется командой

Вычислить повторный интеграл

[> Int ( Int ( y ^3/( x ^2+ y ^2), x =0.. y ), y =2..4)=

Вычислить двойной интеграл по области, ограниченной линиями .

Замечание: вначале графически изобразим область интегрирования D (рис. 8.1.).

Warning, the name changecoords has been redefined

Рис. 8.1. Область интегрирования D , изображенная графически (красный треугольник)

Представим область интегрирования в виде неравенств:

Вычислить тройной интеграл .

Замечание: следует помнить, что порядок интегрирования определяется последовательностью пределов, поэтому сначала указываются внутренние пределы.

8.3. Векторный анализ

Основные дифференциальные операции векторного анализа и команды Maple для их вычисления, содержатся в библиотеке linalg .

Градиент скалярной функции f(x,y,z) – это вектор, координатами которого являются частные производные по соответствующим переменным: . В Maple вычисляется командой grad(f,[x,y,z], c ) , где f – функция, [x,y,z] – набор переменных, от которых она зависит.

Опция с позволяет вычислять данную дифференциальную операцию в различных криволинейных координатах (по умолчанию используется прямоугольная декартова система координат). Этот параметр может указываться во всех имеющихся в Maple дифференциальных операциях. Для вычисления дифференциальной операции в цилиндрических координатах следует записать coords = cylindrical , в сферических координатах – coords = spherical .

Лапласиан скалярной функции f(x,y,z) – это оператор, действующий на функцию f ( x , y , z ) по следующему правилу: . Он вычисляется командой laplacian(f,[x,y,z],опция) .

Дивергенцией вектор-функции F(x,y,z) называется функция (скалярная), вычисляемая по правилу: . Дивергенция в Maple вычисляется командой diverge(F,[x,y,z],опция), где F – вектор-функция; [x,y,z] – набор переменных, от которых она зависит.

Ротором вектор-функции F(x,y,z) называется вектор с координатами: . Ротор вычисляется командой curl(F,[x,y,z], c ).

Для вектор-функции F(x,y,z) можно вычислить матрицу Якоби

с помощью команды jacobian(F,[x,y,z]).

Дана функция . Найти . Определить углы, которые составляют с осями координат. Найти производную функции u(x,y) по направлению вектора q=[1,1].

Warning, new definition for norm

Warning, new definition for trace

[>u:=arctan(y/x): g:=simplify(grad(u, [x, y]));

[> alpha:=simplify(angle(g, [1, 0]));

[> beta:=simplify(angle(g, [0, 1]));

Косинусы полученных углов являются направляющими косинусами . Легко убедиться, что сумма их квадратов равна единице.

Производная функции u по направлению q равна скалярному произведению градиента этой функции на нормированный вектор q : , где  нормированный вектор q .

Дана вектор-функция F(x,y,z)=. Найти и .

[> divF:=diverge(F, [x, y, z]);

При каком значении параметра а функция u = x 3 + axy 2 удовлетворяет уравнению Лапласа  u=0 ?

 (x 3 +axy 2 ):=6x+2ax

Доказать, что функция , где удовлетворяет дифференциальному уравнению , k  постоянная.

[> Delta(u):=simplify(laplacian(u, [r, theta, phi], coords=spherical));

Найти матрицу Якоби и ее определитель вектор-функция v =[ x , y / x ].

[> v:=vector([x, y/x]): jacobian(v, [x, y]);

8.4. Ряды и произведения

8.4.1. Вычисление суммы ряда и произведений

Конечные и бесконечные суммы вычисляются командой прямого исполнения sum и отложенного исполнения Sum . Форматы этих команд одинаковы: sum(expr, n=a..b) , где expr – выражение, зависящее от индекса суммирования; a..b – пределы индекса суммирования, указывающие, что суммировать следует от n=a до n=b .

Если требуется вычислить сумму бесконечного ряда, то в качестве верхнего предела вводится infinity .

Аналогичным образом вычисляются произведения командами прямого product(P(n),n=a..b) и отложенного действий Product (P(n),n=a..b).

1. Найти полную и N -частичную суммы ряда, общий член которого равен: a n =.

15. Графическая функция phaseportrait

Графическая функция phaseportrait служит для построения фазовых портретов по результатам решения одного дифференциального уравнения или системы дифференциальных уравнений deqns. Она задается в следующем виде:

При задании уравнений достаточно указать их правые части. На рис. 13.15 представлен пример применения функции phaseportrait для решения системы из трех дифференциальных уравнений первого порядка.

В этом примере система дифференциальных уравнений задана с помощью оператора дифференцирования D. Функциональная окраска линии фазового портрета достигается использованием параметра linecolor, в правой части которого задана формула для цвета.

Рис. 13.14. Построение фазового портрета в виде графика векторного поля

Рис. 13.15. Построение фазового портрета с помощью функции phaserportrait

Еще более интересный пример решения дифференциального уравнения представлен на рис. 13.16. Здесь построены фазовые портреты для асимптотических решений.

В целом надо отметить, что возможности визуализации решений дифференциальных уравнений с помощью системы Maple 7 весьма велики и приведенные выше примеры лишь частично иллюстрируют сказанное. В справочной системе можно найти ряд других весьма эффектных решений систем дифференциальных уравнений с визуализацией последних. ,

Рис. 13.16. Построение асимптотического решения на фоне графика векторного поля

Корпорация "Центр"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *