Как задать систему уравнений в maple
Перейти к содержимому

Как задать систему уравнений в maple

  • автор:

Как сделать систему уравнений в maple

Для решения уравнений в Maple существует универсальная команда solve(eq,x) , где eq – уравнение, x – переменная, относительно которой уравнение надо разрешить. В результате выполнения этой команды в строке вывода появится выражение, которое является решением данного уравнения. Например:

Если уравнение имеет несколько решений, которые вам понадобятся для дальнейших расчетов, то команде solve следует присвоить какое-нибудь имя name . Обращение к какому-либо k –ому решению данного уравнения производится указанием его имени с номером решения k в квадратных скобках: name[k] . Например:

Решение систем уравнений.

Системы уравнений решаются с помощью такой же команды solve( , ) , только теперь в параметрах команды следует указывать в первых фигурных скобках через запятую уравнения, а во вторых фигурных скобках перечисляются через запятую переменные, относительно которых требуется решить систему. Если вам будет необходимо для дальнейших вычислений использовать полученные решения уравнений, то команде solve следует присвоить какое-нибудь имя name . Затем выполняется присвоения команда assign(name) . После этого над решениями можно будет производить математические операции. Например:

Численное решение уравнений.

Для численного решения уравнений, в тех случаях, когда трансцендентные уравнения не имеют аналитических решений, используется специальная команда fsolve(eq,x) , параметры которой такие же, как и команды solve . Например:

Решение рекуррентных и функциональных уравнений.

Команда rsolve(eq,f) позволяет решить рекуррентное уравнение eq для целой функции f . Можно задать некоторое начальное условие для функции f(n) , тогда получиться частное решение данного рекуррентного уравнения. Например:

Универсальная команда solve позволяет решать функциональные уравнения, например:

F := proc ( x ) RootOf(_ Z ^2 — 3*_ Z + 2* x ) end

В результате получается решение в неявном виде. Однако Maple может работать с такими решениями. Неявное решение функционального уравнения можно попытаться преобразовать в какую-либо элементарную функцию с помощью команды convert . Продолжая приведенный выше пример, можно получить решение в явном виде:

Решение тригонометрических уравнений.

Команда solve , примененная для решения тригонометрического уравнения, выдает только главные решения, то есть решения в интервале [0,2 p ]. Для того, чтобы получить все решения, следует предварительно ввести дополнительную команду _EnvAllSolutions:=true. Например:

В Maple символ _ Z

обозначает константу целого типа, поэтому решение данного уравнения в привычной форме имеет вид , где n – целые числа.

Решение трансцендентных уравнений.

При решении трансцендентных уравнений для получения решения в явном виде перед командой solve следует ввести дополнительную команду _EnvExplicit:=true . Пример решения сложной системы трансцендентных уравнений и упрощения вида решений:

Решение уравнений

Методы нахождения корней полиномов, решения уравнений, содержащих элементарные и специальные функции и систем сложных уравнений

Системы уравнений

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

Применяются команды solve и fsolve , но в этом случае им задаются наборы (в фигурных скобках) уравнений и переменных.

В первом примере используем solve для простой задачи линейной алгебры: John вдвое старше Kimberly. Возраст Kimberly плюс возраст John равен 27. Найти возраст каждого. Если использовать пакет LinearAlgebra, то придется рассматривать матрицу, но можно применить solve (и fsolve ), которые могут непосредственно работать с уравнениями:

Поскольку не надо беспокоиться о переводе в матричный вид, то получился иной метод решения систем линейных уравнений.

solve и fsolve можно применять для решения нелинейных систем, т. е. систем уравнений, в которых переменные – квадраты, кубы, синусы, экспоненты и т. п. Например, вот система двух нелинейных уравнений:

Вначале попробуем применить команду solve :

Maple сделал по-умному: чтобы получить уравнение для х , он исключил у из Е2 с помощью Е1 . Затем он факторизовал это квадратное уравнение, выдал ответ (x,y)=(3,4) и свел оставшуюся часть задачи к кубической. Если завершить задачу командой evalf , получим:

Но если нарисовать кубическую часть в RootOf (для оценки положения корней), то увидите, что есть еще два решения. Где же они? Примените fsolve и получите:

что еще хуже, так как дает один корень. Для поиска корней можно задавать примерно правильные числа в качестве подсказок для fsolve :

Простой способ заставить Maple дать все 4 корня: повторяйте процедуру, заменяя все целые числа на числа с плавающей точкой:

Будьте изобретательны
и пробуйте разные пути решения задачи,
возможно, один сработает.

В Maple есть другой полезный инструмент для случая двух нелинейных уравнений с двумя неизвестными. Точно так же, как в задачах с одной переменной, полезно сначала строить график, чтобы увидеть, где есть решения. В данном случае двумерные графики помогут искать корни двух неизвестных величин. Примените команду построения графиков implicitplot , которая берет уравнение с двумя переменными, вроде x 2 – y = 5, и строит определяющую их кривую в плоскости xy (для добавления команды графики надо вначале загрузить пакет графики with(plots) ):

