Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Обратные и некорректные задачи биофизики. Учебное пособие
.pdf
Проиллюстрируем теоремы Фредгольма на примере интегрального уравнения с
вырожденным ядром.
Пример. Исследовать решения интегрального уравнения
π
φ(x) − λ
(x2cos y + x sin y)φ(y)=cosx
−π
в зависимости от значений параметра λ.
Решение. Решение интегрального уравнения сводится к решению неоднородной
системы
(E − λA)C = F,
где F =(f
1,f1
, ..., fn)T,
В рассматриваемом случае имеем
(x)=x2,p2(x)=x, q1(y)=cosy, q2(y) = sin y
p
1
π
α
=
11
α
21
f
cos x · x2dx =4π, α12=
−π
π
=
sin x · x2dx =0,α22=
−π
π
=
1
cos2xdx = π, f2=
−π
Система
π
=
f
i
qi(x)f(x)dx.
−π
−π
(E − λA)C = F,
π
cos x · xdx =0,
−π
π
sin x · xdx = −2π,
−π
π
sin x cos xdx =0.
имеет вид
1 − 4πλ 0
01+2πλ
Характеристическое уравнение
det(E − λA)=(1+2πλ)(1 − 4πλ)=0
имеет корни λ
=1/4π, λ2= −1/2π являющиеся характеристическими числами
1
соответствующего однородного уравнения.
При любом λ
=1/4π, −1/2π система (3.27) имеет единственное решение
1
π
=
c
1
1 − 4πλ
31
,c
c
1
c
2
2
=0
=
π
0
(3.27)

