Вы находитесь на странице: 1из 61

Е.М.

Карчевский

Численные методы
решения интегральных уравнений
и комплекс программ
на языке Matlab

Учебное пособие

Казанский университет
2017
Оглавление

Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Глава 1. Методы решения уравнений Вольтерра II рода . . . . . . 3


§ 1. Метод квадратур . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
§ 2. Метод квадратур для нелинейного уравнения . . . . . . . . . . . . 11
§ 3. Метод простой итерации . . . . . . . . . . . . . . . . . . . . . . . . 17

Глава 2. Методы решения уравнений Фредгольма II рода . . . . . 22


§ 1. Метод квадратур . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
§ 2. Метод вырожденных ядер . . . . . . . . . . . . . . . . . . . . . . . 27
§ 3. Метод наименьших квадратов . . . . . . . . . . . . . . . . . . . . . 34
§ 4. Метод Галеркина — Петрова . . . . . . . . . . . . . . . . . . . . . . 40
§ 5. Метод коллокации . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
§ 6. Метод простой итерации . . . . . . . . . . . . . . . . . . . . . . . . 52
§ 7. Метод моментов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Глава 3. Однородное уравнение Фредгольма II рода . . . . . . . . . 53


§ 1. Вырожденные ядра . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
§ 2. Метод Бубнова — Галеркина . . . . . . . . . . . . . . . . . . . . . . 57
§ 3. Метод Ритца . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
§ 4. Метод следов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
§ 5. Метод Келлога . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Предисловие

Книга предназначена для проведения практических занятий по


численным методам решения интегральных уравнений со студента-
ми, специализирующихся в области прикладной математики, инфор-
матики и математического моделирования.
Автор приносит свою искреннюю признательность студентам ка-
федры прикладной математики Казанского университета за предо-
ставленные расчетные материалы.
Глава 1
Методы решения уравнений Вольтерра II рода

§ 1. Метод квадратур

1. Линейное уравнение Вольтерра II рода имеет следую-


щий вид:1)
Zx
y(x) − K(x, s)y(s)ds = f (x), x ∈ [a, b]. (1)
a

Здесь y(x) — неизвестная функция, K(x, s) — ядро интегрально-


го уравнения, f (x) — свободный член (правая часть) интегрального
уравнения. Однородное уравнение (при f ≡ 0) имеет только три-
виальное решение, а условия существования решения неоднородного
уравнения (1) связаны с различными ограничениями на ядро K(x, s)
и правую часть f (x) (см., напр., [3], с. 19, [9], с. 45). В частности (см.,
напр., [10], с. 8), решение существует и единственно в классе непре-
рывных на отрезке [a, b] функций, если ядро непрерывно внутри и на
сторонах треугольника, ограниченного прямыми s = a, x = b, x = s,
а функция f (x) непрерывна на [a, b].
Уравнение (1) содержит интегральный оператор
Zx
Aϕ(x) = K(x, s)ϕ(s)ds. (2)
a

Ясно, что значения функции ψ(x) = Aϕ(x) при любом x опреде-


ляются значениями функции ϕ(s) только при s < x. Интегральные
операторы, характеризуемые этим свойством, называются операто-
рами Вольтерра и широко применяются при описании процессов с
последействием и обратной связью (см., напр., [3], с. 22.).
1)
Вито Вольтерра (итал. Vito Volterra; 1860–1940) — итальянский математик и физик.
4 Глава 1. Методы решения уравнений Вольтерра второго рода

2. Метод квадратур. При численном решении интегральных


уравнений входящие в них интегралы обычно заменяют конечными
суммами. Согласно методу квадратур интегральные операторы заме-
няют суммами, полученными с помощью различных квадратурных
формул (см., напр., [1], [4], [8]):
Zb n
X
g(x)dx = Ai g(xi ) + R. (3)
a i=1

Здесь a 6 x1 < x2 < · · · < xn 6 b — узлы, Ai , i = 1, 2, . . . , n — веса,


а R — ошибка аппроксимации квадратурной формулы.
Чтобы применить метод квадратур к решению уравнения (1),
необходимо использовать следующие равенства:
Zxi
y(xi ) − K(xi , s)y(s)ds = f (xi ), i = 1, 2, ..., n. (4)
a

Они получаются из исходного уравнения при фиксированных значе-


ниях xi независимой переменной x. Узлы сетки xi могут быть выбра-
ны специальным образом или заданы заранее, если, например, правая
часть f задана таблицей.
Примем значения xi в качестве узлов квадратурной формулы и
заменим с ее помощью интеграл в (4) конечной суммой. Получим
систему
i
X
y(xi ) − Aj K(xi , xj )y(xj ) = f (xi ) + Ri , i = 1, 2, ..., n, (5)
j=1

где Aj — веса квадратурной формулы, Ri — ошибки аппроксимации.


Положим ошибки Ri малыми и отбросим их. Получим систему ли-
нейных алгебраических уравнений:
i
X
yi − Aj Kij yj = fi , i = 1, 2, ..., n. (6)
j=1

Здесь yi = ỹ(xi ), fi = f (xi ), Kij = K(xi , xj ), ỹ — приближение к иско-


мой функции y. Решение системы уравнений (6) дает приближенные
значения искомой функции в узлах xi .
§ 1. Метод квадратур 5

Приведем систему (6) к следующему виду:


i−1
X
− Aj Kij yj + (1 − Ai Kii ) yi = fi , i = 1, 2, ..., n, (7)
j=1

подробнее,
    
1 − A1 K11 y1 f1
 −A K 1 − A2 K22  y2   f2 
 1 21    
 .. .. ...  .. = .. .
 . .  .   . 
−A1 Kn1 −A2 Kn2 · · · 1 − An Knn yn fn
Хорошо видно, что матрица коэффициентов этой системы — тре-
угольная. Если все диагональные элементы матрицы отличны от ну-
ля, то значения y1 , y2 , . . . , yn можно последовательно найти по ре-
куррентной формуле
à i−1
!
X
yi = (1 − Ai Kii )−1 fi + Aj Kij yj , i = 1, 2, ..., n. (8)
j=1

Выполнения условий (1 − Ai Kii ) 6= 0, i = 1, 2, ..., n, можно добиться


путем выбора узлов квадратурной формулы и обеспечения достаточ-
ной малости коэффициентов Ai .
Отметим особенность выражения (8), состоящую в росте количе-
ства вычислений вместе с номером шага дискретизации из-за увели-
чения членов суммы, причем значения коэффициентов A j Ki j при yj
меняются для каждого i, что в общем случаем не позволяет вос-
пользоваться результатами вычислений на предыдущих шагах. Кро-
ме того, имеются особенности в применении различных квадратур-
ных формул. Например, применение формулы Симпсона должно че-
редоваться для нечетных узлов с каким-либо другим правилом, на-
пример с формулой прямоугольников или формулой трапеций. Воз-
никают сложности при применении формул Гаусса и Чебышева (см.,
напр., [3], с. 37).
Достаточно простым и во многих случаях эффективным является
применение формулы трапеций (см., напр., [5], с. 341). Для равномер-
ной сетки с шагом h имеем
h
A1 = An = , A2 = A3 = . . . = An−1 = h.
2
6 Глава 1. Методы решения уравнений Вольтерра второго рода

Тогда формула (8) примет следующий вид:


µ ¶−1 Ã i−1
X
!
h h
yi = 1 − Kii fi + Ki1 yj + h Kij yj , i = 1, 2, ..., n.
2 2 j=2
(9)
3. Компьютерная программа. Напишем на языке Matlab
функцию Volt_II_Rect.m, реализующую вычисления по этой фор-
муле.
% Функция для решения уравнения Вольтерра второго
% рода методом квадратур. Используется формула
% трапеций с равноотстоящими узлами
% Входные данные: K - ядро уравнения, f - правая
% часть (задаются аналитически), a - начало
% отрезка интегрирования, b - конец отрезка, h - шаг
% сетки. Результат - вектор y приближений к
% решению в узлах сетки
% Автор: Валиева М.
function [ y ] = Volt_II_Rect(K,f,a,b,h)
format long
x=[a:h:b]
y(1)=f(x(1));
for i=2:1:fix((b-a)/h+1)
s=0;
if i>2
for j=2:1:(i-1)
s=K(x(i),x(j))*y(j)+s;
end
end
y(i)=((1-h/2*K(x(i),x(i)))^(-1))*((f(x(i))+...
(h/2)*K(x(i),x(1))*y(1)+h*s));
end
4. Пример. Решим с помощью функции Volt_II_Rect.m упраж-
нение 1.9, с. 39, из книги [3]. Дано уравнение
Zx
y(x) − e−(x−s) y(s)ds = e−x , x ∈ [0, 1]. (10)
0
§ 1. Метод квадратур 7

Таблица 1. Результаты приближенного решения уравнения (10) методом квадратур,


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

x y при h = 0.25 y при h = 0.05


0.00 1.00000000000000 1.00000000000000
0.25 1.00131529252038 1.00005210423069
0.50 1.00263231503517 1.00010421117622
0.75 1.00395106981982 1.00015632083675
1.00 1.00527155915278 1.00020843321241

Точное решение этого уравнения y ≡ 1. Надо найти приближенное


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

% Сценарий решения упражнения 1.9, с. 39, из кнги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Автор: Валиева М.
close all
clear all
clc
format short;
a=0; % начало отрезка интегрирования
b=1; % конец отрезка интегрирования
K=@(x,s)exp(-(x-s)); % ядро уравнения
f=@(x)exp(-x); % правая часть уравнения
y_exact=@(x) 1; % точное решение
h=0.25; % шаг сетки
x = a:h:b; % вектор значенй переменной в узлах сетки
n=size(x,2);
y1 = zeros(1,n); % вектор значений точного решения
for j=1:n
y1(j)=y_exact(x(j));
end;
plot(x,y1);
hold on;
y_approx=Volt_II_Rect(K,f,a,b,h)
8 Глава 1. Методы решения уравнений Вольтерра второго рода

