Metoda Heuna oparta jest na kwadraturze trapezów. Odległość mięzy węzłami \(\displaystyle{ h }\) musi spełniać warunek:
\(\displaystyle{ \max_{a\leq x \leq b\\ a\leq t\leq b}(|k(x,t)|h ) <1 }\)
Rozwiązując równanie całkowe Volterry typu
\(\displaystyle{ u(x) = f(x) + \int_{a}^{x} k(x,t)u(t) dt ,}\)
w pierwszym kroku obliczamy wartość początkową:
\(\displaystyle{ u_{0} = u(x_{0}) = f(x_{0}). }\)
Następnie obliczamy wartość:
\(\displaystyle{ u(x_{1}) = f(x_{1}) + \int_{a}^{x_{1}} k(x_{1},t)u(t) dt, }\)
stosując kwadraturę trapezów
\(\displaystyle{ u_{1} = f(x_{1}) + \frac{h}{2}\left[ k(x_{1},t_{0})u_{0} + k(x_{1},t_{1}\right].}\)
Otrzymujemy równość
\(\displaystyle{ \left[1 - \frac{k(x_{1},t_{1})h}{2}\right] u_{1} = f(x_{1}) + \frac{h}{2}k(x_{1},t_{0}) u_{0}. }\)
................................................................
Ogólnie aproksymując \(\displaystyle{ u_{n+1}, }\) mamy równanie:
\(\displaystyle{ \left[1 - \frac{k(x_{n+1},t_{n+1})h}{2}\right] u_{n+1} = f(x_{n+1}) + \frac{h}{2}k(x_{n+1},t_{0}) u_{0} + \sum_{j=1}^{n} k(x_{n+1},t_{j})u_{j}h }\)
Przykład
Rozwiążemy równanie
\(\displaystyle{ u(x) = x +\int_{0}^{x} x t u(t)dt, }\)
przyjmując
\(\displaystyle{ 0 \leq k(x,t) \leq 1, }\) dla \(\displaystyle{ h=0,2 }\).
\(\displaystyle{ k(x,t) = xt, \ \ f(x) = x.}\)
Program MATLAB
Kod: Zaznacz cały
function Heun_Volterra(k,f,a,b,n)
%Rozwiązanie równania Volterry drugiego rzędu
% metodą Heuna, k(x,t)- dane jądro, f=f(x)- dana funkcja.
fprintf('\n')
disp(' Rozwiązanie równania Volterry metodą Heuna')
disp('______________________________')
disp(' xi ui ')
disp('______________________________')
h=(b-a)/n;
u(1)=feval(f,a);
for i=2:n+1
% Współrzędne wektora f
x=a+(i-1)*h;
F=feval(f,x);
S=0;
for j=1:i-1
t=a+(j-1)*h;
if j==1
S=S+u(j)*h/2*feval(k,x,t);
else
S=S+u(j)*h*feval(k,x,t);
end
end
D=1-h/2*feval(k,x,x);
u(i)=(F+S)/D;
end
y=[a:h:b]';
for i=1:n+1
fprintf(' %9.4f %12.6f \n',y(i),u(i))
end
Kod: Zaznacz cały
function k=k1(x,t)
k= x*t;
function f=f1(x)
f=x;
Rozwiązanie równania Volterry metodą Heuna
______________________________
xi ui
______________________________
0.0000 0.000000
0.2000 0.200803
0.4000 0.409769
0.6000 0.647809
0.8000 0.956026
1.0000 1.412794
1.2000 2.178608
1.4000 3.616562
1.6000 6.644252
1.8000 13.888059
2.0000 34.051464