Для графического поиска решений постройте оба уравнения на одном графике и посмотрите, где две кривые пересекают друг друга.

Из картинки ясно, что две параболы пересекаются в четырех местах, поэтому должно быть четыре решения. Окно графика должно быть достаточным, чтобы увидеть всю картинку. А если оно мало, то получится вот что:

Если у вас есть три нелинейных уравнения с тремя переменными, implicitplot3d может сделать нечто подобное (см. Maple help).

Найдите все решения (Re и Im) системы уравнений

Чтобы определить количество искомых корней, сначала постройте график с помощью implicitplot .

Вот еще нелинейная система:

Вначале попробуем solve :

(Maple на мгновение задумается, но ничего не произойдет.) Теперь попробуем fsolve с диапазонами для каждой переменной:

Похоже, что (x, y, z) = (1, 1, 3) достаточно близко к решению. Предупреждение: в трех и более измерениях Maple может ошибиться и работать, несмотря на то, что:

(a) известно, что здесь есть решение и

(b) указано, где искать приближенное значение корня.

Для лучшего понимания, где следует искать решение, можно применить implicitplot3d :

Щелкните на рисунке и покрутите его, чтобы разглядеть подробнее. После этого перерисуйте график так, чтобы он был вблизи известного решения: [x, y, z]=[1, 1, 3]:

В середине графика все три поверхности – E1 , E2 и E3 – пересекаются в точке. Это и есть то, что искали с помощью implicitplot3d , но в целом рассматривать трехмерные задачи сложно.

Пусть гладкая функция y(x) представлена тремя точками (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ). Предположим, что эти точки определяют параболу вида y(x) = a + bx + cx 2 и что есть три аппроксимирующих уравнения для нахождения коэффициентов параболы a, b, c. Постройте эти три уравнения и используйте solve , чтобы найти формулы для a, b, c, а затем определите выражение Maple для параболы.

Задание выглядит вполне приемлемо для равноотстоящих точек. Пусть x 2 = x 1 + h и x 3 = x 1 + 2h . Упростим выражения для a, b, c. В результате получили приближенную форму функции, с которой можно работать:

(a) Оцените площадь под кривой между x 1 и x 3 путем интегрирования параболы между этими двумя пределами. Получится правило Симпсона. Чтобы посмотреть, хорош ли этот приближенный интеграл, задайте x 1 = 0, x 2 = 0.5, x 3 = 1.0 и y 1 = cos(x 1 ), y 2 = cos(x 2 ), y 3 = cos(x 3 ) , при этом приближенное значение площади будет близко к Дает ли формула приближенного интегрирования хороший результат?

(b) Оцените производную функции у(х) в средней точке х 2 путем дифференцирования параболы и вычисления значения производной в x = x 2 . Она называется формулой центральных разностей для первой производной. Проверьте ее точность при x 2 = 0.5, используя x 1 = 0.4 и x 3 = 0.6 с функцией

(c) Повторно дифференцируя формулу параболы, оцените вторую производную функции у(х) в x 2 . Это центральная вторая производная для равноотстоящих точек. Проверьте ее точность, как в части (b).

Эти формулы дифференцирования и интегрирования понадобятся в курсе физики.

Как сделать систему уравнений в maple

Системы уравнений решаются с помощью такой же команды solve( , ), только теперь в параметрах команды следует указывать в первых фигурных скобках через запятую уравнения, а во вторых фигурных скобках перечисляются через запятую переменные, относительно которых требуется решить систему. Если вам будет необходимо для дальнейших вычислений использовать полученные решения уравнений, то команде solve следует присвоить какое-нибудь имя name. Затем выполняется присвоения команда assign(name). После этого над решениями можно будет производить математические операции.

Как решать систему уравнений в maple

Решить систему уравнений
Какие команды необходимы для того что бы решить систему к примеру: 2*X+3*Y=1; 2*Y=6; как.

Решить систему 6-ти нелинейных уравнений в цикле
Здравствуйте. Я в цикле решаю систему нелинейных уравнений. Пишу так.

Решить систему линейных уравнений с параметром
А все понятно теперь, спасибо. Еще вопрос, как решить систему линейных уравнений вида.

Maple. Решение алгебраических задач. Решения уравнений, систем уравнений и неравенств в Maple

Для решения уравнений, систем уравнений и неравенств в Maple используется команда (оператор) «solve». Например, для решения уравнения х2 – 6х + 5 = 0 набираем: > solve(x^2–6*x+5=0); 1, 5 Обратите внимание, что если аргумент solve не является уравнением (или неравенством), то Maple трактует его так, как если бы это выражение было приравнено к 0. Можно было бы написать «> solve(x^2–6*x+5);». При решении алгебраических уравнений Maple приводит все корни, включая комплексные: > solve(x^4=1); 1, –1, I, –I

Решение уравнений (часть 2)

С помощью команды «solve» можно решать не только алгебраические уравнения. Например, решим тригоно-метрическое уравнение tg x – 2 sin x = 0: > solve(tan(x)–2*sin(x)); Обратите внимание, что Maple привёл решения, лежащие в пределах одного промежутка периодичности (от –π до π). Для вывода всех решений необходимо присвоить зарезервированной переменной _EnvAllSolutions значение true: > _EnvAllSolutions := true; > solve(tan(x)–2*sin(x)); где _Z

обозначает любое целое число.

Решение уравнений (часть 3)

Приведём примеры применения функции «solve» для решения уравнений с несколькими переменными. Решим, например, уравнение xy + x – 1 = 0 относительно x: > solve(x*y+x–1,x); относительно y: > solve(x*y+x–1,у); В общем виде Maple решает это уравнение так: > solve(x*y+x–1); Видно, что форма ответа определяется вторым параметром (или его отсутствием) команды «solve», указывающим, относительно какой переменной решать уравнение.

Неравенства решаются тем же оператором «solve». Например, решим неравенство x2(x – 1) < 0: >solve(x^2*(x–1) <0); RealRange(–∞,Open(0)), RealRange(Open(0), Open(1)) В переводе на математический язык ответ: (–∞; 0)U(0; 1). Решим неравенство x2(x – 1) ≥ 0: >solve(x^2*(x–1)>=0); 0, RealRange(1, ∞) В переводе на математический язык ответ: U[1; ∞). Открытый интервал (или луч) задаётся в Maple с помощью функции «Open», применяемой к концам интервала, задаваемого функцией «RealRange».

Решение системы уравнений

Все уравнения системы записываются в фигурных скобках через запятую. Решим например систему > solve( ); , Решим систему с параметром > solve( , );

Алфавит Maple

Кроме чисел Maple содержит целый ряд именованных констант: число л =3. 141592654. — Pi ; мнимая единица V — 1 -I; бесконечность оо — infinity; истина — true; ложь — false и др. Константа Digits задаст число значащих цифр для операций с числами с плавающей точкой, например, Digits:=10.

Переменные, выражения, оператор присваивания

Имя переменной — последовательность букв и цифр, начинающаяся с буквы. Может также использоваться знак подчеркивания. Примеры:

А234, my_name, Су.

В качестве имен переменных запрещено использовать ключевые слова.

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

Применяемые в Maple функции приведены в табл.3.1. Эти функции можно вызвать, набрав в меню последовательно View => Palettes => Expression Palette. Латинские буквы можно вызвать набрав в меню последовательно View => Palettes => Symbol Palette.

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

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

> y=int (sin (х) л 2 ,х) ; # Нажать “Enter”!

Г 1 1 1

sin(x) dx = —cos(x)sin(x)+-A’

Важной операцией в Maple является операция присваивания (:=), она имеет следующий вид:

Каждый оператор должен заканчиваться или точкой с запятой (после нажатия клавиши Enter в следующей строке выводится результат операции), или двоеточием (результат выполнения операции нс выводится).

Методы решения математических задач в Maple

Данная книга является учебным пособием по дисциплинам «Математика и информатика», «Информационные технологии». Пособие представляет собой практическое руководство по изучению возможностей пакета аналитических вычислений Maple. Подробные теоретические сведения чередуются с практическими заданиями. Последовательное изучение тем и выполнение заданий позволит шаг за шагом освоить основные приемы работы в математической системе Maple. Учебное пособие предназначено для студентов 1 и 2 курсов социально-психологического и естественно-географического факультетов университета, а также для аспирантов и научных работников, использующих математические методы и модели в естественнонаучных исследованиях.

Похожие публикации:

  1. Как настроить wechat на айфоне
  2. Как объединить графики в maple
  3. Как отключить единицы измерения в mathcad
  4. Как открыть xmcd в mathcad prime

Как решать уравнения в maple

Для решения уравнений в Maple существует универсальная команда solve(eq,x) , где eq – уравнение, x – переменная, относительно которой уравнение надо разрешить. В результате выполнения этой команды в строке вывода появится выражение, которое является решением данного уравнения. Например:

Если уравнение имеет несколько решений, которые вам понадобятся для дальнейших расчетов, то команде solve следует присвоить какое-нибудь имя name . Обращение к какому-либо k –ому решению данного уравнения производится указанием его имени с номером решения k в квадратных скобках: name[k] . Например:

Решение систем уравнений.