y2=transp(y_approx);
plot(x,y2,’or’);
axis([a,b,0.99,1.01]);
h=0.05;
x = a:h:b;
y_approx=Volt_II_Rect(K,f,a,b,h)
y3=transp(y_approx);
plot(x,y3,’sr’);
xlabel(’x’);
ylabel(’y’);
hold off;

С помощью этого сценария проведем два численных эксперимента:


найдем приближенные решения уравнения на сетках с шагом h = 0.05
и h = 0.25. Результаты счета представлены в таблице 1 и на рис. 1.

Упражнения

1) Объясните, почему точность вычислений падает при приближе-


нии к правому концу отрезка интегрирования.
2) Нарисуйте график зависимости от h нормы относительной ошиб-
ки решения в более широком диапазоне изменений шага.
3) С помощью функции Volt_II_Rect.m найдите приближенное ре-
шение уравнения
Zx
2 2
−s2
y(x) = ex + ex y(s)ds, x ∈ [0, 1]. (11)
0
2
Его точное решение y(x) = ex +x (см. пример 1.2., с. 26, [3]).
Исследуйте зависимость точности решения от h.
4) Модифицируйте функцию Volt_II_Rect.m для работы с нерав-
номерной сеткой. Найдите приближенные решения уравнения
Zx
¡ ¢
y(x) = (1 − xe2x ) cos 1 − e2x sin 1 + 1 − (x − s)e2x y(s)ds,
0
§ 1. Метод квадратур 9

1.01

1.008

1.006

1.004

1.002

1
y

0.998

0.996

0.994

0.992

0.99
0 0.2 0.4 0.6 0.8 1
x

Рис. 1. Результаты приближенного решения уравнения (10) методом квадратур, осно-


ванным на применении квадратурной формулы трапеций с равномерной сеткой. Непре-
рывной линией обозначено точное решение, кружочками — приближенное решение при
шаге сетки h = 0.25, квадратиками — при h = 0.005.

где x ∈ [0, 2.5]. Его точное решение y(x) = ex (cos(ex ) − ex sin(ex ))


(см. пример 1.11., с. 43, [3]). Исследуйте зависимость точности
решения и скорости работы функции от распределения узлов
сетки.
5) Напишите функцию, реализующию метод квадратур на основе
квадратурной формулы Симпсона (см., напр., [5], с. 342). В этом
случае в формуле (3) полагают:
h
A1 = A2m+1 = ,
3
4h
A2 = A4 = . . . = A2m = , (12)
3
2h
A3 = A5 = . . . = A2m−1 = ,
3
10 Глава 1. Методы решения уравнений Вольтерра второго рода

b−a
xi = a + h(i − 1), i = 1, 2, . . . , n, h= ,
n−1
где n = 2m + 1, m = 1, 2, . . . Решите с помощью новой функции
уравнение (11) и сравните эффективность использования фор-
мул Симпсона и трапеций.
§ 2. Метод квадратур для нелинейного уравнения 11

§ 2. Метод квадратур для нелинейного уравнения

1. Описание метода. Нелинейное уравнение Вольтерра II ро-


да имеет следующий вид:
Zx
y(x) − K(x, s, y(s))ds = f (x), x ∈ [a, b]. (1)
a
Отметим, что ядро K(x, s, y(s)) интегрального уравнения зависит от
искомой функции y(x). Предположим, что ядро и правая часть это-
го уравнения таковы, что его решение существует и единственно в
классе непрерывных на отрезке [a, b] функций. Построим метод при-
ближенного решения уравнения (1), основанный на аппроксимации
интеграла с помощью квадратурной формулы.
Пусть на отрезке [a, b] задана сетка с узлами xi , i = 1, 2, ..., n.
Зафиксируем в уравнении (1) значения переменной x в узлах сетки.
Получим следующие равенства:
Zxi
y(xi ) − K(xi , s, y(s))ds = f (xi ), i = 1, 2, ..., n. (2)
a
Заменим интегралы в этих равенствах конечными суммами. Получим
систему нелинейных рекуррентных соотношений
i
X
yi − Aj Kij (yj ) = fi , i = 1, 2, ..., n. (3)
j=1

Здесь Aj — веса квадратурной формулы, fi = f (xi ), yi = ỹ(xi ), ỹ —


приближение к искомой функции y, Kij (yj ) = K(xi , xj , ỹ(xj )). Со-
отношения (3) позволяют находить значения y1 , y2 , . . . , yn прибли-
женного решения в узлах сетки путем последовательного решения n
нелинейных уравнений:
i−1
X
yi − Ai Kii (yi ) = fi + Aj Kij (yj ), i = 1, 2, ..., n. (4)
j=1
2. Пример. Решим предложенным выше методом нелинейное
уравнение
Zx
y(x) − e−(x−s) y 2 (s)ds = e−x , x ∈ [0, 0.1]. (5)
0
12 Глава 1. Методы решения уравнений Вольтерра второго рода

Точное решение этого уравнения y ≡ 1 (см. пример 1.10, с. 40, [3]). Это
уравнение относится к более узкому классу нелинейных уравнений
с подынтегральными выражениями вида K(x, s)y 2 (s). Равенства (2)
принимают следующий вид:
Zxi
y(xi ) − e−(xi −s) y 2 (s)ds = e−xi , i = 1, 2, ..., n. (6)
0

Пусть узлы xi образуют на отрезке [a, b] равномерную сетку с ша-


гом h. Заменим интегралы в (6) конечными суммами с помощью фор-
мулы трапеций. Согласно (4) получим следующую систему расчетных
соотношений:
X i−1
h
y1 = f 1 , yi − Kii yi2 = fi + hKij yj2 , i = 2, 3, ..., n. (7)
2 j=1

Заметим, что в данном случае Kii = 1. Обозначим


i−1
X
ci = f i + hKij yj2 , i = 2, 3, ..., n.
j=1

Для вычисления значений yi , начиная со второго, получим квадрат-


ные уравнения:
h 2
y − yi + ci = 0, i = 2, 3, ..., n.
2 i
Тогда r
h
1 − 4 ci1±
2
y1 = f 1 , y i = , i = 2, 3, ..., n. (8)
h
Оставим знак «−» перед корнем для того, чтобы выбрать одно из
решений.
3. Компьютерные программы. Напишем на языке Matlab
функцию Nonlin_Volt_II_Rect.m, реализующую вычисления по
формулам (8).

% Функция для решения нелинейного уравнения


% Вольтерра второго рода методом квадратур. Используется
§ 2. Метод квадратур для нелинейного уравнения 13

Таблица 2. Результаты приближенного решения уравнения (5) методом квадратур, ос-


нованным на применении квадратурной формулы трапеций с равномерной сеткой. Шаг
сетки h = 0.02.

x точное решение приближенное решение


0.00 1.00 1.000000000
0.02 1.00 1.010003722
0.04 1.00 1.010208603
0.06 1.00 1.010417709
0.08 1.00 1.010631130
0.10 1.00 1.010848956

% формула трапеций с равноотстоящими узлами


% Входные данные: K - ядро уравнения, f - правая
% часть (задаются аналитически), a - начало
% отрезка интегрирования, b - конец отрезка, h - шаг
% сетки. Результат - вектор y приближений к
% решению в узлах сетки
% Автор: Самирханов Р.
function [y] = Nonlin_Volt_II_Rect(a,b,h,K,f)
%задаем x(i)
x=[a:h:b];
n=size(x,2);
%вычисляем y(i)
y(1)=f(x(1)); for i=2:n
s=0;
for j=1:1:(i-1)
s=s+h*K(x(i),x(j))*(y(j)*y(j));
end
y(i)=(1-sqrt(1-4*(h/2)*(f(x(i))+s)))/h;
end
end

Напишем функцию plots.m для сравнения приближенного реше-


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

% Функция для сравнения точного и приближенного


% решений уравнения. Входные данные: y_exact -
% аналитически заданное точное решение,
14 Глава 1. Методы решения уравнений Вольтерра второго рода

% y_approx - вектор приближенного решения,


% a - начало отрезка интегрирования, b - конец
% отрезка, h - шаг сетки.
% Автор: Самирханов Р.
function [] = plots(a,b,h,y_exact,y_approx)
x = a:h:b;
n=size(x,2);
%точное решение
for i=1:n;
y(i)=y_exact(x(i));
end
%матрица для записи результатов в файл
A(:,1)=x;
A(:,2)=y;
A(:,3)=y_approx;
dlmwrite(’C:matrica.txt’,...
A,’delimiter’,’ ’,’newline’,’pc’,...
’precision’, 10);
plot(x,y_approx,’or’);
hold on;
plot(x,y,’b’);
axis([ a,b,1-0.1,1+0.1]);
xlabel(’x’);
ylabel(’y’);
hold off;
end

Теперь напишем на языке Matlab сценарий решения уравнения (5).

% Сценарий решения упражнения 1.10, с. 40, из кнги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Автор: Самирханов Р.
close all
clear all
clc
a=0;
b=0.1;
h=0.02;
§ 2. Метод квадратур для нелинейного уравнения 15

1.1

1.08

1.06

1.04

1.02

1
y

0.98

0.96

0.94

0.92

0.9
0 0.02 0.04 0.06 0.08 0.1
x

Рис. 2. Результаты приближенного решения уравнения (5) методом квадратур, осно-


ванным на применении квадратурной формулы трапеций с равномерной сеткой. Непре-
рывной линией обозначено точное решение, кружочками — приближенное решение при
шаге сетки h = 0.02.

format long;
K = @(x,s)exp(-(x-s));
f = @(x)exp(-x);
y_approx=Nonlin_Volt_II_Rect(a,b,h,K,f);
y_exact=@(x)1;
plots(a,b,h,y_exact,y_approx);

