Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Система компьютерной математики Octave. Лабораторный практикум
.pdf
exxxx
2
sin64
=′′=′−=
−=−
′
0)0
(=y
=′′−=′=
1)0
(
−
=
y
txx
cos32=′′+′′
′
−=′′=′−
=
⋅=′
2)0
(
−
=
y
на отрезке [0, 3.5] с начальными условиями u(0) = [0, 2], [0.5, 2], [1, 2]. Построить на одном графике все три фазовые кривые.
t
2.0
В) Решить уравнение
xxx
′′′
при 0 <= t <= 10.
1)0(,2)0(,3)0(
′′
+
′
−
−
=
с начальными условиями
Вариант 2
А) Написать программу решения методом Эйлера задачи Коши для дифференциального уравнения
на отрезке [0; 2] с начальным условием
12
xyy
. Выполнить расчет для трех вариантов выбора шага
Сравнить полученные результаты
Б) Используя функцию
du
1
dt
du
2
dt
на отрезке
+=
2
uu
−−=
[0, 2] с
21
23
uu
21
начальными условиями
lsode(…),
.
получить решение системы ОДУ
u(0) = [-2; 0], [-2; 1], [-2; 2].
ить на одном графике все три фазовые кривые
В
)
Решить уравнение
xxx
0)0(,1)0(,1)0(
′′′
0 <= t <= 2π.
при
′′
1 xx
−=
.
2
с начальными условиями
h: 0.1, 0.01, 0.001.
Вариант
3
А) Написать программу решения методом Эйлера задачи Коши для диффе
2
3
ренциального уравнения
.
Выполнить расчет для трех вариантов выбора шага
Сравнить полученные результаты
Б) Используя функцию
′
3 yy =
lsode(…),
на
отрезке
[0; 2] с
начальным условием
.
получить решение системы ОДУ
h: 0.1, 0.01, 0.001.
Постро
-
-
du
1
dt
du
2
dt
на отрезке
на одном графике все три фазовые кривые
В
)
−=
12
uu
21
−=
43
uu
21
[0, 4] с
начальными условиями
Решить уравнение
xxx
2)0(,1)0(,1)0(
при
0 <= t <= 20.
u(0) = [2; 2], [-1; 2], [1; -2].
.
с
начальными условиями
Построить
Вариант
4
А) Написать программу решения методом Эйлера задачи Коши для диффе
ренциального уравнения
.
Выполнить расчет для трех вариантов выбора шага
Сравнить полученные результаты
xyy sin
на
отрезке
[0; 4] с
начальным условием
h: 0.1, 0.01, 0.001.
.
110
-

