Приближенноерешениедифференциальных уравнений.


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

1. Приближениерешенияспомощьюстепенногоряда.Представим,чтомыдолжнырешитьзадачуКошидлядифференциальногоуравненияn-

го порядка

y(n)= F(x,y,y¢,...,y(n-1))

(n-1)

с начальным условием

y(x0)= y0,y¢(x0)= y1,...,y

(x0)= yn-1. ЕслифункцияF в правойчасти

уравненияразлагаетсяврядыповсемсвоимпеременным,удобноискать

решениедифференциальногоуравнениявокрестноститочки

x= x0

ввиде

ряда Тейлора по степеням

0 1 0 2 0
y(x)= c+ c(x- x)+ c(x- x)2

(x- x0). Представим решение в виде

+.... Из начальных условий и свойств

коэффициентоврядаТейлораследует, что всекоэффициентыразложения

вплотьдоcn

нам известны:

y(x)= y

+ y(x- x

)+ y2(x- x

)2+...+

yn-1

(x- x

)n-1+

0 1 0 2! 0

(n-1)! 0

+ F(x0,y0,...,yn-1)

n!

(x- x0)

n+1 0
n+ c (x- x)n+1

+ ...,

остальные– неизвестные– коэффициентыобозначаютсябуквами ck и

определяются сравнением коэффициентов при одинаковых степенях,

находящихся в обеихчастяхдифференциальногоуравнения.

Пример. Решить следующую задачуКоши:

y¢ = xy¢ - y2,y(0)= 0,

y¢(0)= 2.

Искатьрешениебудемввидерядапостепенямx.Всоответствиис

начальнымиусловиями

y(x)=1+ 2x- 1x2+ cx3+ cx4+....

2 3 4

Подставимхотябыпервыеслагаемыерядов в уравнение:

-1+ 6cx+12cx2+ 20cx3+...= x(2- x+ 3cx2+...)-

3 4 5 3

-(1+ 2x- 1x2+ cx3+...)(1+ 2x- 1x2+ cx3+...).

2 3 2 3

Перемножимвходящие в правую часть сомножители:

2 3 2 3 2 3

-1+ 6c3x+12c4x

+ 20c5x

+...= 2x- x

+ 3c3x

+...-(1+ 4x+3x

+ (2c3- 2)x

+...)

Атеперьсравнимсвободныечлены(ониравны)икоэффициентыприx,при

x2ипри

x3:

6c3= -2,12c4= -4,20c5= 2c3- 2. Отсюда

c= - 1,

3 3

c= - 1,

4 3

c5= -15.

Мы моглибыи далеесравниватькоэффициентыпристепенях xв

уравнениии получатьзначениядругихкоэффициентов

ck. Темболее

применение программMAXIMAупрощаетэтот процесс. Вданном случаемы

получили решение в виде ряда, первые члены которого известны:

y(x)=1+ 2x- 1x2- 1x3- 1x4- 2

x5+....

2 3 3 15

Задачу Коши для системы уравнений можно решать подобным

способом.

2. МетодЭйлераиегомодификации.ПознакомимсясметодомЭйлерачисленногорешениязадачиКошидлядифференциальногоуравнения

первогопорядка

y¢ =

f(x,y),

y(x0)= y0. Предположим,чтомыдолжны

решитьзадачу на отрезке

[x0,x0+ b].Разделим отрезок

[x0,x0+ b]

на n

равных частей, равных D . Заменим на каждом отрезке




Приближенноерешениедифференциальных уравнений. - student2.ru [x0+ kD,x0+ (k+1)D]=[xk,xk+1],

k= 0,...,n-1,решениедифференциального

уравнениялинейнойфункцией

узловыезначениярешения:

yk(x)= yk+ f(xk,yk)(x- xk).Приэтомимеем

y1= y0+ f(x0,y0)D,y2= y1+ f(x1,y1)D,...,yn= yn-1+ f(xn-1,yn-1)D.

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

y - y

= f x y .

k+1 k

D

(k, k)

Очевидно,чтотакоеприближениеявляетсятемменееточным,чем

дальшемы отойдемот точки

(x0,y0). Метод Эйлераявляетсянаиболее

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

y = y+ f(x+ D ,y+ f(x,y)D)D .

k+1 k k 2 k k k 2

Наиболеераспространеннымчисленнымметодомрешенияуказанной

задачиКошиявляетсяметодРунге-Кутта.Прирешениидифференциальногоуравненияэтимметодоминтегральнаякриваязаменяетсяломаной,состоящейизкусковпарабол.МетодРунге-Куттавстроен впакетпрограммMAXIMA.