С помощью этого сценария найдем приближенное решение урав-


нения на сетке с шагом h = 0.02. Результаты счета представлены в
таблице 2 и на рис. 2.

Упражнения

1) Объясните, зависимость точности вычислений от номера узла


сетки.
16 Глава 1. Методы решения уравнений Вольтерра второго рода

2) Нарисуйте график зависимости от h нормы относительной ошиб-


ки решения в более широком диапазоне изменений шага.
3) Как изменится решение, если в формуле (8) перед корнем оста-
вить знак «+»?
4) Напишите функцию реализующую вычисления по общим фор-
мулам (4). Решите с помощью этой функции уравнение (5). Про-
анализируйте точность вычислений.
§ 3. Метод простой итерации 17

§ 3. Метод простой итерации

1. Описание метода. Запишем линейное уравнение Вольтер-


ра II рода в удобном для применения метода простой итерации виде:
Zx
y(x) = f (x) + K(x, s)y(s)ds, x ∈ [a, b]. (1)
a

Построим последовательность функций yk (x), k = 0, 1, 2, . . . , с по-


мощью рекуррентного соотношения
Zx
yk (x) = f (x) + K(x, s)yk−1 (s)ds, k = 1, 2, . . . (2)
a

Если правая часть f (x) непрерывна на отрезке [a, b], а ядро K(x, s)
непрерывно в замкнутом треугольнике a 6 s 6 x 6 b, эта последо-
вательность сходится при любом начальном приближении y0 (x) (см.,
напр., [2], с. 613). Скорость сходимости зависит от свойств ядра и
правой части уравнения. Ясно, что число итерационных шагов для
получения аппроксимации необходимой точности зависит от степени
близости начального приближения к искомому решению. В качестве
начального приближения часто выбирают f (x), если нет дополни-
тельной информации о решении.
При численной реализации итерационных методов интеграл вы-
числяется посредством квадратурных формул. Воспользуемся квад-
ратурной формулой трапеций с равномерной сеткой и шагом h. Узлы
сетки обозначим xi , i = 0, 1,. . . , n, пусть Kij = K(xi , xj ), yki = yk (xi ).
Получим расчетное выражение
Zxi
yk+1 (xi ) = f (xi ) + K(xi , s)yk (s)ds ≈ (3)
0

h
≈ f (xi ) + [Ki0 yk0 + 2 (Ki1 yk1 + Ki2 yk2 + · · · + Ki,i−1 yk,i−1 ) + Kii yki ] ,
2
где i = 0, 1, . . . , n. Для окончания итерационного процесса, как обыч-
но, будем использовать условие
||yk − yk−1 ||
6 ε, (4)
||yk ||
18 Глава 1. Методы решения уравнений Вольтерра второго рода

где ||y|| = max |y(x)|, ε — заданная относительная ошибка. Данное


a6x6b
условие означает, что в процессе решения необходимо сравнивать ре-
зультаты, полученные для двух смежных итерационных шагов; бли-
зость полученных при этом приближений свидетельствует о достиг-
нутой точности. Таким образом, количество итерационных шагов за-
висит также от требований к точности результата.
2. Компьютерные программы. Напишем на языке Matlab
функцию inK.m, реализующую вычисления по формуле (3).
% Функция для вычисления очередного приближения
% к решению уравнения Вольтерра второго рода
% в ходе метода простой итерации. Используется формула
% трапеций с равноотстоящими узлами.
% Входные данные: K - аналитически заданное ядро уравнения
% x - сетка, на которой вычисляется интеграл,
% h - шаг сетки, n - число узлов сетки.
% y - вектор значений в узлах сетки приближения к решению,
% вычисленный на предыдущем шаге итерационного процесса.
% Результат - вектор новых значений приближения в узлах сетки.
% Автор: Сергеев П.
function [yk] = CalcInt(y,h,x,n,K,f)
yk = y;
for i = 1 : n
yk(i) = 0;
for j = 1 : i
yk(i) = yk(i) + 2*K(x(i),x(j))*y(j);
end
yk(i) = yk(i) - K(x(i),x(1))*y(1) - K(x(i),x(i))*y(i);
yk(i) = f(x(i)) + yk(i)*h/2;
end
end
Напишем на языке Matlab функцию IterVolt.m, предназначенную
для приближенного решения уравнения (1) методом простой итера-
ции.
% Функция для решения уравнения Вольтерра второго рода
% методом простой итерации. Используется формула
§ 3. Метод простой итерации 19

% трапеций с равноотстоящими узлами.


% Входные данные: K - ядро уравнения, f - правая
% часть (задаются аналитически), x - сетка, на которой
% строится решение, h - шаг сетки, eps - заданная точность.
% Результат - вектор yk приближений к
% решению в узлах сетки. Iter - количество итераций, за
% которое была достигнута требуемая точность
% Автор: Сергеев П.
function [yk,iter] = IterVolt(x,h,eps,f,K)
n = numel(x);
y = f(x);
yk = CalcInt(y,h,x,n,K,f);
iter = 0;
while norm(yk-y,inf)/norm(yk,inf) > eps
y = yk;
yk = CalcInt(y,h,x,n,K,f);
iter = iter + 1;
end
end

3. Пример. Решим с помощью функции Iter_Volt.m упраж-


нение 1.19, с. 73, из книги [3]. Дано уравнение
Zx
y(x) = 1 + y(s)ds, x ∈ [0, 7]. (5)
0

Точное решение этого уравнения y(x) = ex . Надо найти приближен-


ное решение этого уравнения методом последовательных приближе-
ний, основанным на использовании формулы трапеций с равномер-
ной сеткой. Шаг сетки h = 0.07, относительная погрешность реше-
ния ε = 10−3 . На языке Matlab сценарий решения этого упражнения
выглядит следующим образом.

% Сценарий решения упражнения 1.19, с. 73, из книги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Автор: Сергеев П.
clear all
close all
20 Глава 1. Методы решения уравнений Вольтерра второго рода

clc

f = @(x) x*0 + 1;
K = @(x,s) x*0 + s*0 + 1;
a = 0;
b = 7;
h = 0.07;
eps = 1e-03;

y_exact = @(x) exp(x);


x = a : h : b;
[y_approx,iter] = IterVolt(x,h,eps,f,K);
y=y_exact(x);
plot(x,y,’o’,x,y_approx,’r’);
er = norm(y-y_approx,inf)/norm(y,inf);
xlabel(’x’);
ylabel(’y’);
Результаты счета представлены на рис. 3.
Упражнения
1) На каком шаге итерационного процесса была достигнута требу-
емая точность?
2) Исследуйте, как зависит от шага сетки h точность вычислений
и скорость сходимости итерационного процесса.
3) С помощью функции Iter_Volt.m найдите приближенное реше-
ние уравнения
Zx
y(x) = x − (x − s)y(s)ds, x ∈ [0, 2π].
0

Его точное решение y(x) = sin x (см. пример 1.18., с. 72, [3]).
4) Напишите функцию, реализующую метод последовательных
приближений, на основе квадратурной формулы Симпсона (12),
с. 9. Решите с помощью этой функции уравнения из этого пара-
графа и сравните эффективность применения метода Симпсона
с использованием метода трапеций.
§ 3. Метод простой итерации 21

1200

1000

800

600
y

400

200

0
0 1 2 3 4 5 6 7
x

Рис. 3. Результаты приближенного решения уравнения (5) методом простой итерации,


основанным на применении квадратурной формулы трапеций с равномерной сеткой.
Непрерывной линией обозначено точное решение, кружочками — приближенное реше-
ние при шаге сетки h = 0.07.

5) Напишите функцию, предназначенную для решения методом


простой итерации нелинейных уравнений Вольтерра второго ро-
да. Найдите приближенное решение уравнения
Zx
1 + y 2 (s)
y(x) = ds, x ∈ [0, 10].
1 + s2
0

Точное решение y(x) = x (см. пример 1.20., с. 74, [3]).


Глава 2
Методы решения уравнений Фредгольма II рода

§ 1. Метод квадратур

1. Линейное уравнение Фредгольма II рода имеет следую-


щий вид:1)
Zb
y(x) − λ K(x, s)y(s)ds = f (x), x ∈ [a, b]. (1)
a

Здесь y(x) — неизвестная функция, K(x, s) — ядро интегрально-


го уравнения, f (x) — свободный член (правая часть) интегрального
уравнения. Для удобства анализа в интегральном уравнении (1) по
традиции принято выделять числовой параметр λ, который называ-
ют параметром интегрального уравнения.
На вопросы существования решения уравнения (1) отвечает клас-
сическая теория Фредгольма (см., напр., [10], c. 77. [14], с. 48).
Она применима, в частности, для непрерывных в прямоугольнике
[a, b] × [a, b] ядер. Будем считать, что правая часть уравнения (1)
непрерывна на отрезке [a, b], а его решение будем разыскивать в
классе непрерывных на [a, b] функций. Если однородное уравнение
(f (x) ≡ 0) имеет только тривиальное решение, то значение парамет-
ра λ называется правильным или регулярным. Тогда у неоднородно-
го уравнения при любой правой части f (x) существует единственное
решение. Всюду далее в этой главе будем считать это условие выпол-
ненным.
Приложения интегральных уравнений Фредгольма второго рода
весьма разнообразны (см., напр., [10], c. 167. [3], с. 143): граничные за-
дачи теории потенциала, граничные задачи для обыкновенных диф-
ференциальных уравнений, граничные задачи теории упругости и т.д.
1)
Эрик Ивар Фредгольм (Erik Ivar Fredholm; 1866–1927) — Шведский математик.
§ 1. Метод квадратур 23

2. Описание метода. Найдем приближенное решение уравне-