Системы уравнений решаются с помощью такой же команды solve( , ) , только теперь в параметрах команды следует указывать в первых фигурных скобках через запятую уравнения, а во вторых фигурных скобках перечисляются через запятую переменные, относительно которых требуется решить систему. Если вам будет необходимо для дальнейших вычислений использовать полученные решения уравнений, то команде solve следует присвоить какое-нибудь имя name . Затем выполняется присвоения команда assign(name) . После этого над решениями можно будет производить математические операции. Например:

Численное решение уравнений.

Для численного решения уравнений, в тех случаях, когда трансцендентные уравнения не имеют аналитических решений, используется специальная команда fsolve(eq,x) , параметры которой такие же, как и команды solve . Например:

Решение рекуррентных и функциональных уравнений.

Команда rsolve(eq,f) позволяет решить рекуррентное уравнение eq для целой функции f . Можно задать некоторое начальное условие для функции f(n) , тогда получиться частное решение данного рекуррентного уравнения. Например:

Универсальная команда solve позволяет решать функциональные уравнения, например:

F := proc ( x ) RootOf(_ Z ^2 — 3*_ Z + 2* x ) end

В результате получается решение в неявном виде. Однако Maple может работать с такими решениями. Неявное решение функционального уравнения можно попытаться преобразовать в какую-либо элементарную функцию с помощью команды convert . Продолжая приведенный выше пример, можно получить решение в явном виде:

Решение тригонометрических уравнений.

Команда solve , примененная для решения тригонометрического уравнения, выдает только главные решения, то есть решения в интервале [0,2 p ]. Для того, чтобы получить все решения, следует предварительно ввести дополнительную команду _EnvAllSolutions:=true. Например:

В Maple символ _ Z

обозначает константу целого типа, поэтому решение данного уравнения в привычной форме имеет вид , где n – целые числа.

Решение трансцендентных уравнений.

При решении трансцендентных уравнений для получения решения в явном виде перед командой solve следует ввести дополнительную команду _EnvExplicit:=true . Пример решения сложной системы трансцендентных уравнений и упрощения вида решений:

Maple. Решение алгебраических задач. Решения уравнений, систем уравнений и неравенств в Maple

Страницы работы

Решение алгебраических задач

Решение уравнений (часть 1)

Для решения уравнений, систем уравнений и неравенств в Maple используется команда (оператор) «solve». Например, для решения уравнения х2 – 6х + 5 = 0 набираем: > solve(x^2–6*x+5=0); 1, 5 Обратите внимание, что если аргумент solve не является уравнением (или неравенством), то Maple трактует его так, как если бы это выражение было приравнено к 0. Можно было бы написать «> solve(x^2–6*x+5);». При решении алгебраических уравнений Maple приводит все корни, включая комплексные: > solve(x^4=1); 1, –1, I, –I

Решение уравнений (часть 2)

С помощью команды «solve» можно решать не только алгебраические уравнения. Например, решим тригоно-метрическое уравнение tg x – 2 sin x = 0: > solve(tan(x)–2*sin(x)); Обратите внимание, что Maple привёл решения, лежащие в пределах одного промежутка периодичности (от –π до π). Для вывода всех решений необходимо присвоить зарезервированной переменной _EnvAllSolutions значение true: > _EnvAllSolutions := true; > solve(tan(x)–2*sin(x)); где _Z

обозначает любое целое число.

Решение уравнений (часть 3)

Приведём примеры применения функции «solve» для решения уравнений с несколькими переменными. Решим, например, уравнение xy + x – 1 = 0 относительно x: > solve(x*y+x–1,x); относительно y: > solve(x*y+x–1,у); В общем виде Maple решает это уравнение так: > solve(x*y+x–1); Видно, что форма ответа определяется вторым параметром (или его отсутствием) команды «solve», указывающим, относительно какой переменной решать уравнение.

