Реферат на тему: Аналитическое решение уравнений и их систем в пакетах символьной математики


ФГБОУ ВПО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М.Е.ЕВСЕВЬЕВА»
Факультет физико-математический
Кафедра информатики и вычислительной техники
РЕФЕРАТ
Аналитическое решение уравнений и их систем в пакетах символьной математики
Выполнила: Родионова Алена,
Группа МДМ – 212
Саранск 2017
Содержание:
Mathematica…………………………………………………………………3
Maple ……………………………………………………………………….7
Matcad……………………………………………………………………….9
Matlab………………………………………………………………………11
MathematicaРешение простейших дифференциальных уравнений Для решения дифференциальных уравнений в аналитической форме в пакете Mathematica используется функция DSolve, формат обращения к которой имеет вид: DSolve[□==□, y[x],x], где □==□ – дифференциальное уравнение 29 относительно функции y(x). Функция y и все ее производные должны быть записаны с аргументом, заключенным в квадратные скобки: y[x], y’[x]

Функция DSolve стремится найти общее решение ДУ в явном виде и выдает результат в виде списка правил замены, причем каждое решение заключается в фигурные скобки. Для ДУ порядка n общее решение содержит n произвольных констант, которые обозначаются C[1], C[2],…,C[n]. Для получения частного решения необходимо в качестве первого аргумента DSolve указать список, состоящий из самого уравнения и начальных или граничных условий:

Найденные с помощью DSolve решения можно подставить в любое выражение, содержащее y(x). Однако это решение не определяет правил замены производных y’(x), y’’(x) и так далее, например:

Чтобы получить решение, не имеющее этого недостатка, нужно в качестве второго аргумента функции DSolve записать только имя искомой функции, не указывая ее аргумент. В этом случае решение представляется в виде чистой функции («purefunction»-объекта), в котором роль аргумента x, в некоторых случаях, играет символ «#1», а признаком этого объекта является символ «&». Полученное решение можно подставить в любое выражение, содержащее как функцию y(x), так и ее производные:

Для решения систем уравнений в качестве первого аргумента функции указывается список уравнений, а в качестве второго аргумента – список искомых функций:

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

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

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

В этих примерах функция D (как приятное исключение из правил, обозначенная одной буквой) вычисляет производную, функция Integrate — интеграл, функция Solve решает нелинейное уравнение (в данном случае квадратное), а функция Series разлагает выражение в ряд относительно заданной переменной и при заданных начальном значении переменной и максимальной степени ряда. В фигурных скобках задаются списки некоторых входных и выходных параметров (аргументов).
Системы символьной математики являются справочниками по многим специальным функциям. При этом они способны давать результаты вычислений в виде специальных функций, что демонстрируют следующие примеры:

Здесь специальные функции получаются в результате вычисления суммы, символьного интегрирования и решения в аналитическом виде дифференциального уравнения. Соответствующие функции будут более подробно описаны в дальнейшем. Обратите внимание на то, что эти примеры даны прямо в тексте книги. Мы будем часто использовать такой прием для представления небольших примеров.
DSolve [Derivative [1] [у] [х] ==2*а*х^3, у[х], х]
{{у[х]->aх4/2+С[1]}}
DSolve[{yl' [х] == 2 х2, у2' [х] == 3 х}, {yl[х], у2[х]}, х]
{{yl[x] ->-2х3/3+C[1], у2[х] ->3х2/2+C[2]}}
DSo2ve{y'[x] +у[х] ==х, у[х], х}
{{у[х] -*-1+х + е-хС[1]}}
DSolve [у" [х] - у' [х] - 6 у [х] == 0, у [х] , х] {{У[х] ->| е-4хС[1] + С[2] -Cos[2x] -|sin[2x]}}
DSolve [у" [х] + 4 у'[х] == 10 Sin [2 х] , у [х] , х]
{{У[х] ->| е-4хС[1] + С[2] -Cos[2x] -|sin[2x]}}
DSolve[y'[x] == Sin[Ex] , y[x] , x]
{{y[x] ->C[1] +Sinlntegral[ex]}}
DSolvefz2 w"[z] +zw'[z] - (z2 + l)w[z] ==0, w[z], z]
{{w[z] ->BesselI[l, z] C[l] +BesselK[l, z] C[2] }}
Как нетрудно заметить, аналитические решения дифференциальных уравнений могут содержать не только элементарные, но и специальные математические функции, что заметно расширяет возможности применения системы Mathematica в решении задач динамического моделирования.
MapleАналитическое решение дифференциальных уравнений
Общее решение дифференциальных уравнений.
Для нахождения аналитических решений дифференциальных уравнений в Maple применяется команда dsolve(eq,var,options),где eq – дифференциальное уравнение, var – неизвестные функции, options – параметры. Параметры могут указывать метод решения задачи, например, по умолчанию ищется аналитическое решение: type=exact. При составлении дифференциальных уравнений для обозначения производной применяется команда diff, например, дифференциальное уравнение y''+y=x записывается в виде: diff(y(x),x$2)+y(x)=x.
Общее решение дифференциального уравнения зависит от произвольных постоянных, число которых равно порядку дифференциального уравнения. В Maple такие постоянные, как правило, обозначаются как _С1, _С2, и т.д.
Общее решение неоднородного линейного дифференциального уравнения всегда выводится так, чтобы была четко видна, структура этого решения. Как известно, общее решение неоднородного линейного дифференциального уравнения равно сумме общего решения соответствующего однородного дифференциального уравнения и частного решения этого же неоднородного дифференциального уравнения. Поэтому в строке вывода решение неоднородного линейного дифференциального уравнения всегда состоит из слагаемых, которые содержат произвольные постоянные (это общее решения соответствующего однородного дифференциального уравнения), и слагаемых без произвольных постоянных (это частное решения этого же неоднородного дифференциального уравнения).Команда dsolve выдает решение дифференциального уравнения в невычисляемом формате. Для того, чтобы с решением можно было бы работать далее (например, построить график решения) следует отделить правую часть полученного решения командой rhs(%).

-527686137795Задание 4.
Найти общее и одно частное решение системы: 
> eq:={2*x-3*y+5*z+7*t=1, 4*x-6*y+2*z+3*t=2,
2*x-3*y-11*z-15*t=1}:
> s:=solve(eq,{x,y,z});
s:={  z=-118t , y=y , x=32 y - 116t+12 }
Для нахождения частного решения следует выполнить подстановку конкретного значения одной из переменных при помощи команды subs:
> subs({y=1,t=1},s);
{ z=-118, x=3116  , 1=1}
00Задание 4.
Найти общее и одно частное решение системы: 
> eq:={2*x-3*y+5*z+7*t=1, 4*x-6*y+2*z+3*t=2,
2*x-3*y-11*z-15*t=1}:
> s:=solve(eq,{x,y,z});
s:={  z=-118t , y=y , x=32 y - 116t+12 }
Для нахождения частного решения следует выполнить подстановку конкретного значения одной из переменных при помощи команды subs:
> subs({y=1,t=1},s);
{ z=-118, x=3116  , 1=1}

-680085252095Решить матричное уравнение: АX=В; где   , 
> A:=matrix([[1,2],[3,4]]):
> B:=matrix([[3,5],[5,9]]):
> X:=linsolve(A,B);

Дана матрица  A.
Найти ее ранг, дефект: d(A)=n–r(A), где n – размерность квадратной матрицы, r – ее ранг. Найти ядро А. Наберите:
> A:=matrix([[1,1,0],[0,2,-1],[1,3,-1]]):
> r(A):=rank(A);
r(A):=2
> d(A):=rowdim(A)-r(A);
d(A):=1
> k(A):=kernel(A);
k(A):={[- 1,1,2]}
00Решить матричное уравнение: АX=В; где   , 
> A:=matrix([[1,2],[3,4]]):
> B:=matrix([[3,5],[5,9]]):
> X:=linsolve(A,B);

Дана матрица  A.
Найти ее ранг, дефект: d(A)=n–r(A), где n – размерность квадратной матрицы, r – ее ранг. Найти ядро А. Наберите:
> A:=matrix([[1,1,0],[0,2,-1],[1,3,-1]]):
> r(A):=rank(A);
r(A):=2
> d(A):=rowdim(A)-r(A);
d(A):=1
> k(A):=kernel(A);
k(A):={[- 1,1,2]}

-500380161290Задание 1.2.
Найти фундаментальную систему решений дифференциального уравнения: y(4)+2y''+y=0.
> de:=diff(y(x),x$4)+2*diff(y(x),x$2)+y(x)=0;
de:=
> dsolve(de, y(x), output=basis); [cos(x),sin(x),xcos(x), xsin(x)]

 
00Задание 1.2.
Найти фундаментальную систему решений дифференциального уравнения: y(4)+2y''+y=0.
> de:=diff(y(x),x$4)+2*diff(y(x),x$2)+y(x)=0;
de:=
> dsolve(de, y(x), output=basis); [cos(x),sin(x),xcos(x), xsin(x)]

 


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

Команды для выполнения аналитических вычислений в основном сосредоточены в меню Символика (Symbolics) и продублированы на аналогичной панели инструментов.
Чтобы упростить выражение (или часть выражения), надо выбрать его при помощи уголкового курсора и дать команду Символика > Упростить (Symbolics > Simplify). При этом выполняются арифметические действия, сокращаются общие множители и приводятся подобные члены, применяются тригонометрические тождества, упрощаются выражения с радикалами, а также выражения, содержащие прямую и обратную функции. Некоторые действия по раскрытию скобок и упрощению сложных тригонометрических выражений требуют применения команды Символика > Раскрыть/Расширить (Symbolics > Expand).
В меню Символика (Symbolics) предусмотрен ряд операций, ориентированных на выделенную переменную, использованную в выражении. Например, команда Solve (Решить) ищет корни функции, заданной данным выражением. В примере в аналитической форме получены все корни полинома второй степени: сначала применена команда solve для решения, а затем simplify для упрощения результата:
lefttop
Другие возможности использования этого меню включают:
аналитическое дифференцирование и интегрирование: Символика > Переменная > Дифференцировать (Symbolics > Variable > Differentiate) и Символика > Переменная > Интегрировать (Symbolics > Variable > Integrate);

замена переменной: Символика > Переменная > Подставить (Symbolics > Variable > Substitute) – вместо переменной подставляется содержимое буфера обмена;

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

Отметим, что функция Find пытается найти решение в аналитической форме. В том случае, если до блока Given задать численно значения всех параметров, входящих в уравнения, а также начальные приближения для корней, то получим решение в числовом виде.
Примеры использования функции Find для решения уравнений и систем уравнений различного типа приведены в соответствующих разделах пособия.
Любое аналитическое вычисление можно применить с помощью ключевого слова. Cписок ключевых слов 
MatlabРешение систем дифференциальных уравнений в символьном виде в системе MATLAB
Для решения дифференциальных уравнений в форме Коши MatLAB имеет функцию dsolve(‘eqn1’,’eqn2’, …), которая возвращает аналитическое решение системы дифференциальных уравнений с начальными условиями. Они задаются равенствами eqni(вначале задаются уравнения, затем начальные условия).
По умолчанию независимой переменной считается ‘t’ . Можно использовать и другую переменную, включив ее в конец списка параметров функции dsolve. Символ D обозначает производную по независимой переменной, то есть d/dt, при этом D2 означает d^2/dt^2 и т.д.
Начальные условия задаются в виде равенств ‘y(a) = b’ или ‘Dy(a) = b’, где y - независимая переменная, a и b – константы. Если число начальных условий меньше, чем число дифференциальных уравнений, то в решений будут присутствовать произвольные постоянные С1, С2 и т.д. Вывод осуществляется в виде массива записей.
 
Обратите внимание, что уравнение, которое требуется решить, задано как  строка, то есть взято в одинарные кавычки. Ответ представляет собой точное  (символьное) решение 1+корень(5). Для получения числовых решений введите double (ans) или vpa (ans), чтобы отобразить больше знаков. Ввод с командой solve может также быть символьным выражением, но в этом случае программа MATLAB потребует, чтобы правая часть выражения была заключена в скобки, и  фактически синтаксис решения уравнения х2 - Зх = -7 будет выглядеть так:

Ответ представляет собой точное (символьное) решение (3 + корень(19i))/2  (сложные числа, где буква i в ответе ставится для мнимой единицы V-1). Для  получения числовых решений введите double (ans) или vpa (ans), чтобы  отобразить больше знаков. 



Приложенные файлы


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