ния (1) методом квадратур. Построим на отрезке [a, b] сетку с узлами
x1 , x2 , . . . , xn . Запишем уравнение (1) в узлах сетки:
Zb
y(xi ) − λ K(xi , s)y(s)ds = f (xi ), i = 1, 2, ..., n. (2)
a

Аппроксимируем интегралы в равенствах (2) конечными суммами с


помощью одной из квадратурных формул:
n
X
yi − λ Aj Kij yj = fi , i = 1, 2, ..., n. (3)
j=1

Здесь yi = ỹ(xi ), fi = f (xi ), Kij = K(xi , xj ), ỹ — приближение к


искомой функции y, Aj — веса квадратурной формулы.
Решение системы уравнений (3) дает приближенные значения ис-
комой функции в узлах xi . По ним с помощью интерполяции мож-
но построить приближенное решение интегрального уравнения (1) на
всем отрезке [a, b].
Пусть λ = 1, а сетка x1 , x2 , . . . , xn — равномерная с шагом h. Ис-
пользуем квадратурную формулу трапеций. Тогда система линейных
алгебраических уравнений (3) примет следующий вид:
n
X
yi − h wj Kij yj = fi , i = 1, 2, ..., n, (4)
j=1

где w1 = wn = 1/2, wj = 1 при j = 2, 3, . . . , n − 1.


3. Компьютерная программа. Напишем на языке Matlab
функцию Fred_II_Rect.m, реализующую вычисления по форму-
ле (4).

% Функция для решения уравнения Фредгольма второго


% рода методом квадратур. Используется формула
% трапеций с равноотстоящими узлами.
% Входные данные: K - ядро уравнения, f - правая
% часть (задаются аналитически), a - начало
% отрезка интегрирования, b - конец отрезка, h - шаг
% сетки. Результат - вектор y приближений к
24 Глава 2. Методы решения уравнений Фредгольма второго рода

% решению в узлах сетки


% Автор: Файрушин Р.
function [y] = Fred_II_Rect(K,f,a,b,h)
x = a:h:b;
n=size(x,2);
wt=1/2;
wj=1;
A = zeros(n);
for i=1:n
A(i,1)= -h*wt*K(x(i),x(1));
for j=2:n-1
A(i,j)= -h*wj*K(x(i),x(j));
end;
A(i,n)= -h*wt*K(x(i),x(n));
A(i,i)= A(i,i)+ 1;
end;
B = zeros(n,1);
for j=1:n
B(j,1) = f(x(j));
end;
y = A\B;

4. Пример. Выполним с помощью функции Fred_II_Rect.m


упражнение 3.9, с. 162, из книги [3]. Дано уравнение (1) с границами
отрезка интегрирования a = −π и b = π, параметром λ = 3/(10π),
ядром
1
K(x, s) = µ ¶
x + s
0.64 cos2 −1
2
и правой частью f (x) = 25 − 16 sin2 (x). Точное решение этого урав-
нения y(x) = 17/2 + (128/17) cos(2x). Надо найти приближенное ре-
шение этого уравнения методом квадратур, основанным на использо-
вании формулы трапеций с равномерной сеткой с шагом h = π/18, и
сравнить с точным.
На языке Matlab сценарий решения этой задачи выглядит сле-
дующим образом. Для сравнения приближенного решения с точным
используется функция plots.m (см. с. 13).
§ 1. Метод квадратур 25

18

16

14

12

10
y

0
−4 −3 −2 −1 0 1 2 3 4
x

Рис. 1. Результаты решения примера 4, с. 24. Непрерывной линией обозначено точное


решение, кружочками — приближенное решение.

% Сценарий решения задачи 3.9, с. 162, из книги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Автор: Файрушин Р.
close
all clear
all clc
format long;
h=pi/18;
a=-pi;
b =pi;
lambda = 3/(10*pi);
K =@(x1,s)1/(0.64*(cos((x1+s)/2))^2-1)*lambda;
f = @(x1)25-16*(sin(x1))^2;
y_exact=@(x1)17/2+128/17*cos(2*x1);
y_approx=Fred_II_Rect(K,f,a,b,h);
26 Глава 2. Методы решения уравнений Фредгольма второго рода

Таблица 1. Результаты решения примера 4, с. 24.

x точное решение приближенное решение


0.00000000000000 16.02941176470588 16.02941176470589
0.17453292519943 15.57533267415272 15.57533267415272
1.57079632679490 00.97058823529412 00.97058823529412
2.96705972839036 15.57533267415272 15.57533267415273
3.14159265358979 16.02941176470588 16.02941176470588

plots(a,b,h,y_exact,y_approx);

Результаты счета представлены в таблице 1 и на рис. 1.

Упражнения

1) Исследуйте, как зависит от шага сетки h точность вычислений.


2) С помощью функции Fred_II_Rect.m найдите приближенное ре-
шение уравнения
Z1
5 1
y(x) = x + xsy(s)ds, x ∈ [0, 1]. (5)
6 2
0

Его точное решение y(x) = x (см. пример 3.8, с. 158, [3]).


3) Напишите функцию, реализующую метод квадратур, на основе
квадратурной формулы Симпсона (12), с. 9. Решите с помощью
этой функции уравнение
Z1
y(x) + xexs y(s)ds = ex , x ∈ [0, 1].
0

Точное решение этого уравнения есть y ≡ 1 (см., пример 1,


с. 344, [5]). Исследуйте, как зависит от шага сетки h точность вы-
числений. Сравните эффективность применения формулы Симп-
сона с использованием формулы трапеций.
§ 2. Метод вырожденных ядер 27

§ 2. Метод вырожденных ядер

1. Решение уравнения с вырожденным ядром. Ядро ин-


тегрального уравнения называется вырожденным, если оно имеет сле-
дующий вид:
m
X
K(x, s) = αi (x)βi (s). (1)
i=1
Будем считать, что {α(x)}m
i=1 ,{β(x)}m
i=1 — линейно независимые си-
стемы непрерывных на отрезке [a, b] функций.
Подставим ядро (1) в уравнение Фредгольма второго рода (см.
с. 22). Получим уравнение с вырожденным ядром:
Z b "X
m
#
y(x) − λ αi (x)βi (s) y(s)ds = f (x), x ∈ [a, b]. (2)
a i=1

Поменяем в (2) местами операции интегрирования и суммирования:


m
X Zb
y(x) − λ αi (x) βi (s)y(s)ds = f (x), x ∈ [a, b]. (3)
i=1 a

Введем обозначения для интегралов в (3):


Zb
ci = βi (s)y(s)ds, i = 1, 2, . . . , m. (4)
a

Из равенства (3) получим следующее представление решения уравне-


ния с вырожденным ядром (2):
m
X
y(x) = f (x) + λ ci αi (x), x ∈ [a, b]. (5)
i=1
Отметим, что константы ci неизвестны, они являются интеграла-
ми от искомой функции. Для их вычисления построим систему ли-
нейных алгебраических уравнений. Подставим (5) в (2). Получим ра-
венство
 " # 
Xm  Z b m
X 
αi (x) ci − βi (s) f (s) + λ cj αj (s) ds = 0, x ∈ [a, b].
 
i=1 a j=1
(6)
28 Глава 2. Методы решения уравнений Фредгольма второго рода

Система функций {α(x)}m


i=1 линейно независимая, следовательно, все
коэффициенты в этой линейной комбинации равны нулю:
Zb " m
#
X
ci − βi (s) f (s) + λ cj αj (s) ds = 0, i = 1, 2, . . . , m, (7)
a j=1

или
m
X Zb Zb
ci − λ cj αj (s)βi (s)ds = βi (s)f (s)ds, i = 1, 2, . . . , m. (8)
j=1 a a

Обозначим
Zb
aij = αj (s)βi (s)ds, i, j = 1, 2, . . . , m. (9)
a

Zb
fi = βi (s)f (s)ds, i = 1, 2, . . . , m. (10)
a
Запишем равенства (8) в виде системы линейных алгебраических
уравнений относительно неизвестных ci :
m
X
ci − λ aij cj = fi , i = 1, 2, . . . , m, (11)
j=1

подробнее,
    
1 − λa11 −λa12 · · · −λa1m c1 f1
 −λa21 1 − λa22  
· · · −λa2m   c2   f2 
 = 
 ··· ··· ··· ···  ···   ··· . (12)
−λam1 −λam2 · · · 1 − λamm cm fm
Если число λ регулярное, то определитель матрицы этой системы
отличен от нуля, и она имеет единственное решение.
Таким образом, алгоритм решения интегрального уравнения с вы-
рожденным ядром (2) состоит в вычислении интегралов (9), (10) и
решении системы линейных алгебраических уравнений (12). Решение
уравнения (2) затем записывается аналитически в виде (5).
§ 2. Метод вырожденных ядер 29

2. Компьютерная программа. Реализуем описанный алго-


ритм в виде функции Degenerate_Fred_II.m на языке Matlab.
% Функция для решения уравнения Фредгольма второго
% рода с вырожденным ядром.
% Входные данные: lambda - параметр уравнения,
% alpha, beta - ядро уравнения, f - правая
% часть (задаются аналитически), a - начало
% отрезка интегрирования, b - конец отрезка.
% Результат: y - символьное выражения решения.
% Автор: Хайруллин Р.
function [ y ] = Degenerate_Fred_II(a,b,lambda,alpha,beta,f)
syms x
format long
n = length(alpha)
r = zeros(n,1); % правая часть СЛАУ
M = zeros(n); % матрица СЛАУ
for i=1:n
r(i) = int(beta(i)*f, x, a, b);
for j=1:n
M(i,j) = -lambda*int(beta(i)*alpha(j), x, a, b);
end
end for i=1:n
M(i,i) = 1 + M(i,i);
end
c = M\r % решение СЛАУ
y_x = 0;
for i=1:n
y_x = y_x + c(i)*alpha(i);
end
y = y_x*lambda + f;
end
3. Пример. Решим с помощью функции Degenerate_Fred_II.m
уравнение с вырожденным ядром
Z1
1 1
y(x) − (1 + 2xs)y(s)ds = − x − , x ∈ [0, 1].
6 2
0
30 Глава 2. Методы решения уравнений Фредгольма второго рода