txxx2
cos4=+′′+′′
′
−=′′−=′
=
⋅−=
′
=
)0(
y
txxx3
sin22=′+′′+′′
′
−=′′=′=
x
1
=
)0(
y
ttxx=′+′′′cos
−=′′=′=
Б) Используя функцию lsode(…), получить решение системы ОДУ
du
1
dt
du
2
dt
−=
uu
21
=
37u
1
на отрезке [0, 3] с начальными условиями u(0) = [0; 2], [-1; 0], [1; -2]. Построить
на одном графике все три фазовые кривые.
В) Решить уравнение
xxx
при 0 <= t <= 20.
1)0(,2)0(,0)0(
с начальными условиями
Вариант 5
А) Написать программу решения методом Эйлера задачи Коши для дифференциального уравнения
ем
0.001.
Б) Используя функцию
на отрезке
4. Выполнить расчет для трех вариантов выбора шага
Сравнить полученные результаты
lsode(…),
du
dt
du
dt
1
2
+=
uu
21
−=
3uu
[0, 2] с
21
начальными условиями
на одном графике все три фазовые кривые
В) Решить уравнение
xxx
1)0(,2)0(,0)0(
при
0 <= t <= 20.
на отрезке [0; 3] с начальным услови-
yxy sin)2(
h: 0.1, 0.01,
.
получить решение системы ОДУ
u(0) = [0; -4], [-3; 5], [1; 5].
.
с
начальными условиями
Построить
Вариант
6
А) Написать программу решения методом Эйлера задачи Коши для диффе
2
y
−
1
ренциального уравнения
′
y
=
на
отрезке
[0; 2] с
начальным условием
+
2.
Выполнить расчет для трех вариантов выбора шага
h: 0.1, 0.01, 0.001.
-
Сравнить полученные результаты
Б) Используя функцию
du
1
dt
du
2
dt
на отрезке
−=
4
uu
uu
[0, 1] с
21
21
−+=
13
начальными условиями
lsode(…),
.
получить решение системы ОДУ
на одном графике все три фазовые кривые
В
)
Решить уравнение
xxx
1)0(,2)0(,0)0(
при
0 <= t <= 20.
111
u(0) = [-3; 3], [-3; 5], [1; 5].
.
с начальными условиями
Построить

⋅=′
=
)0(
y
1=′+′′′xx
−=′′−=′
=
=
)0(
y
ttx
x
sin
3
=′+′′
′
=′′=′−=
=
)0(
y
Вариант 7
А) Написать программу решения методом Эйлера задачи Коши для дифференциального уравнения
на отрезке [0; 1] с начальным условием
tgxyy
1. Выполнить расчет для трех вариантов выбора шага
Сравнить полученные результаты
.
h: 0.1, 0.01, 0.001.
Б) Используя функцию
du
1
dt
du
2
dt
на отрезке
+=
2
u
1
−=
uu
21
[0, 2] с
начальными условиями
на одном графике все три фазовые кривые
В
)
Решить
уравнение
xxx
lsode(…),
при
3)0(,2)0(,4)0(
0 <= t <= 20.
получить решение системы ОДУ
u(0) = [0; 7], [0; 5], [0; -2].
.
с
начальными
Построить
условиями
Вариант
8
А) Написать программу решения методом Эйлера задачи Коши для диффе
ренциального уравнения
вием
2.
Выполнить расчет для трех вариантов выбора шага
′
2
на
)(1
yyxy −+=
отрезке
[0; 1] с
начальным усло
h: 0.1, 0.01,
-
-
0.001.
на отрезке
на одном графике все три фазовые кривые
Сравнить полученные результаты
Б) Используя функцию
du
1
−=
1
u
В
dt
du
2
dt
)
Решить уравнение
2
−=
2
uu
[0, 8] с
21
начальными условиями
xxx
lsode(…),
при
2)0(,0)0(,4)0(
.
получить решение системы ОДУ
u(0) = [1; 2], [1; 4], [0; 4].
.
с начальными условиями
0 <= t <= 20.
Построить
Вариант
9
А) Написать программу решения методом Эйлера задачи Коши для диффе
ренциального уравнения
условием
0.01, 0.001.
-1.
Выполнить расчет для трех вариантов выбора шага
Сравнить полученные результаты
Б) Используя функцию
′
lsode(…),
2
⋅+=
xyyy cos)2(
на
отрезке
[0; 3] с
.
получить решение системы ОДУ
начальным
-
h: 0.1,
du
1
−=
3
u
dt
du
2
=
dt
2
u
1
112

1=+′⋅+′′′xxtx
=′′=′
=
−
1)0
(=y
02sin3=′−′′′txx
=′′−=′=
+−⋅=′
2)0
(=y
0
cos=′−′′′tx
x
=′′−=′−
=
+⋅+=′
1)0
(
−
=
y
на отрезке [0, 5] с начальными условиями u(0) = [0; 2], [0; 0], [0; -1]. Построить
на одном графике все три фазовые кривые.
В) Решить уравнение
при 0 <= t <= 20.
xxx
1)0(,1)0(,1)0(
с начальными условиями
Вариант 10
А) Написать программу решения методом Эйлера задачи Коши для диффе-
x
ренциального уравнения
.
Выполнить расчет для трех вариантов выбора шага
′
y
=
21y
на
2
+
отрезке
[0; 2] с
начальным условием
h: 0.1, 0.01, 0.001.
Сравнить полученные результаты
Б) Используя функцию
du
1
=
u
dt
du
dt
на отрезке
2
2
−=
3uu
T = [0, 4] с
21
lsode(…),
начальными условиями
строить на одном графике все три фазовые кривые
В
)
Решить уравнение
xxx
5)0(,4)0(,0)0(
.
получить решение системы ОДУ
при
0 <= t <= 10.
u(0) = [0, 4], [4, -2], [0, -4]. По-
.
с
начальными условиями
Вариант
11
А) Написать программу решения методом Эйлера задачи Коши для диффе
ренциального уравнения
вием
0.001.
Сравнить полученные результаты
.
Выполнить расчет для трех вариантов выбора шага
Б) Используя функцию
lsode(…),
на
)31( yxxy
отрезке
[0; 2] с
начальным усло
h: 0.1, 0.01,
.
получить решение системы ОДУ
-
-
du
1
dt
du
2
dt
на отрезке
строить на одном графике все три фазовые кривые
В
)
Решить уравнение
+−=
uu
21
−=
2uu
21
T = [0, 4] с
xxx
начальными условиями
при
1)0(,1)0(,1)0(
0 <= t <= 12.
u(0) = [0; 2], [2; -2], [0; -2]. По-
.
с начальными условиями
Вариант
12
А) Написать программу решения методом Эйлера задачи Коши для диффе
ренциального уравнения
условием
0.01, 0.001.
.
Сравнить полученные результаты
на
)1ln()1( xyy
отрезке
[0; 4] с
начальным
Выполнить расчет для трех вариантов выбора шага
.
113
-
h: 0.1,

exx
−
=
′′=′=
=+′+′
′
1)2(,0)0(
−==
y
y
h
+
−
h
2
−
Б) Используя функцию lsode(…), получить решение системы ОДУ
du
1
dt
du
2
dt
−=
1
uu
21
−=
uu
21
на отрезке [0, 3] с начальными условиями u(0) = [0; -1], [1; 0], [1; -1]. Построить
на одном графике все три фазовые кривые.
t
В) Решить уравнение
при 0 <= t <= 10.
xxx
2)0(,1)0(,0)0(
′′′
′
+
5.02−
=
с начальными условиями
Лабораторная работа № 8
МЕТОД КОНЕЧНЫХ РАЗНОСТЕЙ.
РЕШЕНИЕ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ
Цель работы: научиться применять метод конечных разностей для решения
краевых задач.
Метод конечных разностей нашел применение при решении краевых задач
как в случае обыкновенных дифференциальных уравнений, так и в случае дифференциальных уравнений в частных производных. Заметим, что в отличие от
задачи Коши краевая задача при тех же условиях может не иметь решения или
иметь бесконечно много решений.
Идея метода: заменить все производные, входящие в уравнение, их конечными разностями. После этого задача сводится к решению алгебраической системы уравнений. В общем случае эта система оказывается нелинейной, и это
существенно ограничивает применение метода конечных разностей. В то же
время решение линейной системы алгебраических уравнений в пакете Octave
не представляет сложностей.
Пример 1. Решить уравнение
на отрезке [0; 2] при услови-
022
yyy
ях
есть
x+=−
ся при значениях
Применим для решения уравнения метод конечных разностей. Разобьем об
ласть изменения переменной
ные точки от
формулами
1 до n+1.
:
2
′′
y
=
2
Заметим, что погрешность аппроксимации и первой, и второй производных
имеет порядок
O(h2).
нение и учитывая краевые условия, приходим к системе
. Общее решение этого дифференциального уравнения
.
Условия на концах отрезка будут выполнять
)cossin()(
xCxCexy
21
1
yyy
2
2
x на n
Заменим в точках
11
kkk +−
,
′
y
=
.
0,2sin/
=−= CeC
частей с шагом
yy
kk
x = xk
11 −+
,
где
производные приближенными
k = 2,…n.
h.
Пронумеруем получен
Подставляя приближения производных в исходное урав
114
-
-
-
-

=
⋅
=
0
+−
2
2
h
y
1
−
yyy
11
+
2
y
+
1
n
yy
−++−
11
kkkkk
2
h
−=
1
y
, k = 2, …, n.
=+
02
k
Умножим все уравнения, содержащие h2 в знаменателе, на h2. После приведения подобных получим систему линейных алгебраических уравнений относительно вектора неизвестных
1
2
y
y
n
Остается только решить ее
Обозначим
L –
длина диапазона изменения независимой переменной
:
,...,,
01
1
−=⋅
+
11
1
.
.
yyy
121
+n
==⋅++⋅−+⋅−
...,,2,0)1()2()1(
nkyhyhyh
+−
1
kkk
x;
n –
h –
A –
B –
Напишем программу
число отрезков разбиения диапазона
длина каждого отрезка разбиения
матрица коэффициентов системы уравнений
;
;
;
вектор-столбец правой части системы уравнений
:
.
L=2; n=100; h=L/n;
x=[0:h:L];
% формируем матрицу A и вектор правых частей B
A=zeros(n+1);
B=zeros(n+1,1);
A(1,1)=1; B(1)=0;
for k=2:n
A(k,k-1)=1-h;
A(k,k)=h^2-2;
A(k,k+1)=1+h;
end;
A(n+1,n+1)=1; B(n+1)=-1;
% решаем полученную систему уравнений
y=A\B;
% строим график
plot(x,y,'linewidth',2)
grid on
При сравнении полученных результатов с аналитическим решением по
грешность численного решения по абсолютной величине не превысила значе
ния
7.7⋅10-4.
Заметим, что приведенный пример можно обобщить: коэффициенты урав
нения могут быть функциями независимой переменной, а условие на концах
115
-
-
-

=+′⋅+
⋅
h
2
−+−
h
2
+
−
x
t
∂
===
h
h
2
a
h
τ
h
отрезка для уравнения второго порядка может иметь вид
0)()(
cxybxya
. В
pp
этом случае для аппроксимации производной ре
-
комендуется использовать формулы второго порядка точности, полученные в
лабораторной работе
′
xy
)(
=
1
′
xy
)(
=
n
1+−+
6:
43
yyy
321
;
yyy
34
nnn
11
.
Метод конечных разностей используется и при решении уравнений
в частных производных. Рассмотрим для примера одномерное уравнение теп
2
∂
2
a
лопроводности
∂
txu
=
∂
проводности материала, его размерность в системе Си
коэффициент находится в диапазоне
отрезке
x = [0; 1].
Пусть на концах отрезка поддерживается постоянная темпе
ратура, а начальная температура во всех точках отрезка равна нулю
),(),(
txu
.
2
Здесь a
10-6 – 10-4
2
есть коэффициент температуро
2
–
м
/с.
Для металлов этот
м
2
/с.
Решение будем искать на
:
),1(,),0(,0)0,( TtuTtuxu
10
Заменим частные производные их конечными разностями. Для этого разо
бьем отрезок изменения пространственной переменной
–
число отрезков разбиения. Будем последовательно вычислять температурное
x с
шагом
h = 1/n,
где
n
-
-
-
-
поле в моменты времени τ
для момента времени
части уравнения при
x = xk
, 2τ, 3τ, …,
t = jτ
где τ
–
шаг дискретизации времени. Пусть
результат уже получен. Тогда производную в левой
j
uu −
k
, а
можно аппроксимировать выражением
j
+1
k
τ
j
j
производную в правой части уравнения
11
j
1
k
−
j
++
2
k
2
ностную схему, а во втором
ство явной схемы
1
j
+
uuu
+−
1
k
+
. В
первом случае мы получим так называемую явную раз
–
неявную разностную схему задачи. Преимуще
– в
простоте вычислений, так как
–
выражением
уравнений содержит всего одну неизвестную величину
k +−
каждое из полученных
1+j
,
u
однако для устой
k
чивости сеточного решения необходимо выполнения сильного ограничения
1
условия
≤
[9]. В то же
22
время неявная схема является устойчивой при
любом соотношении шагов дискретизации, но для получения результата в этом
случае необходимо решить систему уравнений для каждого момента времени
После элементарных преобразований эта система принимает вид
1
+
j
1
−
k
j
=
Tu
1
11
++
j
k
j
n
0
1
+
j
+
k
1
+
=
Tu
1
1
+
j
1
==⋅−++⋅−
k
nkuuququq
,,...,2,)21(
где
qτ=
2
a
2
j
2
uuu
+−
11
k
k
2
или
–
.
.
-
-
-
116

Напишем программу решения системы.
Обозначим:
tau
– значение параметра τ;
h – значение параметра h;
a2
– значение коэффициента температуропроводности a2;
Q – значение параметра q;
n – число отрезков разбиения диапазона;
h – длина каждого отрезка разбиения;
A – матрица коэффициентов системы уравнений;
u – вектор-столбец правой части системы уравнений (и одновременно
значения температуры в точках разбиения).
n=100;
tau=0.01; h=1/n; Q=a2*tau/(h^2);
x=0:h:1;
A=zeros(n+1);
u=zeros(n+1,1);
%формируем матрицу A
A(1,1)=1;
for k=2:n
A(k,k-1)=-Q;
A(k,k)=1+2*Q;
A(k,k+1)=-Q;
end
A(n+1,n+1)=1;
% находим обратную матрицу
V = inv(A);
hold on
grid on
for pt=1:40
% вычисляем температуру и строим график
u=V*[T0;u(2:n);T1];
if rem(pt,5)==0
plot(x,u,'linewidth',2)
end
end
Результаты расчетов приведены на рисунке ниже.
117

∂
x
Заметим, что со временем температурное поле стремится к стационарному
состоянию.
Пояснения к программе.
1) Для решения системы уравнений был выбран метод обратной матрицы,
хотя нахождение обратной матрицы требует больше вычислений. Но в данном
случае обратная матрица вычисляется только один раз, а затем многократно используется при нахождении решения системы уравнений с изменяющимся вектором правой части.
2) На график выводится только каждая пятая кривая, чтобы сделать резуль-
тат более наглядным.
Кроме задания температуры на концах отрезка (граничных условий первого
рода) можно задавать значение производных по x (граничных условий второго
рода) и смешанных условий (граничных условий третьего рода).
u
Пример 2. Зададим в предыдущей задаче граничное условие
0=
в
точке
∂
x = 0.
происходит. В программу расчета понадобится ввести два изменения
формулам, аппроксимирующим первую производную
Это условие означает, что передачи тепла в окружающее пространство не
:
–
ненулевые элементы в первой строке матрицы
A
будут вычисляться по
:
A(1,1)=-3/(2*h);
A(1,2)=4/(2*h);
A(1,3)=-1/(2*h);
–
изменится также вектор правой части при вычислении температуры
u=V*[0;u(2:n);T1];
118
:

100
)0,
(=x
u
=
=
α
Результат приведен на рисунке.
Пример 3. Пусть теперь начальная температура
, левый конец
отрезка теплоизолирован, а правый охлаждается в среде с температурой
и коэффициентом теплоотдачи α
∂
u
α
∂
x
1
=
x
Tu
s
1
=
x
.
0)(
=−+
:
Приведем только изменения в программном коде
–
ненулевые элементы в последней строке матрицы
следующим формулам
A(n+1,n-1)=1/(2*h);
A(n+1,n)=-4/(2*h);
A(n+1,n+1)=3/(2*h)+alpha;
–
изменится также вектор правой части при вычислении температуры
u=V*[0;u(2:n);alpha*Ts];
:
:
A
будут вычисляться по
:
T
s
Результат, полученный для значений
119
T
,
приведен на рисунке
0,20
s
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
