Задание.
Решить краевую задачу
(1)
методом конечных разностей.
Варианты задания.
; ; ; ,
где – номер группы; – номер студента по журналу.
Принять для расчета на ЭВМ число точек , для ручного счета – .
Предварительные построения.
Решение задачи состоит в составлении системы конечно-разностных уравнений при разбиении отрезка на частей с постоянным шагом и нумерацией точек разбиения : . Вводим обозначения: – координата -й точки разбиения, , . Тогда, заменяя в задаче (Л.6.1) для каждой точки разбиения дифференциальное уравнение соответствующим разностным, получим систему линейных алгебраических уравнений относительно неизвестных , :
(2)
Умножая уравнения для внутренних точек на и приводя подобные члены, представим систему (2) в виде
или в матричном виде:
(3)
format short g
g=input('ввести номер группы g=');
s=input('ввести номер студента по списку s=');
n=input('ввести число точек n=');
c=(s+g)/25; dl=1; y0=0; yl=0;
h=dl/(n-1); xi=(0:h:dl)'; x=xi(2:n-1);
p=-s./(dl^2+4*x.*(dl-x));
f=-c*(2-p.*x.*(dl-x));
t=ones(n-2,1);
A=diag([t;0],-1)+diag([1;h^2*p-2;1])+diag([0;t],1);
|
|
disp('матрица системы разностных уравнений'),disp(A)
b=[y0;h^2*f;yl];
disp('вектор правой части системы разностных уравнений'),disp(b)
y=A\b;
disp('решение:'),disp(y)
plot(xi,y),grid on
ввести номер группы g=3
ввести номер студента по списку s=12
ввести число точек n=9
матрица системы разностных уравнений
1 0 0 0 0 0 0 0 0
1 -2.1304 1 0 0 0 0 0 0
0 1 -2.1071 1 0 0 0 0 0
0 0 1 -2.0968 1 0 0 0 0
0 0 0 1 -2.0938 1 0 0 0
0 0 0 0 1 -2.0968 1 0 0
0 0 0 0 0 1 -2.1071 1 0
0 0 0 0 0 0 1 -2.1304 1
0 0 0 0 0 0 0 0 1
вектор правой части системы разностных уравнений
-0.02731
-0.030804
-0.032359
-0.032813
-0.032359
-0.030804
-0.02731
решение:
0.065625
0.1125
0.14063
0.15
0.14063
0.1125
0.065625
>>