Точное решение этого уравнения (см. пример 3.12, с. 171, [3]):


1
y(x) = x + .
2
Сценарий решения этого уравнения на языке Matlab выглядит сле-
дующим образом.

% Сценарий решения задачи 3.12, с. 171, из книги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Автор: Хайруллин Р.
close all
clear all
clc
syms x y
a = 0;
b = 1;
alpha = [1 2*x];
beta = [1 x];
lambda = 1;
f = (-x/6) - 1/2;
y=Degenerate_Fred_II(a,b,lambda,alpha,beta,f)

Результатом работы этого сценария является символьное выражение


точного решения исходного уравнения: y = 1/2+x.
4. Аппроксимация ядра вырожденным. Пусть ядро инте-
грального уравнения невырожденное, но достаточно гладкое. Тогда
его можно аппроксимировать вырожденным, например, разложив в
ряд Тейлора, а полученное уравнение решить описанным выше спо-
собом. В этом состоит метод вырожденных ядер.
Решим этим методом уравнение
Z1
y(x) + x(exs − 1)y(s)ds = ex − x, x ∈ [0, 1]. (13)
0

Точное решение уравнения y ≡ 1 (см. пример 3.12, с. 171, [3]). Раз-


ложим ядро этого уравнения в ряд Тейлора, ограничившись тремя
первыми членами. Напишем соответствующий сценарий.
§ 2. Метод вырожденных ядер 31

% Сценарий решения задачи 3.16, с. 181, из книги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Часть 1 - аппроксимация ядра вырожденным
% Автор: Гаджиева З.
close all
clear all
clc
syms x s
taylor(x*(exp(x*s)-1),5,x)

Результатом работы сценария является следующее символьное выра-


жение.

ans =

s*x^2+1/2*s^2*x^3+1/6*s^3*x^4

Напишем сценарий решения уравнения с таким ядром. Использу-


ем в нем функцию Degenerate_Fred_II.m.

% Сценарий решения задачи 3.16, с. 181, из книги


% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Часть 2 - решение уравнения с вырожденным ядром
% Автор: Гаджиева З.
close all
clear all
clc
syms x y
a = 0;
b = 1;
alpha = [x^2 x^3 x^4];
beta = [x 1/2*x^2 1/6*x^3];
lambda = -1;
f = exp(x)-x;
y=Degenerate_Fred_II(a,b,lambda,alpha,beta,f);
pretty(taylor(y,5,x)) % решение в удобном виде

Результатом работы сценария является следующее символьное


выражение.
32 Глава 2. Методы решения уравнений Фредгольма второго рода

4589889984855 2 24810467431825 3
1 - ---------------- x - ----------------- x -
4503599627370496 54043195528445952

14994606363791 4
- ------------------ x
108086391056891904
Эта функция на отрезке [0, 1] достаточно хорошо аппроксимирует
точное решение y ≡ 1.
Упражнения
1) Решите уравнение с вырожденным ядром (см. пример 1, с. 347, [5]):
Z1
y(x) = x2 + λ (x + s)y(s)ds, x ∈ [−1, 1].
−1

Проверьте, что если λ2 6= 3/4, то решение этого уравнения есть

22λx + 4λ2 /3
y(x) = x + .
3 − 4λ2
2) Приближенно решите уравнение (см. пример 3, с. 352, [5])
Z1/2
y(x) − exp(−x2 s2 )y(s)ds = 1, x ∈ [0, 1/2]. (14)
0

Ядро уравнения аппроксимируйте вырожденным ядром, пользу-


ясь известным разложением:
x x x2 x3 xn
e =1+ + + + ··· + + ···
1! 2! 3! n!
Проверьте, что при n = 2, т.е. если
x 4 s4
2 2
K(x, y) = 1 − x s + ,
2
приближенное решение уравнения (14) имеет вид:
ye(x) = 1.9930 − 0.0833x2 + 0.0007x4 .
Исследуйте, как приближенное решение зависит от n.
§ 2. Метод вырожденных ядер 33

3) Напишите функцию, реализующую метод вырожденных ядер,


основанный на аппроксимации ядра отрезком ряда Тейлора. Ре-
шите с помощью этой функции уравнения (13) и (14).
4) Исследуйте численно, как зависит точность решения уравне-
ний (13) и (14) от числа членов в ряде Тейлора, аппроксими-
рующем ядро уравнения.
5) Решите уравнение (см. пример. 1, с. 357, [5])
Z1
y(x) = x2 + sh(x + s)y(s)ds, x ∈ [−1, 1]. (15)
−1

Проверьте, что ядро этого уравнения является вырожденным,

sh(x + s) = sh x ch s + ch x sh s,

а его точное решение имеет вид:

y(x) = x2 + α sh x + β ch x,

где
µ ¶
6 sh 1 − 4 ch 1 sh 2
α= ¡ sh 2 ¢2 = −0.6821, β=α −1 = −0.5548.
2− 2 2
34 Глава 2. Методы решения уравнений Фредгольма второго рода

§ 3. Метод наименьших квадратов

1. Описание метода. Выражение для невязки уравнения


Фредгольма II рода (1), с. 22, имеет следующий вид:
Zb
Ry(x) = y(x) − λ K(x, s)y(s)ds − f (x), x ∈ [a, b]. (1)
a

Если y(x) — точное решение уравнения (1), с. 22, невязка равна нулю.
Его приближенное решение ye(x) будем искать в виде
n
X
ye(x) = ci ϕi (x). (2)
i=1

Здесь ci — неизвестные константы, подлежащие определению (сво-


бодные параметры), ϕi (x) — заданные линейно независимые (коор-
динатные) функции. Обозначим буквой c вектор неизвестных коэф-
фициентов ci , i = 1, 2, . . . , n. Подставим (2) в (1) и положим

ε(x, c) = Re
y (x).

Тогда для ненулевой невязки имеем


 
n
X Z b

ε(x, c) = ci ϕi (x) − λ K(x, s)ϕi (s)ds − f (x), x ∈ [a, b]. (3)
i=1 a

Постоянные ci найдем из условий минимума функционала


Zb
J(c) = ε2 (x, c)dx, (4)
a

т.е. из условий
∂J
= 0, i = 1, 2, . . . , n. (5)
∂ci
Подставим (3) в (4):
   2
Z b X n Zb 
J(c) = ci ϕi (x) − λ K(x, s)ϕi (s)ds − f (x) dx.
 
a i=1 a
§ 3. Метод наименьших квадратов 35

Вычислим частные производные:


   
Z b X n Zb 
∂J
= 2 cj ϕj (x) − λ K(x, s)ϕj (s)ds − f (x) ×
∂ci  
a j=1 a
 
Zb
× ϕi (x) − λ K(x, s)ϕi (s)ds dx, i = 1, 2, . . . , n.
a

Приравняем их нулю. Получим систему линейных алгебраических


уравнений с симметричной матрицей относительно неизвестных c:
n
X
aij cj = bi , i = 1, 2, . . . , n, (6)
j=1

где
 
Zb Zb
aij = ϕj (x) − λ K(x, s)ϕj (s)ds ×
a a
 
Zb
× ϕi (x) − λ K(x, s)ϕi (s)ds dx, i, j = 1, 2, . . . , n.
a
 
Zb Zb
bi = f (x) ϕi (x) − λ K(x, s)ϕi (s)ds dx, i = 1, 2, . . . , n.
a a
Решим эту систему и запишем приближенное решение исходного ин-
тегрального уравнения в виде (2). Теоретически этот метод обосно-
ван, например, в [12], с. 453.
2. Компьютерные программы. Напишем на языке Matlab
функцию CoefMNK.m, реализующую этот метод.

% Функция для решения линейного уравнения


% Фредгольма второго рода методом наименьших квадратов.
% Входные данные: K - ядро уравнения, f - правая часть
% (задаются аналитически), a - начало отрезка,
% b - конец отрезка интегрирования, L - параметр уравнения,
% n - число координатых функций, m - число узлов сетки.
36 Глава 2. Методы решения уравнений Фредгольма второго рода

% Результат: y - вектор значений решения на равномерной


% сетке из m узлов на отрезке [a,b],
% c - вектор коэффицентов разложения решения по
% координатным функциям fii
% Авторы: Гибадуллина Э., Касимова Э.
function [y, c] = CoefMNK(a,b,K,L,f,n,m)
B=zeros(n,1); % правая часть СЛАУ
A=zeros(n); % матрица слау
syms x s
format long
for i=1:n
for j=1:n
A(i,j)=int((fii(x,j)-...
L.*int(K(x,s).*fii(s,j),s,a,b)).*(fii(x,i)-...
L.*int( K(x,s).*fii(s,i),s,a,b)), x, a, b);
end
B(i)=int(f(x).*(fii(x,i)-...
L.* int( K(x,s).*fii(s,i),s,a,b)), x, a, b);
end
c=A\B; % коэффиценты C
x1 = linspace(a,b,m);
y=0;
for i = 1 : n y = y+c(i)*fii(x1,i);
end
end
Координатные функции определим в fii.m.
% Функция, задающая координатные функции.
% Авторы: Гибадуллина Э., Касимова Э.

function P = fii( x,n )


P = x.^(n-1);
end
3. Пример. На языке Matlab решим уравнение 3.24, с. 206, [3]:
Z1
y(x) = x + xsy(s)ds, x ∈ [−1, 1].
−1
§ 3. Метод наименьших квадратов 37

Точное решение этого уравнения y = 3x. Приближенное решение бу-


