Материал: Спецглавы высшей математики. численные методы. Пантелеев И.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

k3=dx*F9(x(i-l)+dx/2,y(i-l)+k2/2); k4=dx*F9(x(i-l)+dx,y(i-l)+k3); y(i)=y(i-l)+l/6*(kl+2*k2+2*k3+k4); end; X=x; Y=y; function z=F9(x,y) z=х.^2;

45

40

35

30

25

20

15

10

5

0

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

Рис. VIII.6. Визуализация точного решения задачи Коши

 

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

dy

x2 , y 0 1,3 и

 

dx

 

 

 

 

 

 

 

 

 

 

численного решения, полученного методом Рунге-Кутта

2. Выполните следующую последовательность команд:

»х0=0;% левая граница отрезка интегрирования

»xl=5;%правая граница отрезка интегрирования

»уО=1.3;% начальное условие

»N=50; % число узлов разбиения отрезка

%интегрирования

»[X Y]=RungeKutt4(y0,x0,xl,N);

188

% нахождение численного решения задачи Коши

» i=l:length(X);

 

 

 

 

 

 

 

» Z(i)=y0+l/3*X(i).^3; % вычисление значений

 

 

 

 

 

 

% точного решения

» plot(X,Z,X,Y,':') % визуализация точного и

 

 

 

% численного решений

 

 

 

 

% (рис. VIII.6)

 

 

 

» plot(X,abs(Z-Y))% визуализация разности

% между численным и точным решениями ДУ

% (рис. VIII.7)

 

 

 

 

 

 

 

 

1,2

x 10-14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

0,8

 

 

 

 

 

 

 

 

 

 

0,6

 

 

 

 

 

 

 

 

 

 

0,4

 

 

 

 

 

 

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

Рис. VIII.7. Разность между точным решением задачи Коши дифференциального уравнения dydx x2 , y 0 1,3 и численным

решением, полученным методом Рунге-Кутта

189

8.5. Средства пакета MATLAB для решения обыкновенных дифференциальных уравнений

Решение задачи Коши для дифференциальных уравнений методом Рунге-Кутта 4-го порядка реализовано в пакете MATLAB в виде функции ode45. Этот метод рекомендуется использовать при первой попытке нахождения численного решения задачи.

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

□ode23 — функция реализует одношаговые явные методы Рунге-Кутта второго и третьего порядков. Используется при решении нежестких систем дифференциальных уравнений и обеспечивает удовлетворительную точность при меньших (нежели функция ode45) временных затратах.

□ode113 — функция реализует многошаговый метод Адамса- Башворта-Мултона переменного порядка. Используется при необходимости обеспечить высокую точность численного решения.

□ode15s — функция реализует многошаговый метод переменного порядка (от 1 до 5 по умолчанию), основанный на формулах численного дифференцирования. Данный метод следует использовать в том случае, если не удается найти численное решение с помощью функции ode45.

□ode23s — функция реализует одношаговый метод, использующий модифицированную формулу Розенброка 2-го порядка. Данный метод обеспечивает более высокую скорость вычислений по сравнению с другими методами при относительно более низкой точности вычислений.

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

190

□ ode23tb — функция реализует неявный метод Рунге-Кутта в начале интервала интегрирования и далее метод, использующий формулы обратного дифференцирования 2-го порядка. Данный метод обладает большей скоростью нежели метод ode15s при, соответственно, меньшей точности.

Все перечисленные ранее функции, описываемые в документации пакета Solver (Решатель), могут решать системы

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

 

 

 

 

 

y

F t, y .

 

 

 

 

 

 

 

 

Кроме того, решатели odel5s,

ode23s,

ode23t и ode23tb

системы

дифференциальных

уравнений

неявного

вида

 

 

 

 

 

 

 

Mt, y y F t, y ,

атакже все решатели, кроме ode23s, могут находить решения

уравнения вида

 

 

 

 

 

 

 

M y

y F t,

y .

 

 

 

 

 

 

 

 

Пример VIII.3. Найти решение задачи Коши для

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

 

 

 

 

 

 

dT

r T T ,

(VIII.34)

 

 

 

 

 

 

 

dt

 

 

s

 

 

Ts , r —

 

 

 

 

 

где

заданные постоянные, имеющие физический

смысл температуры окружающей среды и коэффициента остывания, соответственно, с начальным условием Т(0) = 80. 1. Для решения дифференциального уравнения (VIII.34) сначала создайте файл Tempr.m (листинг VIII.4), содержащий определение функции, стоящей в правой части уравнения

(VIII.1):

Листинг VIII.4. Файл Tempr.m function Z=Tempr(t,T)

%определение функции, стоящей в правой части

%уравнения (VIII.1)

191

global Ts r Z(l)=-r*(T-Ts);

2. Далее выполните в командном окне MATLAB следующую последовательность операторов:

»global Ts r % объявление глобальных

%переменных

»Ts = 22 % задание значения температуры

%окружающей среды

»r = 0.024 % задание значения коэффициента

%остывания

»ТО = 80 % задание начальной температуры

%тела

»[t,T]=ode45('Tempr',[0:0.01:15],ТО);

%Tempr - имя файла, содержащего

%определение функции,

%стоящей в правой части уравнения (VIII.1);

%[0:0.01:15] - вектор,

%определяющий интервал

%интегрирования,

%ТО - переменная, содержащая

%начальную температуру

» plot(t,T)

