Zastosujemy \(\displaystyle{ N = 4, 5 }\) punktową kwadraturę Gaussa-Nystroma do numerycznego rozwiązania równania całkowego Fredholma:
\(\displaystyle{ f(x) = u(x) + \int_{a}^{b} k(x,t), u(t) dt.}\)
Przedział całkowania \(\displaystyle{ [a,b] }\) przekształcamy na przedział \(\displaystyle{ [-1, 1] }\) za pomocą transformacji liniowej:
\(\displaystyle{ t = a + \frac{b-a}{2}(z+1), \ \ -1 \leq z \leq 1. }\)
i całkę \(\displaystyle{ \int_{-1}^{1} k(x,t)u(t)dt }\) przybliżamy kwadraturą \(\displaystyle{ \sum_{j=1}^{N}w_{j} k(x,t_{j}) u(t_{j}), }\)
\(\displaystyle{ f(x_{i}) = u(x_{i}) + \sum_{j=1}^{N}w_{j}\cdot k(x_{i},t_{j}) u(t_{j}),\ \ i,j = 1,2,3,4,5. }\)
Podstawiamy:
\(\displaystyle{ f(t_{i}) = f_{i}, \ \ k(x_{i},t_{j})=k_{ij}, \ \ u(t_{i})=u_{i} }\) i \(\displaystyle{ K_{i,j}= k_{ij}w_{j} }\) , otrzymując algebraiczny układ równań liniowych \(\displaystyle{ 4\times 4 }\) lub \(\displaystyle{ 5\times 5 }\) , który rozwiązujemy
metodą macierzy odwrotnej:
\(\displaystyle{ (\vec{I} +\vec{K})\cdot \vec{u} = \vec{f}.}\)
Przykład
Rozwiążemy równanie całkowe Fredholma
\(\displaystyle{ f(x) = u(x) - \int_{0}^{1} x^2 t u(t) dt. }\)
cztero i pięciopunktową Metodą Gaussa-Nystroma.
Program MATLAB
Kod: Zaznacz cały
function Fredholm(k,f,a,b,n)
% Rozwiązanie równania całkowego Fredholma Metodą Gaussa-Nystroma
if (n==4)
z(1)=-sqrt(1/7*(3-4*sqrt(0.3)));
z(2)=-sqrt(1/7*(3+4*sqrt(0.3)));
z(3)=-z(1);
z(4)=-z(2);
% Wagi
w(1)=1/2+1/12*sqrt(10/3);
w(2)=1/2-1/12*sqrt(10/3);
w(3)=w(1); w(4)=w(2);
end
if (n==5)
z(1)=-sqrt(1/9*(5-2*sqrt(10/7)));
z(2)=-sqrt(1/9*(5+2*sqrt(10/7)));
z(3)=0;
z(4)=-z(1);
z(5)=-z(2);
w(1)=0.3*((-0.7+5*sqrt(0.7))/(-2+5*sqrt(0.7)));
w(2)=0.3*((0.7+5*sqrt(0.7))/(2+5*sqrt(0.7)));
w(3)=128/225;
w(4)=w(1); w(5)=w(2);
end
I=eye(n);
fprintf('\n')
disp('Metoda Gaussa-Nystroma rozwiązania równania Fredholma drugiego rzędu')
fprintf('\n')
for i=1:n
x=((b-a)*z(i)+a+b)/2;
y(i)=x;
F(i)=feval(f,x);
for j=1:n
% Macierz K
t=((b-a)*z(j)+a+b)/2;
K(i,j)=(b-a)/2*feval(k,x,t)*w(j);
end
end
% Macierz I+K
disp(' Macierz M = I+K jest postaci: ')
M=I+K
disp(' Wektor f ma współrzędne:')
f=F'
u=inv(M)*F';
disp('______________________________________')
disp(' xi ui ')
disp('_______________________________________')
for i=1:n
fprintf('%8.4f %12.6f \n',y(i),u(i))
end
Kod: Zaznacz cały
function k=k1(x,t)
k=t;
function f=f1(x)
f=x^2;
>> Fredholm('k1','f1',0,1,4)
Metoda Gaussa-Nystroma rozwiązania równania Fredholma drugiego rzędu
Macierz M = I+K jest postaci:
M =
1.1076 0.0121 0.2185 0.1619
0.1076 1.0121 0.2185 0.1619
0.1076 0.0121 1.2185 0.1619
0.1076 0.0121 0.2185 1.1619
Wektor f ma współrzędne:
f =
0.1089
0.0048
0.4489
0.8660
______________________________________
xi ui
_______________________________________
0.3300 -0.057760
0.0694 -0.161846
0.6700 0.282221
0.9306 0.699290
>> Fredholm('k1','f1',0,1,5)
Metoda Gaussa-Nystroma rozwiązania równania Fredholma drugiego rzędu
Macierz M = I+K jest postaci:
M =
1.0552 0.0056 0.1422 0.1841 0.1129
0.0552 1.0056 0.1422 0.1841 0.1129
0.0552 0.0056 1.1422 0.1841 0.1129
0.0552 0.0056 0.1422 1.1841 0.1129
0.0552 0.0056 0.1422 0.1841 1.1129
Wektor f ma współrzędne:
f =
0.0533
0.0022
0.2500
0.5917
0.9084
______________________________________
xi ui
_______________________________________
0.2308 -0.113414
0.0469 -0.164466
0.5000 0.083333
0.7692 0.425055
0.9531 0.741714