дем искать в виде
ye(x) = c1 + c2 x,
т.е. положим ϕ1 (x) = 1, ϕ2 (x) = x. Сценарий решения этого уравне-
ния MNK.m на языке Matlab выглядит следующим образом.
% Сценарий решения задачи 3.24, с. 206, из книги
% Верлань А.Ф., Сизиков В.С. <<Интегральные уравнения...>>
% Авторы: Гибадуллина Э., Касимова Э.

clear all
close all
clc
syms x s;
a=-1;
b=1;
K=@(x,s) x*s; % ядро
f=@(x) x; % правая часть
y_exact=@(x) 3*x; %точное решение
lambda=1;
n=2; % число координатных функций
m=20; % число узлов сетки
[y,c]=CoefMNK( a,b,K,lambda,f,n,m );
c %коэф-ты
x = linspace(a,b,m); % сетка для построения графиков
figure(1)
plot(x,y_exact(x),’b’) % график точного решения
hold on
plot(x,y,’ro’) % график приближенного решения
xlabel(’x’);
ylabel(’y’);
Результатами работы этого сценария являются графики точного и
приближенного решений (см. рис. 2), а также вектор искомых коэф-
фициентов:
c =
0
3
38 Глава 2. Методы решения уравнений Фредгольма второго рода

0
y

−1

−2

−3
−1 −0.5 0 0.5 1
x

Рис. 2. Результаты решения задачи 3.24, с. 206, из книги [3]. Непрерывной линией обо-
значено точное решение, кружочками — приближенное решение.

Упражнения

1) Можно ли сказать, что приближенное решение совпало с точным,


если да, то почему это произошло?
2) Что будет, если увеличить число координатных функций n? По-
стройте график зависимости от n погрешности решения рассмот-
ренной в этом параграфе задачи.
3) С помощью функции CoefMNK.m найдите приближенное решение
уравнения (5), с. 26. Исследуйте зависимость точности решения
от параметра n.
4) С помощью функции CoefMNK.m найдите приближенное решение
уравнения (13), с. 30. Исследуйте зависимость точности решения
от параметра n.
§ 3. Метод наименьших квадратов 39

5) Методом наименьших квадратов найдите приближенное решение


уравнения (15), с. 33. Разыскивайте его в виде

y(x) = c1 + c2 x + c3 x2 .

Сравните приближенное решение с точным (см. с. 33) при ма-


лых значениях x и на концах отрезка [−1, 1]. Что будет, если
увеличить число координатных функций?
6) Методом наименьших квадратов найдите приближенное решение
уравнения (15), с. 33, разыскивая его в виде

y(x) = c1 x2 + c2 sh x + c3 ch x.

Сравните приближенное решение с точным (см. с. 33).


40 Глава 2. Методы решения уравнений Фредгольма второго рода

§ 4. Метод Галеркина — Петрова

1. Описание метода. Пусть решение уравнения (1), с. 22,


разыскивается в линейном пространстве со скалярным произведени-
ем. Выберем в нем две системы линейно-независимых функций: ϕ i (x)
и ψi (x), i = 1, 2, . . . , n. Приближенное решение уравнения запишем в
виде
n
X
ye(x) = f (x) + cj ϕj (x), (1)
j=1
где cj — подлежащие определению коэффициенты. Ясно, что если
невязка (1), с. 34, для функции ye(x) равна нулю (т. е. ye(x) — точное ре-
шение), то она ортогональна каждой из функций ψi (x), i = 1, 2, . . . , n.
Используем эти же условия ортогональности для обеспечения мало-
сти невязки уравнения с приближенным решением ye(x):
(Re
y , ψi ) = 0, i = 1, 2, . . . , n. (2)
Пусть скалярное произведение определено формулой
Zb
(f, g) = f (x)g(x)dx.
a

Тогда равенства (2) представляют собой систему линейных алгебра-


ических уравнений относительно неизвестных коэффициентов c j :
n
X
aij cj = bi , i = 1, 2, . . . , n. (3)
j=1

Здесь
Zb Zb Zb
aij = ϕj (x)ψi (x)dx − λ ψi (x) K(x, s)ϕj (s)dsdx,
a a a

Zb Zb
bi = λ ψi (x) K(x, s)f (s)dsdx.
a a
Решив систему (3), найдем коэффициенты в представлении прибли-
женного решения (1). В наиболее общем виде этот метод обоснован,
например, в [7], с. 190.
§ 4. Метод Галеркина — Петрова 41

2. Компьютерная программа. Напишем на языке Matlab


функцию kem_Fred.m, реализующую метод Галеркина — Петрова.

% Функция для решения уравнения Фредгольма II рода


% методом Галеркина - Петрова.
% Входные данные: K - ядро уравнения,
% f - правая часть (задаются аналитически),
% а - начало отрезка интегрирования,
% b - конец отрезка интегрирования,
% lambda - параметр уравнения,
% n - число координатных функций,
% Результат: y - вектор значений приближенного решения
% Авторы : Матвеев Д.И., Липатов В.С.
function [y]= kem_Fred(K,f,a,b,lambda,n)
syms x;
syms s;
format long
B=zeros(n,1); % правая часть СЛАУ
A=zeros(n); % матрица СЛАУ
for j=1:n
B(j)=lambda*int(int(psi(x,j).*f(s).*...
K(x,s),s,a,b),x,a,b);
for i=1:n
A(i,j)= quadl(@(x) fi(x,i).*psi(x,j),a,b)- ...
lambda*int(int( K(x,s).*fi(s,i).*...
psi(x,j),s,a,b),x,a,b);
end
end
c=A\B; % решение СЛАУ - коэффициенты вектора c
x1 = linspace(a,b);
y = f(x1);
for i = 1 : n
y = y + c(i)*fi(x1,i);
end
end
42 Глава 2. Методы решения уравнений Фредгольма второго рода

3. Пример. Решим методом Галеркина — Петрова уравнение


Z1
y(x) = 1 + (xs + x2 )y(s)ds, x ∈ [−1, 1]. (4)
−1

Точное решение этого уравнения y(x) = 1 + 6x2 (см. упражнение 3.25,


с. 207, [3]). Приближенное решение ищем в виде

ye(x) = 1 + c1 ϕ1 (x) + c2 ϕ2 (x),

где ϕ1 (x) = x, ϕ2 (x) = x2 , из условия ортогональности невязки функ-


циям ψ1 (x) = 1, ψ2 (x) = x. Напишем на языке Matlab функции, опре-
деляющие ϕm (x) и ψm (x).

% Входные данные: x - аргумент функции,


% m - порядковый номер функции
% Результат: f - значение функции
function [ f ] = fi( x,m)
f=x.^m;
end

% Входные данные: x - аргумент функции,


% m - порядковый номер функции
% Результат: f - значение функции
function [ f ] = psi(x,m)
f=x.^(m-1);
end

Теперь напишем сценарий выполнения упражнения.

% Сценарий выполнения упражнения 3.25, с. 207, из книги


% Верлань А.Ф Сизиков В.С. "Интегральные уравнения..."
% Авторы : Матвеев Д.И., Липатов В.С.
close all
clear all
clc
syms x s;
K= @(x,s)x.*s+x.^2; % ядро уравнения
a=-1; % начало отрезка интегрирования
§ 4. Метод Галеркина — Петрова 43

4
y

1
−1 −0.5 0 0.5 1
x

Рис. 3. Результаты решения уравнения (4) методом Галеркина — Петрова. Непрерывной


линией обозначено точное решение, кружочками — приближенное решение.

b=1; % конец отрезка интегрирования


lambda = 1; % параметр уравнения
f=@(x)0*x+1; % правая часть уравнения
n=2; % число координатных функций
y=kem_Fred (K,f,a,b,lambda,n);
x=linspace(a,b); % сетка для построения графика
y_exact=@(x)x.^2*6+1;
figure(1)
plot(x,y_exact(x),’o’)
hold on
plot(x,y,’r’)
xlabel(’x’)
ylabel(’y’)

Результатом работы этого сценария являются графики точного и


приближенного решений (см. рис. 3).
44 Глава 2. Методы решения уравнений Фредгольма второго рода

Упражнения

1) Можно ли сказать, что приближенное решение совпало с точным,


если да, то почему это произошло?
2) Что будет, если увеличить число координатных функций n? По-
стройте график зависимости от n погрешности решения задачи
и числа обусловленности матрицы A.
3) С помощью функции kem_Fred.m найдите приближенное реше-
ние уравнения с невырожденным ядром (пример постройте са-
мостоятельно). Исследуйте зависимость точности решения от n.
4) Частным случаем метода Галеркина — Петрова является метод
Бубнова — Галеркина. В этом методе полагают ϕi (x) = ψi (x) для
всех i = 1, 2, . . . , n. Постройте расчетные формулы и напишите
компьютерные программы. Решите этим методом уравнение (4).
Приближенное решение ищите в виде

ye(x) = 1 + c1 x + c2 x2 ,

из условия ортогональности невязки функциям ϕ1 (x) = x и


ϕ2 (x) = x2 (см. пример 3.26, с. 209, [3]).
5) Методом Бубнова — Галеркина найдите приближенное решение
уравнения с невырожденным ядром (пример постройте самосто-
ятельно). Исследуйте зависимость точности решения от n.
§ 5. Метод коллокации 45

§ 5. Метод коллокации

1. Описание метода коллокации дадим, следуя [5]. Запишем


интегральное уравнение Фредгольма второго рода в виде равенства
нулю его невязки:
Zb
Ry(x) = y(x) − λ K(x, s)y(s)ds − f (x) = 0, x ∈ [a, b]. (1)
a

Будем искать приближенное решение уравнения (1) в виде


n
X
ye(x) = cj ϕj (x). (2)
j=1

Здесь cj , j = 1, 2, . . . , n, — неизвестные константы, подлежащие


