Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Обратные и некорректные задачи биофизики. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Проиллюстрируем теоремы Фредгольма на примере интегрального уравнения с вырожденным ядром.
Пример. Исследовать решения интегрального уравнения
π
φ(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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]