Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Обратные и некорректные задачи биофизики. Учебное пособие
.pdf
55 if ( xi==0)&(eta==0)
56 y=1;
57 else
58 y=(exp( xi+eta)−1)/( xi+eta ) ;
59 end
60
61 function y= f ( x i )
62 global Nh
63 y=0. 5
64 for i=2:(N−1)
65 y=y+h
66 end
67
68 function y= f i ( x , x i )
69 y=e xp ( x
10
10
(fi(0,xi)+fi(1,xi));
*h*
fi(h*(i−1), xi ) ;
*
xi )*((exp(x+1)−1)/(x+1));
*
0
-1
error=|| - ||
-2
10
-3
10
10
-4
10
-3
Рис. 10.3. Ошибка численного решения уравнения Фредгольма I рода при различных
−2
значениях h =[2.5 · 10
, 1.6 · 10−2, 1.25 · 10−2, 8.33 · 10−3, 7.14 · 10−3]
На рис. 10.3 приведены графики зависимости ошибки численного решения в зависимости от значений регуляризирующего параметра, полученные на различных
сетках, т. е. при разных шагах h по переменным x и η. На всех шести графиках отмечается наличие оптимального значения параметра регуляризации. На рис. 10.4 построен профиль зависимости оптимального значения параметра регуляризации (α
opt
от шага сетки h. Видно, что оптимальное значение параметра регуляризации стремится к нулю по мере стремления шага сетки к нулю.
Следует отметить, что метод регуляризации при n =1обеспечивает сильную
регуляризацию.
)
81