определению, ϕj (x), j = 1, 2, . . . , n, — заданные линейно незави-
симые (координатные) функции. Подставим выражение (2) в левую
часть (1), получим невязку для приближенного решения:
n
X Zb n
X
Re
y (x) = cj ϕj (x) − λ K(x, s) cj ϕj (s)ds − f (x) =
j=1 a j=1
 
n
X Zb
= cj ϕj (x) − λ K(x, s)ϕj (s)ds − f (x).
j=1 a
Потребуем чтобы невязка Rey (x) обращалась в нуль в заданной систе-
ме точек коллокации из отрезка [a, b]:
a 6 x1 < x2 < . . . < xn 6 b.
Получим систему линейных алгебраических уравнений относительно
неизвестных cj , j = 1, 2, . . . , n,
 
Xn Zb
cj ϕj (xi ) − λ K(xi , s)ϕj (s)ds = f (xi ), i = 1, 2, . . . , n. (3)
j=1 a

Обозначим элементы матрицы этой системы следующим образом:


Zb
ψj (xi , λ) = ϕj (xi ) − λ K(xi , s)ϕj (s)ds, i, j = 1, 2, . . . , n. (4)
a
46 Глава 2. Методы решения уравнений Фредгольма второго рода

Тогда система (3) записывается в виде


n
X
ψj (xi , λ)cj = f (xi ), i = 1, 2, . . . , n. (5)
j=1

Если определитель системы (5) не равен нулю, то из нее можно од-


нозначно определить значения cj , j = 1, 2, . . . , n, и, следовательно,
найти приближенное решение ye(x) по формуле (2).
Таким образом, алгоритм решения интегрального уравнения
Фредгольма второго рода методом коллокации состоит в вычисле-
нии элементов матрицы по формуле (4) и решении системы линейных
алгебраических уравнений (5). Приближенное ршение интегрально-
го уравнения записывается аналитически в виде (2). Доказательство
сходимости этого метода для общего случая многомерных слабо син-
гулярных уравнений можно найти в книге [15].
2. Компьютерная программа. Реализуем описанный алго-
ритм в функции Fredgolm_II_Colloc.m на языке Matlab.
% Функция для решения уравнения Фредгольма второго
% методом коллокации
% Входные данные: lambda - параметр уравнения,
% K - ядро интегрального уравнения,
% f - правая часть (задаются аналитически),
% a - начало отрезка интегрирования,
% b - конец отрезка,
% n - число базисных функций;
% m - число узлов в сетке:
% Fi - функция, реализующая построение базисных функций
% Результат: y - символьное решение,
% y_f - значение функци y в узлах сетки,
% CondNumb - число обусловленности матрицы СЛАУ
% Автор: Ганиева Э.

function [ y,y_f,CondNumb] = ...


Fredgolm_II_Colloc(a,b,lambda,K,f,n,m)
xx=linspace(a,b,n+1); % точки коллокации
ff=f(xx); % правая часть СЛАУ
M=zeros(n+1,n+1); % матрица СЛАУ
§ 5. Метод коллокации 47

syms x

for i=1:n+1
for j=1:n+1
% вычисляем интеграл
integr=quadl(@(s) lambda*K(xx(i),s).*Fi(s, j-1),a,b);
% вычисляем значение функции Psi_j в точке x(i)
M(i,j)=Fi(xx(i), j-1)-integr;
end
end
CondNumb=cond(M,inf); % число обусловленности
C=M\ff’; % решение СЛАУ
y=0;
% Решение уравнения в символьном виде
for i=1:n+1
y=y+C(i)*Fi(x, i-1);
end
% Решение уравнения в узлах сетки
y_f=0;
x=linspace(a,b,m);
for i=1:n+1
y_f=y_f+C(i)*Fi(x, i-1);
end

end

3. Координатные функции. В качестве координатных функ-


ций будем использовать полиномы Лежандра. Вычислять их будем по
рекуррентной формуле (см., напр., [13], с. 166)
2n − 1 n−1
Pn (x) = xPn−1 − Pn−2 , n > 2,
n n
где P0 = 1, P1 (x) = x. Создадим соответствующую функцию Fi.m.

% Полином Лежандра
% Входные данные: x - независимая переменная,
% n - степень полинома,
% Результат: P - значение полинома
48 Глава 2. Методы решения уравнений Фредгольма второго рода

% Автор: Ганиева Э.

function P = Fi(x,n)

if n==0
P=1;
else
if n==1
P=x;
else
P=(2*n-1)./n.*x.*Fi(x,n-1) - (n-1)./n.*Fi(x,n-2);
end
end

end

4. Пример. Решим уравнение


Z1
4 ¡ ¢
y(x) = 1 + x + xs2 − x y(s)ds, x ∈ [−1, 1]. (6)
3
−1

Точное решение этого уравнения y ≡ 1 (см. пример 3.30, с. 213, [3]).


Сценарий решения этого уравнения на языке Matlab выглядит сле-
дующим образом.

clc
clear all
close all

K= @(x,s) x.*s.^2-x; % ядро уравнения


f= @(x) 1+4*x/3; % правая часть
lambda=1;
a=-1;
b=1;
n=2;
m=10;
[y,y_f,CondNumb]=Fredgolm_II_Colloc(a,b,lambda,K,f,n,m);
pretty(y) % решение в удобном виде
§ 5. Метод коллокации 49

4
y

−1 −0.5 0 0.5 1
x

Рис. 4. Результаты решения уравнения (4), с. 42, методом коллокации. Непрерывной


линией обозначено приближенное решение, кружочками — точное решение.

Результатом работы этого сценария является символьное выражение


решения исходного уравнения: 1.
5. Пример. Решим методом коллокации уравнение (4), с. 42.
Сценарий решения этого уравнения на языке Matlab выглядит сле-
дующим образом.
clc
clear all
close all

n=3;
m=20;
K= @(x,s) x*s+x^2; % ядро уравнения
f= @(x) 1 + 0*x; % правая часть
lambda=1;
a=-1;
50 Глава 2. Методы решения уравнений Фредгольма второго рода

b=1;

[y, y_f,condNumb]=Fredgolm_II_Colloc(a,b,lambda,K,f,n,m);
x=linspace(a,b,m);
y_exact=@(x) 6*x.^2+1; % точное решение
pretty(y) % решение в удобном виде

figure
ezplot(y,a,b) % приближенное решение
title(’ ’)
hold on
plot(x, y_exact(x),’or’)
xlabel(’x’);
ylabel(’y’);
hold off

% относительная ошибка решения


error=norm(y_f-y_exact(x), inf)/norm(y_exact(x), inf)
Результатом работы этого сценария является символьное выра-
жение решения исходного уравнения:
/ 2 \
| 3 x 1 |
30399297484750865 x | ---- - - |
\ 2 2 /
---------------------------------
121694457621910022543683507716096

94237822202727589 x 2
- -------------------------------- + 6 x + 1
60847228810955011271841753858048
Напомним, что точное решение уравнения (4), с. 42, имеет вид
y(x) = 6x2 + 1.
Ясно, что приближенное решение на отрезке [−1, 1] хорошо аппрок-
симирует точное. В сценарии вычисляется относительная ошибка ре-
шения:
§ 5. Метод коллокации 51

error =

3.806478941571965e-016
На рис. 4 показаны графики точного решения этого уравнения и при-
ближенного, полученного методом коллокации.

Упражнения

1) Модифицируйте программы так, чтобы все координатные функ-


ции вычислялись заранее, а не по мере необходимости. Какого
увеличения скорости удалось достичь?
2) Решите методом коллокации уравнение

π Zπ
1+e
y(x) = ex − + (1 − eπ ) cos(x) + (sin(s) + cos(x)) y(s)ds,
2
0

где x ∈ [0, π]. Убедитесь в том, что точное решение этого уравне-
ния y(x) = ex . Используйте в качестве координатных функций
полиномы Лежандра. Увеличивайте число координатных функ-
ций до тех пор, пока число обусловленности матрицы системы
метода коллокации не станет больше 1016 . Постройте графики
зависимости числа обусловленности и относительной ошибки ре-
шения от числа координатных функций.
3) Напишите функции, реализующие построение коордиинатных
функций на основе ортогональных полиномов Чебышева (см.,
напр., [6], с. 141),

T0 (x) ≡ 1, T1 (x) = x,

Tn+1 (x) = 2xTn (x) − Tn−1 (x), n > 1,


и естественного базиса в пространстве полиномов с веществен-
ными коэффициентами (см., напр., [6], с. 126): 1, x, x2 ...
4) Решите уравнение
Z1
y(x) = x + 4 x2 s2 y(s)ds, x ∈ [0, 1].
0
52 Глава 2. Методы решения уравнений Фредгольма второго рода

Поверьте, что точное решение этого уравнения y(x) = x + 5x2 .


В качестве координатных функций используйте полиномы Ле-
жандра, Чебышева и элементы естественного базиса. Убедитесь
в том, что во всех трех случаях приближенное решение совпадает
с точным.
5) Решите уравнение
µ ¶ Z3π

y(x) = 1 − cos(x) + cos(x + s)y(s)ds, x ∈ [0, 3π].
2
0

Проверьте, что точное решение этого уравнения y(x) = cos(x).


Используйте полиномы Чебышева в качестве координатных
функций. Увеличивайте число координатных функций до тех
пор, пока число обусловленности матрицы системы метода кол-
локации не станет больше 1016 . Постройте графики зависимости
числа обусловленности и относительной ошибки решения от чис-
ла координатных функций.
6) Решите методом коллокации уравнение (см. пример 1, с. 355, [5])
Z1
s2 y(s) 1
y(x) − ds = x arctg , x ∈ [0, 1].
x2 + s 2 x
0

Точное решение этого уравнения есть y ≡ 1. Разыскивайте ре-


шение в виде
y(x) = c1 + c2 x,
выбирая точки коллокации x1 = 0, x2 = 1.

§ 6. Метод простой итерации

На языке Matlab решите пример 3.17, с. 185, [3].

§ 7. Метод моментов

На языке Matlab решите пример 3.29, с. 212, [3].


Глава 3
Однородное уравнение Фредгольма II рода

§ 1. Вырожденные ядра

1. Однородное линейное уравнение Фредгольма II рода


имеет следующий вид:
Zb
y(x) = λ K(x, s)y(s)ds, x ∈ [a, b]. (1)
a

Число λ называется характеристическим числом уравнения (1), если


у этого уравнения существует нетривиальное решение. Это решение
называется собственной функцией интегрального уравнения, соответ-
ствующей характеристическому числу λ.
Если ядро K(x, y) непрерывно по совокупности аргументов, то
интегральный оператор, определяемый правой частью уравнения (1)
является компактным (см., напр., [14], с. 23) на пространстве непре-
рывных на [a, b] функций, и для теоретического анализа спектраль-
ной задачи (1) можно применить результаты теории компактных опе-
раторов (см., напр., [14], с. 34). В этом случае конечных характе-
ристических чисел может и не существовать. Если ядро симметрич-
но (K(x, s) = K(s, x)), то согласно спектральной теории самосопря-
женных компактных операторов (см., напр., [14], с. 271) существует
счетное множество вещественных характеристических чисел.
2. Решение задачи с вырожденным ядром. Если ядро
уравнения вырождено (см. с. 27), то спектральная задача (1) экви-
валентна конечномерной алгебраической спектральной задаче. Дей-
ствительно, запишем уравнение с вырожденным ядром следующем в
виде (сравните с (3), с. 27):

m
X Zb
y(x) − λ αi (x) βi (s)y(s)ds = 0, x ∈ [a, b]. (2)
i=1 a
54 Глава 3. Однородное уравнение Фредгольма второго рода

Пусть λ — характеристическое число. Тогда каждая собственная


функция имеет вид
m
X
y(x) = λ ci αi (x), x ∈ [a, b], (3)
i=1

где ci — неизвестные константы, определенные равенствами (4), с. 27.


Эти константы и характеристические числа являются решениями
следующей алгебраической спектральной задачи:
    
1 − λa11 −λa12 · · · −λa1m c1 0
 −λa21 1 − λa22 · · · −λa2m   c2   0 
    
 ··· ··· ··· ···   · · ·  =  · · ·  , (4)
−λam1 −λam2 · · · 1 − λamm cm 0
где элементы матрицы вычисляются по формулам (9), с. 28. Для то-
го чтобы сформулировать эту задачу надо положить правую часть
в (12), с. 28, равной нулю.
Таким образом, для решения однородного уравнения (2) с вырож-
денным ядром достаточно вычислить интегралы (9), с. 28, составить
определитель
¯ ¯
¯ 1 − λa11 −λa12 · · · −λa1m ¯
¯ ¯
¯ −λa21 1 − λa22 · · · −λa2m ¯
D(λ) = ¯¯ ¯,
¯ (5)
¯ · · · · · · · · · · · · ¯
¯ −λam1 −λam2 · · · 1 − λamm ¯

развернуть его в уравнение D(λ) = 0, решение которого дает искомые


характеристические числа, каждое из которых, будучи поставлено в
линейную систему (4), позволяет после решения последней найти на-
бор постоянных ci , определяющий одну из собственных функций со-
гласно выражению (3).
3. Компьютерная программа. Напишем на языке Matlab
сценарий решения однородного уравнения с ядром
K(x, s) = cos2 (x) cos(2s) + cos(3x) cos3 (s)
и пределами интегрирования a = 0, b = π. Характеристические числа
этого уравнения и отвечающие им собственные функции известны
(см. пример 3.13, с. 172, [3]):
4
λ1 = , y1 = c1 cos2 (x),
π
§ 1. Вырожденные ядра 55

8
λ2 = , y2 = c2 cos(3x).
π
% Сценарий решения упражнения 3.13, с. 172, из книги
% Верлань А.Ф, Сизиков В.С. <<Интегральные уравнения...>>
% Автор: Журавлева А.
close all
clear all
clc
%начальные данные---
syms x s;
a = 0;
b = pi;
alpha=[(cos(x))^2 cos(3*x)];
beta=[cos(2*s) (cos(s))^3];
%ход решения---
syms lambda;
m=length(alpha);
%заменяем в alpha переменную x на s ф-ей subs
for i=1:m
alpha(i) = subs(alpha(i),x,s);
end;
%считаем коэф-ты а
for i=1:m
for j=1:m
A(i,j)=int(alpha(j)*beta(i),a,b);
end;
end;
%выполним обратную замену в alpha переменной s на x
for i=1:m
alpha(i)=subs(alpha(i),s,x);
end;
%создаем столбец постоянных С
C=sym([1:m]);
for i=1:m
C(i)=strcat(’c’,int2str(i));
end;
%составляем матрицу D(lambda) алгебраической
56 Глава 3. Однородное уравнение Фредгольма второго рода

% спектральной задачи D(lambda)*C=0


for i=1:m
for j=1:m
if i~=j
D(i,j)=-1*lambda*A(i,j);
else
D(i,j)=1-1*lambda*A(i,j);
end;
end;
end;
%составляем определитель матрицы D,
% разверачиваем его в уравнение d(lambda)=0
% и находим искомые характеристический числа lambda
d = det(D); lambdak=solve(d,lambda);
%подставляем найденные значения в линейную систему
%для определения С
for i=1:m
%матрица однородной системы при конкретном значении лямбда
B1=subs(D,’lambda’,lambdak(i));
syms x;
%фундаментальная система решений однородной системы
x=sym(null(double(B1),’r’));
anss=C(i)*x;
%сохраняем результат в матрицу
for j=1:m
O(j,i)=anss(j);
end;
end;
%формируем собственные функции
for i=1:m
for j=1:m
if O(i,j)~=0
y(i)=C(i)*alpha(i);
end;
end;
end;
%печатаем ответ
§ 2. Метод Бубнова — Галеркина 57

for i=1:m
lambda=lambdak(i)
Y=y(i)
disp(’ ’)
end;
Результат работы сценария совпадает с точным решением задачи:
lambda =

4/pi

Y =

c1*cos(x)^2

lambda =

8/pi

Y =

c2*cos(3*x)
Упражнения
1) Модифицируйте сценарий так, чтобы решить уравнение из при-
мера 3.27, с. 210, [3].
2) Решите с помощью предложенного сценария уравнение из при-
мера 3.33, с. 220, [3].
3) Решите с помощью предложенного сценария уравнение из при-
мера 3.34, с. 221, [3].
4) Решите с помощью предложенного сценария уравнение из при-
мера 3.35, с. 225, [3].

§ 2. Метод Бубнова — Галеркина

На языке Matlab решите пример 3.27, с. 210, [3].


58 Глава 3. Однородное уравнение Фредгольма второго рода

§ 3. Метод Ритца

На языке Matlab решите пример 3.33, с. 220, [3].

§ 4. Метод следов

На языке Matlab решите пример 3.34, с. 221, [3].

§ 5. Метод Келлога

На языке Matlab решите пример 3.35, с. 225, [3].


Литература

1. Бахвалов Н.С. Численные методы. — М.: Изд-во «Наука», 1975. —


632 с.
2. Березин И.С., Жидков Н.П. Методы вычислений. Том 2. — М.: Го-
сударственное издательство физико-математической литературы,
1959. — 620 с.
3. Верлань А.Ф., Сизиков В.С. Интегральные уравнения: методы,
алгоритмы, программы. — Киев.: Наукова думка, 1986. — 544 с.
4. Глазырина Л.Л., Карчевский М.М. Введение в численные методы:
учебное пособие. — Казань.: Казан. ун-т, 2012. — 122 с.
5. Демидович Б.П., Марон И.А., Шувалова Э.З. Численные мето-
ды анализа. Приближение функций, дифференциальные и инте-
гральные уравнения. — М.: Изд-во «Наука», 1967. — 368 с.
6. Карчевский Е.М., Карчевский М.М. Лекции по линейной алгебре
и аналитической геометрии: учебное пособие. — Казань: Изд-во
Казан. ун-та, 2014. — 352 с.
7. Красносельский М.А., Вайникко Г.М., Забрейко П.П., Рутиц-
кий Я.Б., Стеценко В.Я. Приближенное решение операторных
уравнений. — М.: Изд-во «Наука», 1969. — 455 с.
8. Крылов В.И. Приближенное вычисление интегралов. — М.: Изд-
во «Наука», 1967. — 500 с.
9. Манжиров А.В., Полянин A.Д. Справочник по интегральным
уравнениям: методы решения. — М.: Изд-во «Факториал Пресс»,
2000. — 384 с.
10. Михлин С.Г. Лекции по линейным интегральным уравнениям. —
М.: Государственное издательство физико-математической лите-
ратуры, 1959. — 232 с.
60 Литература

11. Михлин С.Г., Смолицкий Х.Л. Приближенные методы решения


дифференциальных и интегральных уравнений. — М.: Изд-во
«Наука», 1965. — 384 с.
12. Михлин С.Г. Вариационные методы в математической физике. —
М.: Изд-во «Наука», 1970. — 512 с.
13. Янке Е., Эмде Ф., Леш Ф. Специальные функции. — М.: Изд-во
«Наука», 1968. — 344 с.
14. Kress R. Linear Integral Equations. — New York: Springer-Verlag,
1999. — 365 p.
15. Vainikko G. Multidimensional Weakly Singular Integral Equations. —
Berlin, Heidelberg: Springer-Verlag, 1993. — 159 p.
16. Brian R. Hunt [и др.] Matlab R2007 с нуля [пер. с англ.] — М.: Луч-
шие гниги, 2008. — 352 с.

Вам также может понравиться