Неравенства решаются тем же оператором «solve». Например, решим неравенство x2(x – 1) solve(x^2*(x–1) solve(x^2*(x–1)>=0); 0, RealRange(1, ∞) В переводе на математический язык ответ: U[1; ∞). Открытый интервал (или луч) задаётся в Maple с помощью функции «Open», применяемой к концам интервала, задаваемого функцией «RealRange».

Решение системы уравнений

Все уравнения системы записываются в фигурных скобках через запятую. Решим например систему > solve( ); , Решим систему с параметром > solve( , );

Решение уравнений

Методы нахождения корней полиномов, решения уравнений, содержащих элементарные и специальные функции и систем сложных уравнений

Уравнения с одной переменной

Для решения таких уравнений в Maple предусмотрены две команды: solve для символьного решения и fsolve для решения с ответом в численном виде. Например, формула для квадратного уравнения:

Синтаксис solve выглядит так: solve(equation,variable) . Параметры записаны через запятую. Если задать численные коэффициенты, то система попытается дать численные ответы:

Maple знает формулы для кубического уравнения:

но они сложны, неприятны по внешнему виду, и их почти никогда не применяют.

Используем численные коэффициенты, чтобы ответ был численным:

Этот результат – правильный, но поскольку Maple «думает» символами, то они не выглядят слишком пригодными. Для получения чисел с плавающей запятой следует применять уже известную команду evalf :

или вводить коэффициенты уравнения с десятичной точкой:

Команда solve с полиномами работает по-умному: она знает фундаментальную теорему алгебры о том, что полином n-го порядка имеет n корней. Например, если спросить о корнях уравнения x 6 + 1:

в ответе должны быть все шесть.

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

Maple может решать более сложные уравнения вроде cos(x) – x/10:

Снова RootOf , поэтому такой же подход к решению: чтобы получить хотя бы один корень, замените 10 на 10. или используйте evalf(s7)

При решении сложных уравнений надо проявлять осторожность, поскольку возможно более одного ответа, и Maple не даст все. Попробуем нарисовать функцию cos(x) – x/10 и увидим, как много у нее нулей, т. е. столько корней придется искать.

Maple на самом деле не обманывает: 1.427551779 есть решение, но не все.

Важно: прежде чем искать решение, постройте график, тогда будете знать, сколько корней надо найти.

Как заставить Maple выдать все корни? Поскольку они ищутся численно, применяется команда fsolve , которой надо задать уравнение, переменную и диапазон значений для поиска корней. Например, на рисунке видно, что корни находятся вблизи –9.6, –9.2, –4, –2, 1.5, 5 и 7. Это надо указать в fsolve , задавая диапазон поиска решений (x1..x2):

Посмотрите, что произойдет, если указать диапазон, где нет корней:

По общему правилу, когда Maple без вычислений возвращает то, что ему задали, это означает, что либо он не может найти ответ, либо вы ошиблись. Ищите, где ошибка.

Учтите, что вместо диапазона можно просто задать одно угаданное решение:

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

Еще один способ контроля за решениями – опция avoid в fsolve .

Ищем решения уравнения cos(x) + x/3. Чтобы узнать, где искать корни, нарисуем функцию и увидим рядом с 3 два близко расположенных корня. Команда найдет один из них:

а вам нужен второй, и возникает проблема: как указать команде на него или как задать начальное значение. Можно так: ищи один корень вблизи 3, но не ищи s1:

Найдите все действительные или комплексные корни следующих полиномов. Используйте для этого команды solve и fsolve .

(a) x 4 – 1, (b) x 3 + x 2 + x + 1.

solve дает комплексные величины, а fsolve – нет. Это можно исправить, указав fsolve , что нужно искать комплексные решения: fsolve(x^2+1=0, x,complex) .

Посмотрите, что случается при использовании команды factor(f,complex) , где f – полином, который надо разложить.

(a) Найдите все решения уравнения e x = 10sin(x) между –5 и 20.

(b) Найдите все решения уравнения e (–x) = x, используйте solve и fsolve и сравните ответы.

(с) Найдите все корни функции для x между 0 и 10.

(d) Найдите все корни производной функции Бесселя между 0 и 100 и занесите их в вектор-столбец a n .

Эту задачу можно решить очень компактно с помощью команды seq с командой fsolve внутри нее.

Решение разбейте на части:

Шаг 1. Нарисуйте функцию между 0 и 100, затем несколько раз обновите диапазон графика, чтобы узнать, где первый и второй корни и как далеко они друг от друга (вы обнаружите, что они на расстоянии порядка π).

Шаг 2. Чтобы применить полученную информацию, используйте команду seq , чтобы генерировать все корни.

Команда seq , вроде такой: seq(n^2,n=0..20) , генерирует список чисел; затем учтите, что первый аргумент seq , который генерирует зависящее от n число, может быть чем угодно, даже результатом fsolve .

Вот пример построения последовательности нулей косинуса с помощью seq и fsolve , который основан на догадке, что начинать надо с 1.4 и расстояние между нулями π: seq(fsolve(cos(x)=0,x=1.4+n*Pi),n=0..20);

Шаг 3. Все, что вам теперь нужно сделать, – загрузить эти числа в вектор-столбец. Если команда seq не дала первый корень при x=0 , догадайтесь, как это сделать вручную.

Как решить систему дифференциальных уравнений в maple

«Решение системы дифференциальных уравнений в Maple»

При выполнении письменной работы студенты сталкиваются с рядом проблем:И несмотря на то, что информации сегодня предостаточно, написать качественную работу и выдержать необходимый объем может не каждый. Действительно, не всем дано «растекаться мыслью по древу», особенно если тема мало изучена. У на…

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

Решение дифференциальных уравнений и систем дифференциальных уравнений средствами Mathcad и Maple , страница 7

> e2:=odeplot(v,[x,y2(x)],2..5,color=green,thickness=6):

> e3:=odeplot(p,[x,y1(x)],2..5,color=black,linestyle=3,style=point):

> e4:=odeplot(p,[x,y2(x)],2..5,color=black,style=point,symbol=box):

> display(e1,e2,e3,e4,e5);

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

Катер движется в спокойной воде со скоростью 10 км/ч. На полном ходу его мотор был выключен, и через 20 секунд скорость катера уменьшилась до 6 км/ч. Считая, что сопротивление воды движению катера пропорционально его скорости, найти:

· скорость катера через 2 минуты после остановки мотора.

расстояние, пройденное катером в течение первой минуты после остановки мотора.

1.Построим математическую модель.

Из курса математического анализа мы знаем, что ускорение задается как dv/dt, поэтому, согласно условию задачи, составляем дифференциальное уравнение:

Разделим обе части уравнения на v и умножим на dt:

Получим систему уравнений:

откуда получаем: ln(v)=-k*t+c

нам дано начальное условие: v0=10, откуда:

подставим полученное значение с:

выразим коэффициент к, учитывая, что нам дано время v1=1/180:

теперь мы можем найти скорость катера через 2 минуты, после остановки мотора:

проинтегрируем функцию:

получили расстояние, пройденное катером в течение первой минуты после остановки мотора.

2.Символьное и численное решение в системе Maple.

Задали дифференциальное уравнение, теперь решим его:

Решим задачу Коши, определим общее решение:

Определяем вспомогательный элемент kk, равный k :

Найдем скорость катера через 2 минуты после остановки:

Проверим решение, решив задачу численно:

> for _i from 0 to 1/30 by 1/360 do Res(_i);end do;

Получаем, что скорость катера через 2 минуты также равна , а расстояние, пройденное катером в течение первой минуты после остановки равно

3.Численное решение и оценка погрешности в системе MATHCAD.

Список литературы.

1. Г. А. Бордовский Э. В.Бурсиан

Общая физика: курс лекций с компьютерной поддержкой: уч. Пособие для студентов высших учеб Заведений: В 2т. М: 2001.(том 1, том 2);

2. Н. М. Матвеев

Методы интегрирования обыкновенных дифференциальных уравнений.

3. В. М. Вержбицкий.

Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. М: 2001.

4. Т. А.Алексеева

Компьютерное моделирование в пакете MATHCAD (дифференциальные уравнения). Учебное пособие. СПб.: 2003;

5. Т. А. Алексеева

Информационные технологии в математике(система MATHCAD). Учебное пособие. СПб. : 2003;

6. Т.А.Алексеева, А. А. Жихарева

Информационные технологии в математике(система Maple). Учебное пособие. СПб.:2003.

Учебно-методический комплекс по дисциплине «информационные технологии в математике» для дневного отделения специальность


ЛЕКЦИЯ №7. РЕШЕНИЕ ЗАДАЧ АЛГЕБРЫ. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В MAPLE

  1. Векторная алгебра.
  2. Действия с матрицами.
  3. Системы линейных уравнений. Матричные уравнения.
  4. Аналитическое решение дифференциальных уравнений.
  5. Приближенное решение с помощью степенных рядов.
  6. Численное решение дифференциальных уравнений.

§1. Векторная алгебра

Основная часть команд для решения задач линейной алгебры содержится в библиотеке linalg. Поэтому перед решением задач с матрицами и векторами следует загрузить эту библиотеку командой with(linalg).

Способы задания векторов.

Для определения вектора в Maple используется команда vector([x1,x2,…,xn]), где в квадратных скобках через запятую указываются координаты вектора.

Координату уже определенного вектора x можно получить в строке вывода, если ввести команду x[i] , где i — номер координаты.

Вектор можно преобразовать в список и, наоборот, с помощью команды convert(vector, list) или convert(list, vector).

Сложение векторов.

Сложить два вектора a и b можно с помощью двух команд:

2) matadd(a,b).