После выполнения приведенной ранее последовательности команд будет создано окно, содержащее график зависимости температуры тела от времени, представленный на рис. VIII.8. По умолчанию решатели систем дифференциальных уравнений пакета MATLAB используют параметры, относительная погрешность которых не превосходит переменной RelTol=10-3, граница абсолютной погрешности численного решения — переменная AbsTol=10-6. Для изменения значений этих переменных используется команда

» options=odeset('RelTol',le-4,AbsTol',le-4);

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

80

78

76

74

72

70

68

66

64

62

0

5

10

15

Рис. VIII.8. Численное решение уравнения теплопроводности, возвращенное функцией ode45

193

192

IX. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ

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

9.1. Общие сведения и классификация уравнений в частных производных

Определение IX.1.

Дифференциальные

уравнения,

содержащие

частные производные,

называются

дифференциальными уравнениями в частных производных. В отличие от обыкновенных дифференциальных уравнений (ОДУ), в которых неизвестная функция зависит только от одной переменной, в уравнениях с частными производными неизвестная функция зависит от нескольких переменных (например, температура зависит от координаты х и времени t). Для упрощения записи будем использовать следующие обозначения:

u

 

u

, S(t), u

 

 

2u

.

t

 

x2

t

 

 

xx

 

 

Примеры уравнений с частными производными:

ut uxx (одномерное уравнение теплопроводности);

ut u x x uy y (двумерное уравнение теплопроводности);

 

u

r r

1 u

r

 

1

 

u

0 (уравнение Лапласа в полярных

r2

 

 

r

 

 

 

 

координатах);

 

 

ut t

u x x

u y y

u z z

(трехмерное волновое уравнение);

 

ut t

u x x

ut

u (телеграфное уравнение).

Отметим, что в приведенных ранее примерах неизвестная функция и зависит более чем от одной переменной. Функция и, от которой находятся производные, называется зависимой переменной, переменные t, х, по которым производится дифференцирование, называются независимыми переменными. Методы решения уравнений в частных производных:

метод разделения переменных

метод интегральных преобразований

метод преобразования координат

метод преобразования зависимой переменной

численные методы

метод теории возмущений

метод функций Грина

метод интегральных уравнений

вариационные методы

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

метод обратной задачи рассеяния

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

Методы классификации УЧП:

1.По порядку уравнения (порядком уравнения называют наивысший порядок частных производных, входящих в уравнение):

ut ux (уравнение первого порядка);

ut uxx (уравнение второго порядка);

ut uux x x sin x (уравнение третьего порядка);

2.По числу переменных (числом переменных называют число независимых переменных).

ut u x x (уравнение с двумя переменными);

195

194

ut ur r 1r ur r12 u (уравнение с тремя переменными

r, θ, t) ;

3. По критерию линейное/нелинейное.

Линейным уравнением второго порядка с двумя независимыми переменными называется уравнение вида

Auxx Buxy Cu yy Dux Eu y Fu G ,

(IX.1)

где А, В, С, D, Е, F и G константы или заданные функции переменных х и у.

 

uxx yu yy 0 , utt

e t uxx sin t (линейные уравнения);

 

uuxx ut 0 , xux

yu y u 2 0 (нелинейные уравнения).

4. По критерию однородное/неоднородное.

Уравнение (IX.1) называется однородным, если правая часть С(х,у) тождественно равна нулю для всех х и у. Если С(х,у) не равна нулю тождественно, то уравнение называется

неоднородным.

5. По виду коэффициентов.

Если коэффициенты А,В,С,D ,Е,F и G уравнения (IX.1) — константы, то уравнение (IX.1) называется уравнением с

постоянными коэффициентами, в противном случае уравнением с переменными коэффициентами.

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

B 2 4AC 0.

Гиперболический тип. Уравнения гиперболического типа описывают колебательные системы и волновые движения и определяются условием

B 2 4AC 0.

Эллиптический тип. Уравнения эллиптического типа описывают установившиеся процессы и определяются

условием

196

B 2 4AC 0.

Примеры линейных уравнений разных типов:

ut uxx , B2 4AC 0 (параболическое);

utt uxx , B2 4AC 4 (гиперболическое);

u 0, B 2 4AC 1 (гиперболическое);

 

uxx u yy 0, B 2 4AC 4 (эллиптическое);

 

yuxx u yy 0, B 2 4AC 4 y (эллиптическое при y > 0,

 

параболическое при y = 0, гиперболическое при y < 0).

9.2. Численные методы решения эллиптических уравнений

При решении эллиптических УЧП ставится задача отыскания решения в некоторой области пространства при заданных значениях функции на границе области (задача Дирихле). Иллюстрацией задачи Дирихле является задача нахождения решения уравнения Лапласа

u

rr

 

1

u

r

 

1

u

 

0,

0 r 1,

 

r 2

 

 

r

 

 

 

 

с заданными граничными условиями (ГУ)

 

 

u(1, ) sin ,

0 2 .

Рассмотрение численных методов решения задачи Дирихле уравнения Лапласа

 

uxx u yy 0 ,

 

 

в прямоугольной области 0 x 1,

0 y 1

с граничными

условиями

 

 

 

u(x,0) g1 ( y),

u(1, y) g2 ( y), u(x,1) g3 ( y),

u(0, y) g4 ( y),

начнем со знакомства с понятием конечно-разностная частная производная.

Напомним, что при численном интегрировании производную функции, определяемую в соответствие с выражением

197

Источник: https://studfile.net/preview/16565850/