Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Система компьютерной математики Octave. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
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
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]