Например,мыхотимрешитьдифференциальноеуравнение

y¢ = y2+ xс

начальнымусловием

y(0)= 0.3. Приэтом мызадаем отрезок[0,1],на

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

load(dynamics); rk(y^2+x,y,0.3,[x,0,1,0.05]);

Послетого, как мынажмемклавишиShift+Enter, получимданные[[0,0.3],[0.05,0.30583128660202],[0.1,0.31438277172198],

[0.15,0.32574776902574],[0.2,0.34003114365951],[0.25,0.35735268712942],

[0.3,0.37785103897622],[0.35,0.40168830090343],[0.4,0.42905553899765],

[0.45,0.46017943684494],[0.5,0.49533045405802],[0.55,0.53483297195895],

[0.6,0.57907808748734],[0.65,0.62853997325452],[0.7,0.6837970957275],

[0.75,0.74556013793749],[0.8,0.81470931041585],[0.85,0.89234502470182],

[0.9,0.97985793824278],[0.95,1.079027666994073],[1.0,1.192164923146931]].

Это означает,чтомыполучилиузловыезначениярешения:

y(0.05)=0.30583128660202,…,y(0.4)=0.42905553899765,…..

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

y¢ + x(y¢)2+3x2y= 2

наотрезке[0,2]сшагом0.1приначальныхусловиях




y(0)=1,

y¢(0)= 0. Введем новую функцию z= y¢ . Теперь уравнение

запишется ввидесистемы

ïì y¢ = z,

î
íïz¢ = 2- xz2- 3x2y

с начальнымиусловиями

y(0)=1,

z(0)= 0.

Для получения решения методом Рунге-Кутта вводим команду

load(dynamics); rk([z,2-x*z^2-3*x^2*y], [y,z], [1,0], [x,0,2,0.1]).

Мы получимзначения вузлах:[[0,1,0],[0.1,1.009973277486667,0.19889443755825],

[0.2,1.03953179049664,0.39025908431976],

[0.3,1.087443707860848,0.56407930484999],

[0.4,1.151355476824082,0.70808296273707],

[0.5,1.227625229955781,0.80905909503231],

[0.6,1.31132100772257,0.85473889531278],

[0.7,1.396404177611673,0.83546996450053],

[0.8,1.476033430956961,0.74483368487679],

[0.9,1.542855824183935,0.57873490276185],

[1.0,1.589128945076604,0.33294944409803],[1.1,1.606518986789783,-9.8829227227875682*10^4],[1.2,1.585353126452777,-0.44308261198787],

[1.3,1.512758668789601,-1.041803224981043],

[1.4,1.367721332806764,-1.927748829187044],

[1.5,1.104119674291387,-3.562685524381777],

[1.6,0.55276102463945,-9.157645341403534],

[1.7,-3.785389000081017,-789.9052329768924],

[1.8,-1.8741633219283803*10^14,-3.7934868677108632*10^30]].

Это означает,что, например,

y(0.5)=1.227625229955781,z(0.5)=0.80905909503231.

3. Графический метод. Этим методом можно решать

дифференциальныеуравненияпервогопорядкавида

y¢ =

f(x,y).Еслинам

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

каждойточке

(x0,y0)

этойобластиставим всоответствиезначение

f(x0,y0)

,котороесовпадаетстангенсомугланаклонакасательной кинтегральной

кривой, проходящей через точку

(x0,y0). Зная точку и направление

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

задачуКоши

y¢ =

f(x,y),

y(x0)= y0.

Реальное построение решения таким методом было бы оченьсложным без применения компьютерной техники. MAXIMA содержит

программупостроенияграфическихрешений.Еслимывведемload(plotdf);plotdf(f(x,y),[y,c,d],[x,a,b]),наэкранепоявитсяпрямоугольник[a,b]×[c,d],в

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

Например,мы хотим построитьинтегральнуюкривуюуравнения

y¢ =

5- x2

2xy- y2, расположенную в прямоугольнике

[9,13]×[-7,9] и

проходящую через точку(11,2) .

Введемload(plotdf);plotdf((5-x^2)/(2*x*y-y^2),[y,-7,9],[x,9,13]);инажмемShift+Enter.Мыполучимвыбранныйпрямоугольниксуказаниемнаправленийизточекпрямоугольника.Теперьщелкнемпоточке(11,2),инарисуетсясоответствующаяинтегральнаякривая.

Приближенноерешениедифференциальных уравнений. - student2.ru

Наши рекомендации