Команда add позволяет вычислять линейную комбинацию векторов a и b: где — скалярные величины, если использовать формат: matadd(a,b,alpha,beta).

Скалярное, векторное произведение векторов и угол между векторами.

Скалярное произведение двух векторов вычисляется командой dotprod(a,b).

Векторное произведение двух векторов вычисляется командой crossprod(a,b).

гол между двумя векторами a и b вычисляется с помощью команды angle(a,b).

Норма вектора.

Норму (длину) вектора , которая равна, можно вычислить с помощью команды norm(а,2).

Можно нормировать вектор а с помощью команды normalize(a), в результате выполнения которой будет получен вектор единичной длины .

§2. Действия с матрицами

Определение матрицы.

Для определения матрицы в Maple можно использовать команду matrix(n, m, [[a11,a12,…,a1n], [a21,a22,…,a2m],…, [an1,an2,…,anm]]), где n — число строк, m – число столбцов в матрице. Эти числа задавать необязательно, а достаточно перечислить элементы матрицы построчно в квадратных скобках через запятую.

В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag. Например:

Генерировать матрицу можно с помощью функции f(i, j) от переменных i, j – индексов матрицы: matrix(n, m, f), где где n — число строк, m – число столбцов. Например:

Число строк в матрице А можно определить с помощью команды rowdim(A), а число столбцов – с помощью команды coldim(A).

Арифметические операции с матрицами.

Сложение двух матриц одинаковой размерности осуществляется теми же командами, что и сложение векторов: evalm(A+B) или matadd(A,B). Произведение двух матриц может быть найдено с помощью двух команд:

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

Команда evalm позволяет также прибавлять к матрице число и умножать матрицу на число.

Определители, миноры и алгебраические дополнения. Ранг и след матрицы.

Определитель матрицы А вычисляется командой det(A). Команда minor(A,i,j) возвращает матрицу, полученную из исходной матрицы А вычеркиванием i-ой строки и j-ого столбца. Минор Mij элемента aij матрицы А можно вычислить командой det(minor(A,i,j)). Ранг матрицы А вычисляется командой rank(A). След матрицы А, равный сумме ее диагональных элементов, вычисляется командой trace(A). 7

Обратная и транспонированная матрицы.

Обратную матрицу А- 1 , такую что А- 1 А=АА- 1 =Е, где Е — единичная матрица, можно вычислить двумя способами:

Транспонирование матрицы ^ А – это изменение местами строк и столбцов. Полученная в результате этого матрица называется транспонированной и обозначается А’ . Транспонированную матрицу А’ можно вычислить командой transpose(A).

§3. Системы линейных уравнений. Матричные уравнения

Системы линейных уравнений и матричные уравнения.

Система линейных уравнений может быть решена двумя способами.

Способ 1: стандартная команда solve находит решение системы линейных уравнений, записанных в развернутом виде.

Способ 2: команда linsolve(A,b) из пакета linalg находит решение уравнения . Аргументы этой команды: А – матрица, b – вектор.

С помощью команды linsolve(A,b) можно найти решение матричного уравнения АХ=В, если в качестве аргументов этой команды указать, соответственно, матрицы А и В.

дро матрицы А – это множество векторов х таких, произведение матрицы А на которые равно нулевому вектору: . Поиск ядра матрицы ^ А эквивалентен решению системы линейных однородных уравнений. Найти ядро матрицы А можно командой kernel(A).

§4. Аналитическое решение дифференциальных уравнений

Общее решение дифференциальных уравнений.

Для нахождения аналитических решений дифференциальных уравнений в Maple применяется команда dsolve(eq,var,options), где eq – дифференциальное уравнение, var – неизвестные функции, options – параметры. Параметры могут указывать метод решения задачи, например, по умолчанию ищется аналитическое решение: type=exact. При составлении дифференциальных уравнений для обозначения производной применяется команда diff, например, дифференциальное уравнение +y=x записывается в виде: diff(y(x),x$2)+y(x)=x.

Общее решение дифференциального уравнения зависит от произвольных постоянных, число которых равно порядку дифференциального уравнения. В Maple такие постоянные, как правило, обозначаются как _С1, _С2, и т.д.

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

Команда dsolve выдает решение дифференциального уравнения в невычисляемом формате. Для того, чтобы с решением можно было бы работать далее (например, построить график решения) следует отделить правую часть полученного решения командой rhs(%).

Замечание: при записи решения диффреренциального уравнения в Maple в строке вывода произвольная постоянная обозначена как _С1.

Фундаментальная (базисная) система решений.

Команда dsolve представляет возможность найти фундаментальную систему решений (базисные функции) дифференциального уравнения. Для этого в параметрах команды dsolve следует указать output=basis.

Решение задачи Коши или краевой задачи.

Команда dsolve может найти решение задачи Коши или краевой задачи, если помимо дифференциального уравнения задать начальные или краевые условия для неизвестной функции. Для обозначения производных в начальных или краевых условиях используется дифференциальный оператор , например, условие y»(0)=2 следует записать в виде , или условие y‘(1)=0: . Напомним, что производная n-го порядка записывается в виде .

Системы дифференциальных уравнений.

Команда dsolve может найти решение системы дифференциальных уравнений (или задачи Коши), если в ней указать: dsolve( , ), где sys — система дифференциальных уравнений, x(t),y(t),… — набор неизвестных функций.

§5. Приближенное решение дифференциальных уравнений с помощью степенных рядов.

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

Чтобы найти приближенное решение дифференциального уравнения в виде степенного ряда, в команде dsolve следует после переменных указать параметр type=series (или просто series). Для того, чтобы указать порядок разложения n, т.е. порядок степени, до которой производить разложение, следует перед командой dsolve вставить определение порядка с помощью команды Order:=n.

