|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Приближенное решение дифференциальных уравнений с помощью степенных рядов
В тех случаях, когда решение дифференциальных уравнений не может быть найдено в аналитическом виде, необходимо использовать приближенные методы построения решения. В частности, чтобы найти приближенное решение дифференциального уравнения в виде степенного ряда, в команде dsolve следует в качестве параметра задать type=series (или просто series), и перед dsolve вставить определение порядка разложения n с помощью команды 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(%). Пример. Найти решение задачи Коши: , в виде степенного ряда с точностью до 7-го порядка. [> restart; Order:=7: [> dsolve({diff(y(x),x)=y(x)+x*exp(y(x)), y(0)=0}, y(x), type=series);
В полученном решении слагаемое означает, что точность разложения была произведена до 7-го порядка. Пример. Найти приближенное решение в виде степенного ряда до 6-го порядка и точное решение задачи Коши: , , , . Построить в одной системе координат графики точного и приближенного решений. [> restart; Order:=6: [> de:=diff(y(x),x$3)-diff(y(x),x)=3*(2-x^2)*sin(x); de:= [> cond:=y(0)=1, D(y)(0)=1, (D@@2)(y)(0)=1; cond:=y(0)=1, D(y)(0)=1, D(2)(y)(0)=1 [> dsolve({de,cond},y(x)); y(x)= [> y1:=rhs(%): [> dsolve({de,cond},y(x), series); y(x)= Замечание: тип решения дифференциального уравнения в виде ряда есть series, поэтому для дальнейшего использования такого решения (вычислений или построения графика) его обязательно следует конвертировать в полином с помощью команды convert. [> convert(%,polynom): y2:=rhs(%): [>p1:=plot(y1,x=-3..3,thickness=2,color=black): [> p2:=plot(y2,x=-3..3,linestyle=3,thickness=2, color=blue): [> with(plots): display([p1,p2]); Из полученного графического отображения результатов (рис. 7.2) вычислений видно, что наилучшая аппроксимация точного решения степенным рядом достигается на интервале -1<x<1.
Рис. 7.2. Графики точного и приближенного решений задачи Коши , , ,
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |