Metoda Gaussa - Nystroma

Równania różniczkowe i całkowe. Równania różnicowe. Transformata Laplace'a i Fouriera oraz ich zastosowanie w równaniach różniczkowych.
janusz47
Użytkownik
Użytkownik
Posty: 7911
Rejestracja: 18 mar 2009, o 16:24
Płeć: Mężczyzna
Podziękował: 30 razy
Pomógł: 1670 razy

Metoda Gaussa - Nystroma

Post autor: janusz47 »

Metoda Gaussa - Nystroma

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 
Przykład

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 
  
ODPOWIEDZ