Если ищется общее решение дифференциального уравнения в виде разложения в степенной ряд, то коэффициенты при степенях х найденного разложения будут содержать неизвестные значения функции в нуле y(0) и ее производных D(y)(0), (D@@2)(y)(0) и т.д. Полученное в строке вывода выражение будет иметь вид, похожий на разложение искомого решения в ряд Маклорена, но с другими коэффициентами при степенях х. Для выделения частного решения следует задать начальные условия y(0)=у1, D(y)(0)=у2, (D@@2)(y)(0)=у3 и т.д., причем количество этих начальных условий должно совпадать с порядком соответствующего дифференциального уравнения.

Разложение в степенной ряд имеет тип series, поэтому для дальнейшей работы с этим рядом его следует преобразовать в полином с помощью команды convert(%,polynom), а затем выделить правую часть полученного выражения командой rhs(%).

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

Численное решение дифференциальных уравнений с помощью команды dsolve. Построение графиков решений дифференциальных уравнений с помощью команды odeplot.

Для того, чтобы найти численное решение дифференциального уравнения (задачи Коши или краевой задачи) в команде dsolve следует указать параметр type=numeric (или просто numeric). Тогда команда решения дифференциального уравнения будет иметь вид dsolve(eq, vars, type=numeric, options), где eq – уравнения, vars – список неизвестных функций, options – параметры, позволяющие указать метод численного интегрирования дифференциального уравнения. В Maple реализованы такие методы: method=rkf45 — метод Рунге-Кутта-Фельберга 4-5-ого порядка (установлен по умолчанию); method=dverk78 – метод Рунге-Кутта 7-8 порядка; mtthod=classical – классический метод Рунге-Кутта 3-его порядка; method=gear и method=mgear – одношаговый и многошаговый методы Гира.

График численного решения дифференциального уравнения можно построить с помощью команды odeplot(dd, [x,y(x)], x=x1..x2), где в качестве функции используется команда dd:=dsolve( , y(x), numeric) численного решения, после нее в квадратных скобках указывают переменную и неизвестную функцию [x,y(x)], и интервал x=x1..x2 для построения графика.

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

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

Команда DEplot из пакета DEtools строит численными методами графики решения или фазовые портреты. Эта команда аналогична команде odeplot, но более функциональна. Она, в отличие от odeplot, сама производит численное решение дифференциального уравнения. Основные параметры DEplot похожи на параметры odeplot: DEplot(de, vars, range, x=х1..х2, y=у1..у2, cond, ptions), где de — дифференциальное уравнение или система дифференциальных уравнений; vars – список неизвестных функций; range – диапазон измерения независимой переменной; cond – начальные условия; x=х1..х2 и y=у1..у2 – диапазоны изменения функций; options – дополнительные параметры.

Наиболее часто используемые параметры: linecolor=цвет линии; scene=[x,y] — определяет, какие зависимости выводить на график; iterations=число итераций, необходимое для повышения точности вычислений (по умолчанию это число равно 1); stepsize=число, равное расстоянию между точками на графике, по умолчанию оно равно (x2- x1)/20, этот параметр необходим для вывода более гладкой кривой решения.

Для решения дифференциального уравнения n-ого порядка начальные условия можно задавать в более компактной форме: [x0, y0, y0, y»0,…], где x0 — точка, в которой задаются начальные условия, y0 — значение искомой функции в точке x0, y0, y»0,… — значения производных первой, второй и т.д. до (n- 1)-ого порядка.

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

Для дифференциального уравнения порядка выше первого команда 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]].

Начальные условия можно задавать в более компактной форме: [t0, x0, y0], где t0 — точка, в которой задаются начальные условия, x0 и y0 — значения искомых функций в точке t0.

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

Решение системы дифференциальных уравнений

Решение обыкновенных дифференциальных уравнений
дано уравнение dy/dx((1-x^2)^1/2)+y=arcsin(x), y(0)=0 расскажите как задать dy/dx, дальше.

Ошибка при решении системы дифференциальных уравнений
Помогите, пожалуйста! Выдает следующую ошибку:Error, (in dsolve) invalid arguments to coeffs .

Построить фазовый портрет системы дифференциальных уравнений
помогите пожалуйста построить фазовый портрет для системы дифуравнений в Maple система под номером.

решение дифференциальных уравнений с выводом графиков решения
Решить дифф. уравнения с выводом графика фазового портрета: x'(t)=-by(t), x(0)=x0 y'(t)=-ax(t).

Похожие публикации:

  1. Какой символ надо ввести чтобы добавить несколько значений по осям на двумерном графике в mathcad
  2. На сколько каналов можно подписаться в telegram
  3. Почему в windows movie maker не показывает видео
  4. Сколько стоит matlab

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

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