Professional Documents
Culture Documents
Case 1 : n = 10
Error value : 0.1774
Graph
Case 2 : n = 20
Error value : 0.0906
Graph :
Matlab Code :
clear all;
% number of elements
n=20; delx=1/n;
for i = 1:1:n+1
domain(i) = delx*(i-1);
end
for j = 1:1:(n-1)
f(j)=a*(((j)*delx)^2)+ b*((j)*delx)+c;
end
for i = 1:1:(n-1)
a(i,i)= (-2)/((delx^2)) + r;
end
for p = 1:1:(n-1)
if (p+1<n)
a(p,p+1) = 1/(delx)^2;
end
if (p-1>0)
a(p, p-1) = 1/(delx)^2;
end
end
X= inv(a) * f';
% analytical solution
n=20;
delx=1/n;
a=42;
b=-25;
c=-112;
r=-14;
for i = 1:1:n+1
ufun(i) = feval(SDE_U_function,a,b,c,r,((i-1)*delx));
end
%error calculation
error = 0;
for i = 1:1:n+1
error = error + (ufun(i) - ufdm(i));
end
error = abs(error);
disp(error)
%plotting graphs
figure (1)
plot(domain, ufun, 'k', 'linewidth', 2)
hold on
plot(domain, ufdm, 'r', 'linewidth', 2)
xlabel('x') ;
ylabel('u(x)');
title('Analytical and FDM solution of D2u + ru = a*x^2+b*x+c');
legend('Analytical Value','FDM Value','location', 'northeast')