соответствующее решение интегрального уравнения:
При λ = λ
φ(x)=cosx + λ
из (3.27) получаем
1
00
3
0
2
π
1 − 4πλ
c
c
x
=
1
2
2
,λ=
1
1
, −
4π
.
2π
π
0
Эта система, а вместе с ней и исходное интегральное уравнение решения не имеют.
При λ = λ
и имеет решения c
из (3.27) получаем
2
= π/3,c2= C. Соответствующие решения интегрального уравне-
1
30
00
c
1
c
2
=
π
0
ния таковы:
1
φ(x)=cosx + λ
x2+ c2x)=cosx −
2(c1
+ Cx,
6
где C−произвольная постоянная.
3.6 Физические примеры
.
Многие задачи математической физики приводят к линейным интегральным уравнениям. Рассмотрим некоторые примеры.
1. Если внешнее воздействие на какую-либо линейную систему описывается функ-
цией f (x), (a ≤ x ≤ b), то результат этого воздействия описывается функцией
b
f(x)=
G(x, ξ)f (ξ)dξ,
a
где G(x, ξ)−функция влияния, определяемая рассматриваемой системой.
Допустим, что вид воздействия нам неизвестен, но известен отклик системы на
это воздействие и требуется по этому отклику восстановить воздействие. Тогда мы
приходим к интегральному уравнению - линейному интегральному уравнению Фредгольма I-го рода.
2. Бывают случаи, когда известной оказывается некоторая линейная комбинация
φ(x)=αf(x)+βf(x) функций, описывающих внешнее воздействие и соответствующий отклик. Тогда для восстановления внешнего воздействия потребуется решить
интегральное уравнение
b
αf(x)+β
G(x, ξ)f (ξ)dξ = φ(x).
a
Это линейное интегральное уравнение Фредгольма II рода с искомой функцией f (x).
32

Глава 4
Численные методы решения
интегральных уравнений
4.1 Методы решения уравнений Вольтерра II рода.
Метод квадратур
1. Линейное уравнение Вольтерра II рода имеет следующий вид:
x
φ(x) −
Здесь φ(y)−неизвестная функция, (x, s)−ядро интегрального уравнения, f(x)−свободный
член (правая часть) интегрального уравнения.
1. Описание метода. Найдем решение линейного уравнения Вольтерра II рода
методом квадратур.
При численном решении интегральных уравнений входящие в них интегралы
обычно заменяют конечными суммами. Согласно методу квадратур интегральные
операторы заменяют суммами, полученными с помощью различных квадратурных
формул:
b
a
Здесь a ≤ x
< .... < xn≤ b− узлы, Ai, i =1, 2, ..., n−веса, а R−ошибка аппрок-
1<2
симации квадратурной формулы.
Чтобы применить метод квадратур к решению уравнения (10.7), необходимо использовать следующие равенства:
K(x, s)φ(y)dy = f(x). (4.1)
a
n
g(x)dx =
Aig(xi)+R. (4.2)
i=1
x
i
φ(x
) −
i
K(xi,s)φ(y)dy = f(xi),i=1, 2, ..., n (4.3)
a
Они получаются из исходного уравнения при фиксированных значениях x
симой переменной x. Узлы сетки x
могут быть выбраны специальным образом или
i
заданы заранее, если, например, правая часть f задана таблицей.
33
незави-
i

Примем значения xiв качестве узлов квадратурной формулы и заменим с ее
помощью интеграл в (4.3) конечной суммой. Получим систему
i
φ(x
) −
i
AjK(xi,xj)φ(xj)=f(xi)+Ri,i=1, 2, ..., n, (4.4)
j=1
где A
R
Здесь φ
−веса квадратурной формулы, Ri−ошибки аппроксимации. Положим ошибки
j
малыми и отбросим их. Получим систему линейных алгебраических уравнений:
i
i
φ
−
i
=φ(xi), fi= f(xi), Kij= K(xi,xj),φ−приближение к искомой функции φ.
i
AjKijφj= fi,i=1, 2, ..., n, (4.5)
j=1
Решение системы уравнений (4.5) дает приближенные значения искомой функции в
узлах x
.
i
Приведем систему (4.5) к следующему виду:
i−1
−
AjKijφj+(1− AiKii)φi= fi,i=1, 2, .., n.
j=1
Хорошо видно, что матрица коэффициентов этой системы - треугольная. Если все
диагональные элементы матрицы отличны от нуля, то значения y
, ..., ynможно
1,y2
последовательно найти по рекуррентной формуле
=(1− AiKii)
φ
i
Выполнения условий (1 − A
−1
)−1=0, i =1, 2, .., n можно добиться путем выбора
iKii
i−1
+
f
i
AjKijφ
j=1
,i=1, 2, .., n. (4.6)
j
узлов квадратурной формулы и обеспечения достаточной малости коэффициентов
. Отметим особенность выражения (4.6), состоящую в росте количества вычисле-
A
i
ний вместе с номером шага дискретизации из-за увеличения членов суммы, причем
значения коэффициентов A
при yjменяются для каждого i, что в общем случа-
jKij
ем не позволяет воспользоваться результатами вычислений на предыдущих шагах.
Кроме того, имеются особенности в применении различных квадратурных формул.
Например, применение формулы Симпсона должно чередоваться для нечетных узлов с каким-либо другим правилом, например с формулой прямоугольников или
формулой трапеций.
Достаточно простым и во многих случаях эффективным является применение
формулы трапеций.
Для равномерной сетки с шагом h имеем
A
1
= An=
= A3= ... = A
,A
2
2
n−1
= h.
Тогда формула (4.6) примет следующий вид:
h
=1 −
φ
i
K
−1
ii
h
f
+
K
i
i1φj
2
h
2
+ h
i−1
j=2
Kijφ
,i=1, 2, .., n. (4.7)
j
Напишем на языке Matlab функцию, реализующую вычисления по формуле (4.7).
34

1 close all
2 clear all
3 warning(' off' ,' all' );
4 clc
5 close all
6 clear all
7 clc
8 format long e ;
9 a=0; b=1; h=0.02 ;
10 x = a:h:b;
11 K=@ ( x , s ) e x p ( x . ^ 2− s. ^2);
12 f=@(x)exp( x.^2);
13 y_exact=@( x) exp ( x.^2+x );
14 y1=y_exact (x );
15 y_approx=Voltera_II(K, f ,a ,b,h);
16 y2=tran sp (y_approx );
17 figure
18 plot (x,y1 ,'−r ' ,x , y2,'o' )
19 xlabel ('x' );
20 ylabel ('\phi' );
21 function [y] = Voltera_II (K, f ,a ,b,h)
22
23 format long e
24 x=[a:h:b];
25 y(1)=f(x(1));
26 for i =2:1: fix ((b−a)/h+1);
27 s=0; if i>2;
28 for j =2:1:(i −1);
29 s=K( x ( i ) , x( j ))
30 end
31 end
32 y ( i )=((1−h/2
33 (h/2)
34 end
35 end
K(x( i ) ,x(1))*y(1)+h*s));
*
y(j)+s ;
*
K(x( i ) ,x( i )))^(− 1))*(( f (x( i ))+ ...
*
Решим с помощью этой функции уравнение
x
φ(x) −
e
−x2−y
2
φ(y)dy = e
0
35
2
x
,x∈ [0, 1]. (4.8)

8
7
6
5
4
3
2
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Рис. 4.1. Результаты приближенного решения уравнения (4.8) методом квадратур,
основанным на применении квадратурной формулы трапеций с равномерной сеткой.
Непрерывной линией обозначено точное решение, кружочками-приближенное решение при шаге сетки h = 0.02
4.1.1 Метод простой итерации
1.Описание метода.
Запишем линейное уравнение Вольтерра II рода в удобном для применения ме-
тода простой итерации виде:
x
φ(x)=f(x)+
Посторим последовательность функций φ
ного соотношения
(x)=f(x)+
φ
k
Если правая часть f (x) непрерывна на отрезке [a, b], а ядро K (x, y) непрерывно в
замкнутом треугольнике a ≤ y ≤ x ≤ b, эта последовательность сходится при любом начальном приближении φ
(x). Скорость сходимости зависит от свойств ядра
0
и правой части уравнения. Ясно, что число итерационных шагов для получения аппроксимации необходимой точности зависит от степени близости начального приближения к искомому решению. В качестве начального приближения часто выбирают
K(x, y)φ(y)dy, x ∈ [a, b]. (4.9)
a
(x),k =0, 1,2, ..., с помощью рекуррент-
k
x
K(x, y)φ
a
(y)dy, k =1, 2,.. (4.10)
k−1
36

f(x), если нет дополнительной информации о решении. При численной реализации
итерационных методов интеграл вычисляется посредством квадратурных формул.
Воспользуемся квадратурной формулой трапеций с равномерной сеткой и шагом h.
Узлы сетки обозначим x
, i =0, 1, ..., n,пустьKij= K(xi,xj), φki= φk(xi).Полу-
i
чим расчетное выражение
x
i
(x)=f(xi)+
φ
k+1
K(xi,y)φk(y)dy ≈
0
≈ f (x
)+
i
[K
2
+2(Ki1φk2+ Ki2φk2+ ... + K
i0φk0
i,i−1φk,i−1
)+Kiiφki] ,i=1, 2, ...n
(4.11)
Для окончания итерационного процесса, как обычно, будем использовать условие
h
φ
k
− φ
k−1
≤ ,
φk
где φ =max
|φ(x)|, −заданная относительная ошибка. Данное условие означает,
a≤x≤b
что в процессе решения необходимо сравнивать результаты, полученные для двух
смежных итерационных шагов; близость полученных при этом приближений свидетельствует о достигнутой точности. Таким образом, количество итерационных шагов
зависит также от требований к точности результата.
Напишем на языке Matlab функцию, реализующую вычисления по формуле (4.11).
1 clear all
2 close all
3 clc
4 f=@(x)x ;
5 K=@(x,s)−(x − s) ;
6 a=0;
7 b=2
8 h=0.07;
9 eps = 1e−05;
10 y_exact = @(x) sin (x );
11 x=a : h : b;
12 [ y_approx , i t er ] = IterVolt_II (x , h, eps , f ,K) ;
13 y=y_exact(x );
14 plot (x,y,'o' ,x , y_approx , ' r' );
15 xlabel ('x' );
16 ylabel ('\phi' );
17 function [yk, iter] = IterVolt_II(x,h,eps ,f ,K)
18 n = numel (x );
19 y= f(x);
20 yk = CalcInt (y,h,x,n,K, f ) ;
21 iter = 0;
22 while norm ( yk−y,inf)/norm(yk, inf) > eps
23 y=yk;
24 yk = CalcInt (y,h,x,n,K, f ) ;
25 iter = iter + 1;
26 end
27 end
3.14;
*
37

28
29 function [ yk] = CalcInt (y,h,x,n,K, f )
30 yk = y ;
31 for i=1:n
32 yk ( i ) = 0;
33 for j=1:i
34 yk ( i ) = yk( i ) + 2
35 end
36 yk ( i ) = yk( i ) − K(x( i) ,x(1))
37 yk ( i ) = f ( x ( i )) + yk( i )
38 end
39 end
K(x ( i ) , x( j ) )*y(j );
*
y(1) − K( x( i ) , x( i ))*y( i );
*
h/2;
*
Решим с помощью этой функции уравнение
x
φ(x)=x −
(x − y) · φ(y)dy, x ∈ [0, 2π]. (4.12)
0
Точное решение этого уравнения φ(x) = sin x. Надо найти приближенное решение
этого уравнения методом последовательных приближений, основанным на использовании формулы трапеций с равномерной сеткой. Шаг сетки h=0.07,относительная
−5
погрешность решения =10
.
1.5
1
0.5
0
-0.5
-1
-1.5
01234567
x
Рис. 4.2. Результаты приближенного решения уравнения (4.12) методом простой
итерации, основанным на применении квадратурной формулы трапеций с равномерной сеткой. Непрерывной линией обозначено точное решение, кружочкамиприближенное решение
38

4.2 Методы решения уравнений Фредгольма II рода
4.2.1 Метод квадратур
1. Линейное уравнение Фредгольма II рода имеет следующий вид:
b
φ(x) − λ
Здесь φ(x)−неизвестная функция, K(x, y)−ядро интегрального уравнения,
f(x)−свободный член (правая часть) интегрального уравнения. Для удобства ана-
лиза в интегральном уравнении (4.13) по традиции принято выделять числовой параметр λ, который называют параметром интегрального уравнения. Будем считать,
что правая часть уравнения (4.13) непрерывна на отрезке [a, b], а его решение будем
разыскивать в классе непрерывных на [a,b] функций. Напомним, что если однородное уравнение (f (x) ≡ 0) имеет только тривиальное решение, то значение параметра
λ называется правильным или регулярным. Тогда у неоднородного уравнения при
любой правой части f(x) существует единственное решение. Всюду далее в этой главе
будем считать это условие выполненным.
2.Описание метода.
Найдем приближенное решение уравнения (4.13) методом квадратур. Построим
на отрезке [a, b] сетку с узлами x
K(x, y)φ(y)dy = f(x),x ∈ [a, b]. (4.13)
a
, ..., xn. Запишем уравнение (4.13) в узлах сетки:
i,x2
b
φ(x
) − λ
i
K(xi,y)φ(y)dy = f (xi),i=1, 2, .., n. (4.14)
a
Аппроксимируем интегралы в равенствах (4.14) конечными суммами с помощью
одной из квадратурных формул:
n
− λ
φ
i
Здесь φ
− веса квадратурной формулы. Решение системы уравнений (4.15) дает при-
φ, A
j
=φ(xi), fi= f (xi), Kij= K(xi,xj),φ−приближение к искомой функции
i
ближенные значения искомой функции в узлах x
AjKijφj= fi,i=1, 2, .., n. (4.15)
j=1
. По ним с помощью интерполяции
i
можно построить приближенное решение интегрального уравнения (4.13) на всем
отрезке [a, b].
Пусть λ =1, а сетка x
, ..., xn−равномерная с шагом h. Используем квадратур-
i,x2
ную формулу трапеций. Тогда система линейных алгебраических уравнений (4.15)
примет следующий вид:
n
− h
φ
i
ωjKijφj= fi,i=1, 2, .., n, (4.16)
j=1
где ω
= ωn=1/2, ωj=1при j =2, 3, ..., n − 1.
1
Напишем на языке Matlab функцию, реализующую вычисления по формуле (4.16).
39

1 close
2 clear all ;
3 clc ;
4 close all
5 format long e ;
6 h= . 1 ;
7 b=p i ;
8 a=−1
9 x=a:h:b;
10 lambda = 3/(10
11 K =@(x, s )(1/(0 .64.
12 f = @(x)(25 −16
13 y_exact=@(x)(9+128/17
14 y_approx=Fred_II_Rect (K, f , a ,b , h) ;
15 y=y_exact(x );
16 figure
17 plot (x,y,'o' ,x , y_approx , ' r' );
18 xlabel ('x' );
19 ylabel ('\phi' );
20
21 function [ y] = Fred_II_Rect(K, f , a, b ,h)
22 x = a:h:b;
23 n=size(x,2);
24 wt=1/2;
25 wj=1;
26 A = zeros(n);
27 for i=1:n
28 A( i ,1)= − h
29 for j=2:n−1
30 A( i , j )= −h
31 end ;
32 A( i , n)= −h
33 A(i , i)= A( i , i )+ 1;
34 end ;
35 B = zeros (n,1);
36 for j=1:n
37 B( j ,1) = f (x( j ) ) ;
38 end ;
39 y=A\B;
40 end
41
42 function [] = plots(a,b,h, y_exact ,y_approx)
43 x = a:h:b;
44 n=size(x,2);
45 for i=1:n;
46 y( i)=y_exact(x( i ) ) ;
47 end
48 A(: ,1)= x;
49 A(: ,2)= y;
50 A(: ,3) = y_approx ;
51 dlmwrite('C: matrica.txt' , ...
52 A, ' delimiter' ,'', 'newline' , 'pc' , ...
53 ' precision' , 10);
54 plot (x , y_approx , ' or' );
55 hold on;
56 plot (x,y,'b' );
*
pi ;
pi );
*
(sin (x)) . ^2);
*
K(x(i),x(1));
*wt*
K(x ( i ) , x( j ) ) ;
*wj*
K(x ( i ) , x(n ) ) ;
*wt*
(cos((x+s )/2)) .^2−1)*lambda );
*
cos(2*x));
*
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