-4
10
10
9
8
7
6
opt
5
4
3
2
1
0.005 0.01 0.015 0.02 0.025
opt
h
Рис. 10.4. Зависимость α
opt
от h
Более подробно рассмотрим случай n =1на примере решения задачи
1
K(x, y)φ(y)dy =Φ(x)
0
с ядром и правой частью вида:
x
+1)
K(x, y)=e
xy
,f(x)=−
x(e
x2+ π
.
2
Задаче соответствует аналитическое решение φ(y)=cos(πy). Согласно
b
n
α
(−1)
k=0
Q(y, η)=
k
d
k
(pk(y)φk(y)) +
k
dy
d
K(x, y)K(x, η)dx, Φ(y)=
Q(y, η)φ(η)dη =Φ(y),
a
d
K(x, y)f (x)dx
имеем (p
(y) ≡ 1,p1(y) ≡ 1):
0
αφ(y) − αφ
c
(y)+
c
1
Q(y, η)φ(η)dη =Φ(y),φ(0) = φ(1) = 0. (10.7)
0
82

где функции Q(y, η), Φ(y) имеют следующий вид:
1
exy·
0
e
x+1
2
+ π
+1
2
dx.
Q(y, η)=
x+η
e
x + η
−
1
, Φ(x)=−
x + η
Для численного решения уравнения введем равномерные сетки по переменным x, η:
1
= h(i − 1),ηj= h(j − 1),h =
x
i
N − 1
,i,j =1.2..., n
Интеграл аппроксимируем по формуле трапеций, тогда получим разностную схему:
N−1
−αy
+ α(2 + h2)yi− αy
i−1
i+1
+
1
3
Q
h
i,1y1
2
+ h
3
j=2
Q
i,jyj
+
1
2
Q
h
i,NyN
2
= h2Φi,
где
≈ φ(yi),Q
y
i
= Q(xi,ηj, Φi=Φ(xi),i,j=1, 2, .., n.
i,j
Недостающие два уравнения находятся из граничных условий, которые аппроксимируем со вторым порядком по h,т.е.
(0) = φ(h) − φ(0) −
φ
1
2
φ(0) ≈ 0 (10.8)
h
2
(1) = φ(h) − φ(1 − h) −
φ
1
2
φ(1) ≈ 0 (10.9)
h
2
Находя соответствующие φ
из уравнения (10.7) и подставляя в (10.8)−(10.9), полу-
чим граничные условия в следующем виде:
N−1
+
1
3
h
2
1
2
Q
i,jyj
j=2
N−1
3
h
Q
j=2
N,jyj
+
+
1
3
Q
h
1,NyN
4
1
3
Q
h
N,NyN
4
=
1
2
=
2
Φi,
h
1
2
Φi,
h
2
α(1 +
α(1 +
1
2
1
2
)yN− αy
h
2
2
)y1− αy2+
h
N−1
+
1
3
Q
h
4
1
3
h
4
Q
1,1y1
N,1y1
+
В листинге приведен код программы решения некорректной задачи методом регуляризации, т. е. путем сведения исходной задачи к решению корректного интегродифференциального уравнения. Как и в предыдущих двух программах, выбор параметра регуляризации а определяется его оптимальным значением α
, на кото-
opt
ром реализуется минимум ошибки численного решения (при условии, конечно, что
решение известно). В программе исследуется зависимость оптимального значения
параметра регуляризации α
от шага сетки h.
opt
1 function fredgolm_3
2 warning(' off' ,' all' );
3 clear all
4 close all
5 clc
83

6 global Nh
7 N=21;
8 for t=1:5
9 N=N+30;
10 h=1. 0 /(N−1);
11 h2=h^2;
12 h3=h^3;
13 xi=0:h:1;
14 eta=0:h :1;
15 ya=cos(pi
16 alph_l=7e−6; alph_r=2e − 5; alph_h=(alph_r−alph_l)/20;
17 alpha=alph_l :alph_h :alph_r ;
18 for s=1:length(alpha )
19 A(1 ,1 )=0 . 2 5
20 A(1 ,N)=0 . 25
21 for j=2:(N−1)
22 A(1 , j )=0 . 5
23 end
24 A(1,1)=A(1 ,1)+ alpha(s)
25 A(1 ,2 )=A(1 ,2) − alpha ( s );
26 b(1)=0.5
27 for i=2:(N−1)
28 A( i ,1)=0 .5
29 A( i ,N)=0 . 5
30 for j=2:(N−1)
31 A( i , j )=h3
32 end
33 A(i , i )=A( i , i)+alpha( s)
34 A( i , i −1)=A( i , i −1)−alpha(s );
35 A(i,i+1)=A(i,i+1)−alpha(s );
36 b( i)=h2
37 end
38 A(N,1)=0 .25
39 A(N,N)=0.2 5
40 for j=2:(N−1)
41 A(N, j )=0 . 5
42 end
43 A(N,N)=A(N,N)+alpha(s)
44 A(N,N−1)=A(N,N−1)− alpha ( s ) ;
45 b(N)=0.5
46 y=A\b ' ;
47 for i=1:N
48 z(i)=abs(y(i)−ya ( i ) );
49 end
50 error (s)=max(z);
51 end
52 ermin=min( error );
53 for s=1:length(alpha )
54 if ermin==error (s)
55 alph_opt(t)=alpha ( s );
56 end
57 end
58 step(t)=h;
59 figure (1);
60 semilogx(alpha , error ,' LineWidth' ,0 .75
61 title('Ошибкачисленного решенияуравненияФредгольма ...
xi );
*
Q(xi(1) ,eta (1));
*h3*
Q(xi (1) ,eta(N));
*h3*
Q(xi (1) ,eta( j ));
*h3*
f(xi (1));
*h2*
Q(xi( i ),eta (1));
*h3*
Q(xi(i),eta(N));
*h3*
Q( xi( i ) ,eta ( j ));
*
f(xi(i));
*
Q(xi(N) , eta(1));
*h3*
Q( xi (N) , e t a (N) ) ;
*h3*
Q( xi(N) , eta( j ) );
*h3*
f(xi(N));
*h2*
(1+0 . 5*h2 );
*
(2+h2 );
*
(1+0 . 5*h2 );
*
*
t);
84

62 I рода приразличныхзначениях h' )
63 xlabel (' \alpha' )
64 ylabel (' error=||\phi−\phi_{\ alpha } || ')
65 hold on
66 end
67 figure (2);
68 plot (step , alph_opt );
69 ylabel (' \alpha_{opt}' )
70 xlabel ('h' )
71 title('Зависимость \ alpha_{optот }h' )
72
73 figure (3);
74 plot (xi ,ya );
75 hold on
76 plot (xi ,y,' LineWidth' ,3 .5/s );
77 ylabel ('\phi_\alpha' )
78 xlabel ('y' )
79 hold on
80
81 function y=Q(xi , eta)
82 if ( xi==0)&(eta==0)
83 y=1;
84 else
85 y=(exp( xi+eta)−1)/( xi+eta ) ;
86 end
87
88 function y= f ( x i )
89 global Nh
90 y=0. 5
91 for i=2:(N−1)
92 y=y+h
93 end
94
95 function y= f i ( x , x i )
96 y=−exp (x
(fi(0,xi)+fi(1,xi));
*h*
fi(h*(i−1), xi ) ;
*
xi )*((x*(exp(x)+1))/(x^2+pi^2));
*
На рис. 11.1 показана зависимость оптимального значения параметра регуляризации от шага сетки. Рис. 11.1 демонстрирует тенденцию стремления α
h → 0, что иллюстрирует сходимость регуляризированного решения φ
к нулю при
opt
к анали-
alpha
тическому решению исходной задачи. На рис. 10.6 приведены графики численного
φ
и исходного аналитического решения при оптимальном значении параметра регу-
α
ляризации α
=8.95e − 06.
opt
85

-6
10
11
10.5
10
opt
9.5
9
8.5
0.005 0.01 0.015 0.02
opt
h
Рис. 10.5. Ошибка численного решения некорректной задачи методом регуляризации
1
0.5
0
-0.5
-1
-1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
y
Рис. 10.6. Аналитическое решение - представлено в виде синей линии,а численное
решение некорректной задачи методом регуляризации представлено в виде красной
линии
86

Глава 11
Регуляризация по методу обобщенной
невязки
Отметим, что необходимой составляющей любого процесса регуляризации является процедура выбора параметра регуляризации. Рассмотрим кратко вопрос о выборе параметра регуляризации. В данной постановки задачи параметр регуляризации
выбирается по обобщенному принципу невязки.
Как и прежде будем предпологать, что вместо f(x) нам известно приближенное
значение f
(x), такое что ||f (x)−fδ(x)||
δ
ражений известно, что φ(y)-кусочно-гладкая функция, тогда выберем Y = W
Пусть вместо K(x, y) известна функция K
h, тогда ||A −A
(x, y).
K
h
||
h
W
2
≤ h,гдеAh-интегральный оператор, соответствующий ядру
−→ L
2
1
Запишем условие минимизации сглаживающего функционала
≤ δ. Предположим, что из априорных сооб-
L
2
(x, y), при этом ||K(x, y)−Kh(x, y)||
h
1
[a, b].
p
L2(G)
≤
α
M
[f(x),φ(y)] = ||Ahφ − fδ||
⎡
d
c
a
⎣
b
φ2(y)dy +
φ − fδ||2=
||A
h
||φ||
2
=
b
Kh(x, y)φ(y)dy − fδ(x)
a
2
+ α||φ||
L
2
b
(φ(y))2dy,
a
2
→ min, (11.1)
1
W
2
⎤
2
⎦
dx,
тогда (11.1) запишется в следующем виде
α
M
[f(x),φ(y)] =
+α
a
⎡
d
⎣
c
b
φ2(y)dy +
b
Kh(x, y)φ(y)dy − fδ(x)
a
b
(φ(y))2dy→ min . (11.2)
a
⎤
2
⎦
dx+
При этом, полученное выражение аналогично (10.3).
Ключевым моментом в методе регуляризации Тихонова является выбор положительного параметра регуляризации α. При проведении модельных расчетов выбор
87

этого параметра весьма важен. Для того, чтобы не сильно "испортить"задачу, его
необходимо выбирать весьма малым (10
−3
− 10−9). Конкретный выбор базируется на
важнейшей априорной информации в некорректной задаче-величине погрешности δ.
Отметим, что параметр α(δ) может быть выбран как корень уравнения (критерий
невязки)
A
− fδ = δ
hφδ
а также выбор параметра регуляризации может быть осуществлен в соответствии с
принципом обобщенной невязки, т.е. параметр α находится из уравнения
ρ(α)=A
ξ =(δ, h)−вектор погрешности, ξ(f
α
φ
− fδ−(δ + hφ
h
ξ
δ,Ah
)−мера несовместности исходного уравнения
с приближенными данными. Если выполняется f
α
)2− ξ2(fδ,Ah)=0, (11.3)
ξ
2≥ δ2+ ξ2(fδ,Ah), то уравнение
δ
(11.3) имеет один положительный корень, который вбирается в качестве параметра
регуляризации в методе Тихонова. В упрощенном виде принцип обощенной невязки
формулируется в предположении, что ξ(f
δ,Ah
)=0.
Для вычисления корня уравнения (11.3) можно использовать модификацию метода хорд. Пусть задан параметр точности расчета ε>0. Зададим начальное значение
параметра α
= α0/2 и вычислим соответствующие значения функций ρ(α0), ρ(α1). Далее, до
α
1
тех пор пока выполняется условие |α
и выберем следующее значение α1(α1<α0, |α1− α0|≥ε), полагая
0
n−2
− α
|≥ε, строим итерационную последо-
n−1
вательность, используя рекуррентную формулу
ρ(α
n−2
1
n−2
)−ρ(α
)
n−1
n−1
n−2
!
)
= αn,
= αn,
n−1
,
α
если ρ(α
если ρ(α
если ρ(α
n−2
)ρ(α
n−2
n−2
) > 0,тоα
n−1
)ρ(α
n−1
)ρ(α
n−1
=
α
n
n−2
1 − 1 −
= α
n−2
) < 0, то если ρ(α
) < 0, то если ρ(α
α
α
n−1
!
·
n−2
n−1
, α
n−1
)ρ(αn) < 0,α
n−2
)ρ(αn) < 0,α
n−1
ρ(α
= αn;
В качестве пареметра регуляризации выбирают α = α
Пример. Используя представленный выше регуляризующий алгоритм для уравнения Фредгольма I рода с гладким ядром, требуется найти приближенное решение,
удовлетворяющее интегральнму уравнению
b
Aφ(y) ≡
K(x, y)φ(y)=f(x),x ∈ [c, d],y ∈ [a, b],K(x, y) ∈ C([c, d] × [a, b]). (11.4)
a
Выберем следующие данные для демонстрации решения:
xy
, φ = y,a =0,b=1,c =1,d =2,
где
φ−точное решение.
K(x, y)=e
Вычислим функцию f (x) в правой части уравнения (11.4):
1
1
f(x)=
y · exydy =
0
[1 + (x − 1)ex].
2
x
88

Зададим точность вычисления параметра регуляризации ε =1· 10−5, точность задания правой части δ =5· 10
−3
и погрешность аппроксимации оператора h =5· 10−5.
Выберем всопмогательный параметр C =10. Расчитаем α =0.19782 по формуле
A
2Cδ
α =
h
,
fδ−Cδ
а затем вычислим оценку верхней границы параметра регуляризации
формуле
α = Ah·"h +
2
h
+(α + h2)(C2− 1)
#
,
α=0.10754 по
C2− 1
где C− константа, выбранная из условия
f
δ
>C>1.
δ
Выражение для нормы оператора в L
⎡
hL
=
2
b − a
A
1
⎣
Зададим стартовый параметр α
⎡
d
b
⎣
K(x, y)dy
c
a
0
[c, d] имеет следующий вид:
2
⎤
⎤
1/2
⎦
⎦
dx
, fδ
⎡
d
⎣
=
L
2
f2(x)dx
c
⎤
1/2
⎦
= α для поиска корня уравнения ρ(α)=0.
.
В листинге приведен код программы решения некорректной задачи методом регуляризации, с выбором параметра регуляризации методом обобщенной невязки.
1 function Zadanie
2 close all
3 clear all
4 clc
5 global ACOR SINGULAR ZSOLVE Kmat u v a l h s h t N val M v a l e t a
6 Aval = 0; Bval = 1;
7 Cval = 1; Dval = 2;
8 Err_delta = 5e−4;
9 Err_h = 5e −5;
10 C_con = 10 ;
11 alpha0 = 3e −4;
12 Err_alph = 5e−6;
13 Imax = 50;
14 Auto = 1;
15 Nval = 20;
16 Mval = 60;
17 taskini ;
18 uval = Udelta ;
19 ZSOLVE = 0 ;
20 SINGULAR = 0 ;
21 ACOR = 1 e −12;
22 [ za rho alpha cnt C1]=alphaFinder (alpha0 ,C_con,Err_alph ,Imax, Auto);
23 Zlim = [0 1 .05 ] ;
24 Ulim = [1 2 .2 ] ;
25 datapoz = [0 .05 0 .95 ] ;
89

26 Ut = integral(Tval ,Aval ,Bval );
27 printout ;
28 Nval = 20;
29 Mval = Nval ;
30 Cval = Aval;
31 Dval = Bval ;
32 taskini ;
33 uval = Udelta − Udelta (1);
34 ZSOLVE = 0 ;
35 SINGULAR = 0 ;
36 ACOR = 1 e −12;
37 Kmat = kmat ( @yadr o1 , T v a l , S v al ) ;
38 alph0 = 1e−6;
39 Auto = 1;
40 Err_alph = 1e−7;
41 [ za rho alpha1 cnt C1]=alphaFinder (alph0 ,C_con, Err_alph ,Imax , Auto);
42 end
1 function [ za rho alpha cnt C1 alp_t alp_b]= ...
2 AlphaFinder(a0 ,C0, eps ,Imax , Auto)
3 [ C1 alp_t alp_b] = AlphaUpper(C0);
4 if Auto ~= 0 ,
5 alpha1 = a0/2;
6 mu0 = 1/ a0 ;
7 mu1 = 1/ a l ph a 1 ;
8 i=2;
9 while ( ( ab s ( mu0 − mu1) >= ep s)&&( i <= Imax ) ) ,
10 rh o 0 = Rfun (1 / mu0 ) ;
11 rh o 1 = Rfun (1 / mu1 ) ;
12 muN = mu0 − ( mu0 − mu1)
13 rhoN = Rfun(1/muN) ;
14 if (rho0
15 mu0 = mu1 ;
16 mu1 = muN ;
17 else
18 if (rho0
19 mu1 = muN ;
20 end
21 if (rho1
22 mu0 = muN ;
23 end
24 end
25 i=i+1;
26 end
27 cnt = i − 1;
28 alpha = 1/mu1;
29 else
30 alpha = a0;
31 cnt = 0;
32 end za = Mfun( alpha );
33 rho = Rfun( alpha ) ; return ;
34 end
35
36 function [ C1 alpha_t alpha_b ] = AlphaUpper ( C_const)
37 global Kmat uv a l h s ht N v a l
rho1) > 0 ,
*
rhoN) < 0 ,
*
rhoN) < 0 ,
*
rho0/( rho0 − rho1 ) ;
*
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
