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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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
⎡
hL
=
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]