Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 1.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
585 Кб
Скачать
☆

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

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

(4.10)

Здесь x – независимая переменная, f1, f2, …, fn – заданные функции.

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

Задача Коши для системы (4.10) ставится так:

Найти такие, что , - некоторые заданные числа.

Метод Эйлера для решения задачи Коши заключается в вычислении по формулам:

(4.11)

Пример:

Ф ормулы для вычислений будут такими:

Здесь

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

Для того чтобы решить обыкновенное дифференциальное уравнение вида , необходимо вызвать функцию y=ode(y0,x0,x,f).

Здесь y0 - вектор начальных условий; x0 - начальная точка интервала интегрирования ; x - координаты узлов сетки, в которых происходит поиск решения; f - функция, определяющая правую часть уравнения или системы уравнений (4.7) или (4.10); y - вектор решений.

Рассмотрим использование функции на примере следующих задач.

ЗАДАЧА.

Решить задачу Коши

Решение

Перепишем уравнение следующим образом:

Далее представим его в виде внешней функции и применим функцию z=ode(y0,x0,x,f), в качестве параметров которой будем использовать следующие:

f - предварительно созданная функция f(x, y) (f(x,y)=-y+sin(xy) – правая часть нашего дифуравнения);

x - координаты сетки;

y0, x0 - начальное условие y(0)=1.5;

z - результат работы функции.

Приведем листинг программы, которая строит график, моделирующий процесс, описанный данным уравнением. Здесь х меняется от 0 до 35 с шагом 1. Решение уравнения в точках 0, 1,2,…,35 задается вектором z, координаты которого можно распечатать, убрав точку с запятой в конце 5 строки.

clc

xbasc()

function w=f(x,y),w=-y+sin(x*y),endfunction;

x0=0;y0=1.5;x=0:1:35;

z=ode(y0,x0,x,f);plot(x,z);xgrid(5)

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

Заменив пятую строку на z=ode("rkf",y0,x0,x,f), получим решение уравнения методом Рунге-Кутта.

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

на интервале [0; 10].

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

xbasc()

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

function g=syst(x,w)

g=zeros(2,1);

g(1)=cos(w(1)*w(2));

g(2)=sin(w(1)+w(2)*x);

endfunction

//Решение системы дифференциальных уравнений

w0=[1;2];x0=0;x=0:.1:10;w=ode(w0,x0,x,syst);xgrid(2)

//Формирование графического решения

plot(x,w),legend('y','z')

Графическое решение задачи

В программе zeros(2,1) матрица, состоящая из нулей, размерностью 2х1.

Первый аргумент вектора w - это y(0), второй z(0).

30