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

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

min ( f(х)) = f1(х)2 + f2 (x)2 +... f (х)2 + L ,

где в общем случае f(x) — вектор-функция, х — векторстолбец искомых переменных, L — некоторая константа. Синтаксис функции lsqnonlin ( ) имеет следующий вид:

х = lsqnonlin(fun,x0,eb,ub,options,PI,P2,...) [x,resnorm,residual,exitflag,output,lambda, jacobian]=lsqnonlin(...)

Он аналогичен синтаксису функции fsolve ( ), подробно описанной в разделе IV. Поэтому далее мы ограничимся только примером, демонстрирующим использование данной

функции для нахождения параметров функции

F (х,а,Ь,с) = ехр(а + bх + сх2).

Пример 7.3. Найти, используя метод наименьших квадратов, для данных, представленных в табл. VII.3, коэффициенты

аппроксимирующей функции

F (х,а,b,с) = ехр(а + bх + сх2).

Таблица VII.3

Исходные данные примера VII.3

X

0.3

0.4

1.0

1.4

2.0

4.0

 

 

 

 

 

 

 

у

9.4

11.2

5.0

3.0

6.0

0.2

 

 

 

 

 

 

 

1. Создайте файл F77.m (листинг VII.1), содержащий описание функции, возвращающей значения вектор-функции fх).

Листинг VII.1. Файл F77.m function z=F77(Coeff,vx,vy) k=l:length(vx);

z=vyexp(Coeff(1)+Coeff(2)*vx+Coeff(3)*vx.^2);

168

12

10

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

0

0,5

1

1,5

2

2,5

3

3,5

4

Рис. VII.4. Исходные данные и аппроксимирующая функция вида F(x,a,b,c) = exp(a + bx + cх2)

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

% задание исходных данных

» vx=[0.3;0.4;l;1.4;2;4] VX =

0.3000

0.4000

1.0000

1.4000 169

2.0000

4.0000

» vy=[9.4;11.2;5;3;6;0.2] vy = 9.4000

11.2000

5.0000

3.0000

6.0000

0.2000

» z=[l 0 -1] % начальное приближение z =

1 0 -1

%вычисление коэффициентов аппроксимирующей

%функции

» Coeff = lsqnonlin('F77,z',[],[],[],vx,vy) Optimization terminated successfully: Relative function value changing by less than OPTIONS.TolFun

Coeff =

2.5696 -0.8037 0.0462

»F=inline('ехр(а+Ь*х+с*х.^2)','x','a','b','c'); % задание % аппроксимирующей функции

»X=vx(l):0.01:vx(length(vx));

%координаты абсцисс, в которых

%будут вычисляться значения

%аппроксимирующей функции

»Y=feval(F,X,Coeff(1),Coeff(2),Coeff(3)); % вычисление значений % аппроксимирующей функции

»i=l:length(vx);

»j=1:length(X);

»plot(vx(i),vy(i),'o',X(j) ,Y(j))

%визуализация исходных данных и

%аппроксимирующей функции (рис. VII.4)

170

VIII. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

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

8.1. Общие сведения и определения

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

 

dy

0 .

(VIII.1)

F x, y,

 

 

dx

 

 

Определение VIII.2. Дифференциальное уравнение вида

dy

f x, y ,

(VIII.2)

dx

 

 

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

Определение VIII.3. Решением дифференциального уравнения на интервале I называется непрерывно дифференцируемая функция у = φ(х), превращающая уравнение в тождество на I.

Для дифференциального уравнения первого порядка (VIII.1), (VIII.2), по определению получаем:

 

 

 

d x

 

F x, x ,

 

 

0

(VIII.3)

dx

 

 

 

 

 

 

 

 

d x

f x, x .

(VIII.4)

 

dx

 

 

 

 

171

 

 

 

 

 

 

 

Определение VIII.4. Соотношение (VIII.3) называется решением уравнения (VIII.4) в неявной форме (или интегралом уравнения (VIII.2)), если оно определяет у как функцию от x: у = φ(x), которая есть решение уравнения

(VIII .2).

