Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №3 ПРИБЛИЖЕННОЕ РЕШЕНИЕ ЗА...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
789.5 Кб
Скачать

2. Порядок выполнения лабораторной работы.

Работа рассчитана на два-три занятия и состоит из нескольких этапов.

2.1. На первом этапе преподаватель вкратце рассказывает о методе Эйлера решения задачи Коши для обыкновенного дифференциального уравнения первого порядка и раздает задания. Примерный перечень вариантов заданий представлен в приложении 1.

Замечание. Задание может быть представлено в виде

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

Пример составления дифференциального уравнения в задании с практической задачей. В результате химической реакции меду веществами А и В массам а и b образуется третье вещество С массы с. Причем для образования массы m ( 0 ≤ mc ) вещества С требуется по m количества единиц массы веществ А и В. Установить зависимость массы вещества С от времени, если скорость реакции пропорциональна произведению вступающих в реакцию веществ.

Пусть x = x ( t ) – количества вещества С, которое образовалось за время t после начала реакции. Тогда скорость образования вещества С (скорость реакции). По условию

= k (ax) ( bx), x(0) = 0,

где kкоэффициент пропорциональности.

Начальное условие x(0) = 0 означает, что в начале реакции

( t = 0) вещества С еще нет.

2.2. На втором этапе студенты знакомятся с методическими указаниями по выполнению лабораторной работы и начинают аналитически решать задачу Коши в рабочей тетради.

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

Основные типы обыкновенных дифференциальных уравнений 1-го порядка

Уравнения с разделяющимися переменными.

Пусть в уравнении

y = f ( x, y )

функция f ( x, y ) может быть разложена на множители, каждый из которых зависит только от одной переменной х или у :

f (x, y) = f 1(x) f 2(у)

или в уравнении

M ( x, y ) dx + N ( x, y ) dy = 0

коэффициенты при dx и dy представляются в виде M(x, y) = M1(x) M2(у), N (x, y) = N1(x) N2(у). Путем деления соответственно на f 2(у) и на

N1(x) M2(у) эти уравнения приводятся соответственно к виду

f 1(x) dx = dy, dx = – dy .

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

Пример 1. Решить задачу Коши = k (ax) ( bx), x(0) = 0,

полученную в примере составления дифференциального уравнения в задании с практической задачей.

Исходное уравнение - это уравнение с разделяющимися переменными:

= k dt.

Преобразуем полученное уравнение к виду

= k dt.

Интегрируем правую и левую части и получаем:

ln | xa | – ln | xb | = k (ab) t + ln | C | => = C e k (ab) t .

Из начальных условий (x(0) = 0 ) имеем: С = , поэтому

= e k (ab) t ,

откуда x ( t ) = a b .

Пример 2. Решить уравнение = .

Разделяем переменные (3y2 + 1) dy = 2x dx. Интегрируем:

=

и получаем общий интеграл уравнения у3 + ух2 = С .

Однородные уравнения

Дифференциальное уравнение 1-го порядка называется однородным,

если его можно привести к виду

y = f (5)

или к виду

M ( x, y ) dx + N ( x, y ) dy = 0, (6)

где M ( x, y ) и N ( x, y ) – однородные функции одного порядка, т.е. существует такое k Z, что M ( t x, t y ) = t k M ( x, y ) и N ( t x, t y ) = t k N ( x, y ).

С помощью подстановки = u(x) (y = xu => y = u + x u) однородные уравнения (5) и (6) преобразуются в уравнения с разделяющимися переменными.

Пример 3. Решить уравнение y = + cos .

• Положим = u или y = xu. Тогда y = u + x u, что после подстановки в исходное уравнение дает уравнение с разделяющимися переменными

u + x u = u + cos u или x = cos u.

Разделяем переменные

=

и интегрируем

tg = Cx.

Получаем общее решение

u = 2 arctg Cx – + 2πn, n Z.

Возвращаясь к функции у, находим:

у = х , n Z.

При делении на cos u были потеряны решения у = х , k Z.

Добавляя их к полученному семейству решений, окончательно находим

у = х , n Z; у = х , k Z.

Линейные уравнения

Линейным дифференциальным уравнением 1-го порядка называется

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

y + p(x) y = q(x), (7)

где p(x) и q(x) – заданные и непрерывные на некотором промежутке функции.

Существует несколько методов интегрирования уравнения (7). Рассмотрим самый распространенный из них – метод Бернулли, называемый «методом u на v». Суть метода в том, что решение этого уравнения ищется в виде произведения

у = u v, (8)

где u = u(x), v = v (x) – неизвестные функции х, причем одна из этих функций произвольна (но не равна тождественно нулю).

Подставляя решение у = u v и его производную у = uv + u v в уравнение (7), получим

uv + u v + p(x) u v = q(x) или uv + u (v + p(x) v) = q(x). (9)

Пользуясь произвольностью в выборе функции v (x), выберем ее так, чтобы выражение в скобках стало равным нулю

v + p(x) v = 0. (10)

Это уравнение с разделяющимися переменными. Решив его и подставив выражение для v в (9), получим следующее уравнение относительно u

uv = q(x). (11)

Решаем это уравнение, находим u = u(x,C). Таким образом, общее решение линейного уравнения (7) у = u(x,C) v.

Пример 4. Найти частное решение дифференциального

уравнения (решить задачу Коши) у = – с начальными условиями у (1) = 1.

Это линейное уравнение вида у + p(x) y = q (x), в котором p(x) = – , q (x) = – . Общее решение ищем в виде y = uv. Тогда y = uv + uv . Имеем:

uv + uv – = – => uv + u = – .

Подберем функцию v так, чтобы v – = 0; тогда uv = – . Интегрируя первое из этих уравнений, получим:

v – = 0 => = => = => ln | v | = ln | x | => v = х.

Подставив полученное выражение для v во второе уравнение, получим:

uх = – => du = – dx .

Интегрируем обе части данного уравнения: = – dx.

Второй интеграл берем по частям:

dx = = = + + C.

Таким образом, u = + + C, а общее решение исходного уравнения

y = uv = x = ln x + 1 + Cx .

Подставим в это общее решение начальное условие:

1 = ln 1 + 1 + C ∙ 1 = 0 + 1 + C = 1 + C.

Отсюда получаем, что С = 0.

Таким образом, искомое частное решение имеет вид y = ln x + 1.

Уравнение Бернулли

Уравнением Бернулли называется дифференциальное уравнение 1-го порядка вида

y + p(x) y = q(x) yn, (12)

где n ≠ 0, n ≠ 1 (при n = 0 уравнение (12) является линейным, а при n = 1 – уравнением с разделяющимися переменными). Проинтегрировать уравнение Бернулли можно так же, как и линейное уравнение с помощью подстановки у = u v.

Пример 5. Решить дифференциальное уравнение у = + .

Это уравнение Бернулли. Полагая у = u v, приведем исходное уравнение к виду uv + u = .

Решаем первое уравнение v – = 0:

v – = 0 => = => = => ln | v | = ln | x | => v = х.

Второе уравнение примет вид uх = или u = .

Решаем его: u = => u du = dx => u2 = 2x + C => u = . Перемножая u и v, получим общее решение исходного уравнения

у = х .

Уравнения в полных дифференциалах

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

P ( x, y ) dx + Q ( x, y ) dy = 0 (13)

называется уравнением в полных дифференциалах, если его левая часть является полным дифференциалом некоторой функции U ( x, y ), т.е.

P ( x, y ) = , Q ( x, y ) = .

Для того, чтобы уравнение (13) было уравнением в полных

= . (14)

Если уравнение (13) есть уравнение в полных дифференциалах, то оно может быть записано в виде

d U ( x, y ) = 0.

Общий интеграл этого уравнения:

U ( x, y ) = С,

где С – произвольная постоянная.

Один из способов нахождения функции U (x, y) состоит в следующем: интегрируя равенство = P (x, y) по х при фиксированном у и замечая, что произвольная постоянная в этом случае может зависеть от у, имеем

U ( x, y ) = + φ (у), (15)

Затем из равенства

= = + φ´ (у) = Q ( x, y )

находим функцию φ (у), подставив которую в (15), получим функцию

U (x, y).

Пример 6. Решить дифференциальное уравнение

dx + (y3 + ln x)dy = 0.

Проверим, является ли это уравнение уравнением в полных дифференциалах. Для этого проверим условие (14):

= = ; = (y3 + ln x) = .

Условие (14) выполнено, следовательно, исходное уравнение есть уравнение в полных дифференциалах.

Найдем функцию U (x, y). Интегрируя по х при постоянном у равенство

= P (x, y) = ,

получим

U (x, y) = + φ (у) = y ln x + φ (у). (16)

При вычислении первообразной здесь пишем ln x, а не ln |x|, так как исходное уравнение содержит ln x и, следовательно, имеет смысл лишь при x > 0.

Подставляя (16) в равенство

= Q (x, y) = y3 + ln x,

имеем ln x + φ´ (у) = y3 + ln x,

откуда φ (у) = = у4 + С1. (17)

Из (16) и (17 ) находим U (x, y) = y ln x + у4 + С1.

Общий интеграл уравнения в полных дифференциалах

U (x, y) = С2. В нашем случае y ln x + у4 + С1 = С2 или, положив С2С1 = С, окончательно получим

y ln x + у4 = С.

Рекомендация. Если аналитические вычисления вызывают затруднение, можно перейти к третьему этапу, оставив аналитические вычисления на дом.

2.3. Третий этап работы состоит в написании и отладке программы на знакомом (и доступном для рабочей ПЭВМ) языке программирования. Примеры программ на PASCALе и в Mathcad’е представлены ниже. Эти программы можно использовать в качестве тестовых при выполнении собственных заданий, т.к. отличия в программах будут незначительными.

Программа на PASCALе

program ivanov_koshi_1; {y = y/x – ln(x)/x, y(1)=1}

var

x0,xn,y0,h,x,y,yt:real;

n,i :integer;

function prch(x,y:real):real; {правая часть}

begin

prch:= y/x – ln(x)/x

end;

function anresh(x:real):real; {аналитическое решение}

begin

anresh:= ln(x)+1

end;

begin

writeln (‘введите начальные условия х0, xn, y0’);

read(x0,xn,y0); {ввод x0,xn,y0 }

writeln (‘введите число точек разбиения отрезка [х0, xn]’);

read(n); {ввод n }

h:=(xn–x0)/n;

writeln (“:20,‘Р Е З У Л Ь Т А Т Ы’);{впереди 20 пробелов}

writeln;

writeln (‘ n = ’, n:0, ‘ h = ’, h:0:4);

writeln;

writeln (‘ x точн.реш. числ.реш. абс.ош. отн.ош’);{2,11,6,6,8 пробелов}

writeln;

x:=x0;

y:=y0;

yt:= anresh(x);

for i:=1 to n+1 do

begin

writeln (x:7:3, yt:15:6, y:15:6, abs(yt–y):15:6, abs((yt–y)/yt):15:6);

y:=y+h*prch(x,y);

x:=x+h;

yt:= anresh(x);

end;

readln;

readln;

end.

Окно вывода отлаженной программы должно иметь вид:

введите начальные условия x0, xn, у0

1

3

1

введите число точек разбиения отрезка [х0, xn]

5

Р Е З У Л Ь Т А Т Ы

n = 5 h = 0.4000