Определение VIII.5. График решения у = φ(x) уравнения (VIII.2) называется интегральной кривой данного уравнения. Определение VIII.6. Проекция графика решения на ось ординат называется фазовой кривой или траекторией дифференциального уравнения.

Определение VIII.7. Задача о нахождении решения у = φ(x) уравнения (VIII.2), удовлетворяющего начальному условию φ (хо)=уо, называется задачей Коши.

Определение VIII.8. Через каждую точку (x,y) из области определения уравнения (VIII.2) проведем прямую, тангенс угла которой к оси абсцисс равен f(x,y). Данное семейство прямых называется полем направлений, соответствующим уравнению (VIII.2) (или полем направлений функции f(x,y)).

Интегральная кривая в каждой своей точке касается поля направлений функции f(x,у).

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

Теорема Пикара. Если функция f определена и непрерывна в некоторой области G, определяемой неравенствами

x x0

 

a,

y y0

 

b,

(VIII.5)

 

 

 

 

 

 

 

 

 

и удовлетворяет в этой области условию Липшица по у:

f x, y1 f x, y2

 

M

 

y1 y2

 

,

(VIII.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

то на некотором отрезке │x - xo│≤ h, где h — положительное число, существует и притом только одно решение у = у(х) уравнения (VIII.2), удовлетворяющее начальному условию у0 = у(х0). Здесь М — константа Липшица, зависящая в общем случае от а и b. Если f(x,y) имеет в G ограниченную

172

производную f 'y (x,y), то при (x,y) G можно принять

M max f y x .

(VIII.7)

Определение VIII.9. Дифференциальным уравнением n-го порядка называют соотношение вида

 

 

k

,..., y

n

0,

 

 

 

(VIII.8)

F x, y, y , y ,..., y

 

 

 

 

 

где х — независимая переменная,

 

у = у(х) — неизвестная

функция аргумента х,

 

 

 

 

 

 

k

,..., y

n

 

 

 

—

F x, y, y , y

,..., y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

k

,..., y

n

.

заданная функция переменных x, y, y

, y ,...,

 

 

 

Определение VIII.10. Задача о нахождении решения

уравнения

(VIII.8), удовлетворяющего начальным условиям

 

 

 

 

 

y x0 y0 , y x0

y0 ,..., y n 1 x0

y0n 1 ,

 

 

(VIII.9)

где у0 , у’0 , у0(n-1), - заданные числа, называется задачей Коши для системы дифференциальных уравнений.

Разрешив дифференциальное уравнение (VIII.8) относительно производной у(n) и выполнив следующую замену переменных:

y z1 ,

y z2 , (VIII.10)

y n 1 zn 1 ,

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

y z1, y z2 ,

 

(VIII.11)

y n 1 zn 1 ,

zn

f x, y, z1, z2 ,..., zn 1 .

Например, уравнение второго порядка

173

 

y 2 y

(VIII.12)

можно записать в виде двух уравнений

 

 

 

y z,

(VIII.13)

 

 

z 2 y.

 

 

 

Методы

решений

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

уравнений

подразделяются на три основные группы:

 

□Аналитические методы решения.

□Графические методы.

□Численные методы.

8.2. Метод Пикара

Метод Пикара позволяет получить приближенное решение дифференциального уравнения (VIII.2) в виде функции, заданной аналитически.

Пусть в условиях теоремы существования требуется найти решения (VIII.2) с начальным условием уо = у(хо). Запишем уравнение (VIII.1) в следующем эквивалентном виде:

dy f x, y dx.

(VIII.14)

Проинтегрируем обе части (VIII.14) от х0 до х:

 

x dy x

f x, y dx.

(VIII.15)

y0 x0

Вычислив интеграл в правой части, получим:

y x y0

x

f (x, y)dx.

(VIII.16)

 

x0

 

 

Очевидно, что решение интегрального уравнения (VIII.16) будет удовлетворять дифференциальному уравнению (VIII.2) и начальному условию уо = у(хо).

Действительно, при х = х0 получим:

y x0 y0 x f (x, y)dx y0 .

x0

Интегральное уравнение (VIII.16) позволяет использовать

174

метод последовательных приближений. Положим у = у0 и получим из (VIII.16) первое приближение:

y1 x y0 x f (x, y0 )dx. (VIII.17)

x0

Интеграл, стоящий в правой части (VIII.17), содержит только переменную х, после нахождения этого интеграла будет получено аналитическое выражение приближения у1 как функции переменной х. Заменим теперь в уравнении (VIII.16) у найденным значением, y1(x) и получим второе приближение:

 

y2 x y0 x

f (x, y1 ) d x

(VIII.18)

и т. д.

 

x0

 

 

 

 

 

 

В общем случае итерационная формула имеет вид:

 

yn x y0 x

f (x, yn 1 ) d x ,

n 1, 2,.... .

(VIII.19)

x0

 

 

 

 

Последовательное применение формулы (VIII.19) дает последовательность функций:

y1 x , y2 x ,..., yn x ,... (VIII.20)

Так как функция f непрерывна в области G, то она ограничена в некоторой области G' G, содержащей точку (хо,y0), т. е.

f x, y

 

N .

(VIII.21)

 

Применяя к уравнению (VIII.19) принцип сжимающих отображений, можно показать, что последовательность (VIII.20) сходится по метрике

1 , 2 max 1 x 2 x

впространстве непрерывных функций φ, определенных на сегменте x x0 d , таких, что y0 Nd. Пределx

последовательности является решением интегрального

175

уравнения (VIII.16), а, следовательно, и дифференциального уравнения (VIII.2) с начальными условиями уо = у(хо). Это означает, что к-й член последовательности (VIII.20) является приближением к точному решению уравнения (VIII.2) с определенной степенью точности.

Оценка погрешности к-ro приближения дается формулой:

y x yk x

 

M k N

d k 1

 

,

(VIII.22)

 

 

k 1 !

 

 

 

 

 

где М — константа Липшица (IX.7), N — верхняя грань модуля функции f из неравенства (IX.21), а величина d для определения окрестности

│x-xo│<d

вычисляется по формуле:

 

b

 

d min a,

 

.

(VIII.23)

 

 

N

 

8.3. Метод Эйлера

В основе метода Эйлера лежит идея графического построения решения дифференциальных уравнений (рис. VIII.1).

y

 

 

 

 

y3

 

L2

 

L3

y2

 

 

 

 

 

 

 

 

L1

 

 

 

y1

 

 

 

 

y0

 

 

 

 

x0

x1

x2

x3

x

Рис. VIII.1. Графическая интерпретация метода Эйлера

176

Пусть дано уравнение (VIII.2) с начальным условием у0 = у(х0).

Выбрав достаточно малый шаг h, построим, начиная с точки х0,

систему равноотстоящих точек xi x0 ih

i 0,1,2,... .

Вместо искомой интегральной кривой на отрезке [хо ,х1]

рассмотрим отрезок касательной к ней в точке М0(х0,у0),

уравнение которой

y y0 f x0 , y0

x x0 .

 

При

х = х1

из

уравнения

касательной

получаем

y1 y0

hf x0 , y0 .

Следовательно, приращение функции на

первом шаге равно

y0 hf x0 , y0 .

 

 

Проведя аналогично касательную к интегральной кривой в точке

(х1 , у1), получим:

y y1 f x1 , y1 x x1

,

что при х = х2 дает

y2 y1 hf x1 , y1 ,

т. е. у2 получается

 

из y1, добавлением

приращения y1

hf x1 , y1 .

 

 

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

(VIII.2), состоит в последовательном применении пары формул:

yk

hf xk , yk .

(VIII.24)

 

yk 1 yk yk .

(VIII.25)

Метод Эйлера, как видно из рис VIII.1, имеет погрешность. Найдем локальную погрешность, присутствующую на каждом шаге, которая определяется разностью между точным значением функции и соответствующим значением касательной. Для первого шага:

y x1 y0 hf x0 , y0 y x0 h y0 hf x0 , y0

 

 

h2

 

 

h2

(VIII.26)

y0 y x0 h y x0

 

y0 hf x0 , y0 y x0

 

 

 

2!

2!

 

 

Из

(VIII.26)

видно,

что

локальная

погрешность

пропорциональна

h2. Суммарная

погрешность S

после N

 

 

 

 

177

 

 

 

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