ЗАДАНИЕ №2 Лабораторный практикум
(Выполняется в системе MATLAB)
Задание №2. Решить одномерное стационарное уравнение теплопроводности методом Галеркина
(1)
При граничных условиях:
(2)
Выберем базис вида
. (3)
Решение будем искать в виде
. (4)
Здесь выбирается такими, чтобы удовлетворяло заданным граничным условиям (2).
Составим проекционные уравнения:
Используем формулу интегрирования по частям:
.
После очевидных преобразований имеем
. (5)
Далее, поступаем в зависимости от граничных условий.
1. Задача Дирихле:
Первый член в (5) равен нулю , и система (5) примет вид:
Или для выбранных функций:
2. Задача со свободным левым концом:
В этом случае
Первый член (5) преобразуем следующим образом:
После чего уравнение (5) с учетом граничного условия на левом конце перепишем в виде:
Или для выбранных функций:
3. Задача со свободным правым концом:
В этом случае
Первый член (5) преобразуем следующим образом:
После чего уравнение (5) с учетом граничного условия на левом конце перепишем в виде:
Или для выбранных функций:
Полученная система линейных алгебраических уравнений имеет симметричную, положительно определенную матрицу, ее коэффициенты и решение находятся стандартными методами из MATLAB.
Требуется составить и написать программу решения своего варианта.
Вывести графики решений для нескольких значений N=3, 5, 10.
Пример прграммы:
ЗАДАЧА ДИРИХЛЕ
function V2_16_1(be0,be1,N,M);
%решение по методу Галеркина
%g(x) и f(x) M-file function; q0=q1=0; al0=al1=1;
for i=1:N
F1 = @(x)f(x).*sin(i*pi*x)-g(x).*(be1-be0).*cos(i*pi*x);
d(i) = quad(F1,0,1);
for k=1:N
F2 = @(x)g(x).*cos(i*pi*x).*cos(k*pi*x)*i*k*pi^2;
G(i,k)=quad(F2,0,1);
end;
end
d
G
a=d/G;
a
for i=1:M+1
xt(i)=(i-1)/M;
y(i)=be0+(be1-be0)*xt(i);
for k=1:N
y(i)=y(i)+a(k)*sin(k*pi*xt(i));
end;
end;
hold off
plot(xt,y);
xt
y
return
ЗАДАЧА СО СВОБОДНЫМ ЛЕВЫМ КОНЦОМ
function V2_16_2(al0,be0,be1,N,M);
%решение по методу Галеркина свободный левый конец
%g(x) f(x) ut2(x,al,be0,be1) M-file function; q0=1 q1=0; al1=1.
for i=1:N
F1 = @(x)f(x).*sin(0.5*i*pi*(1-x))-g(x).*be1.*0.5*i*pi*cos(0.5*i*pi*(1-x));
d(i) = quad(F1,0,1)+g(0)*be0*sin(0.5*i*pi);
for k=1:N
F2 = @(x)g(x).*cos(0.5*i*pi*(1-x)).*cos(0.5*k*pi*(1-x))*i*k*pi^2*0.25;
G(i,k)=al0*g(0)*sin(0.5*k*pi)*sin(0.5*i*pi)-quad(F2,0,1);
end;
end
d
G
a=d/G;
a
for i=1:M+1
xt(i)=(i-1)/M;
xi=xt(i);
yt(i)=ut2(xi,al0,be0,be1);
y(i)=be1*xi;
for k=1:N
y(i)=y(i)+a(k)*sin(0.5*k*pi*(1-xi));
end;
end;
hold off
plot(xt,y,'b');
hold on
plot(xt,yt,'r--');
xt
y
return
ЗАДАЧА СО СВОБОДНЫМ ПРАВЫМ КОНЦОМ
function V2_16_3(al1,be0,be1,N,M);
%решение по методу Галеркина свободный правый конец
%g(x) f(x) ut3(x,al,be0,be1) M-file functions; q0=0 q1=1; al0=1.
for i=1:N
F1 = @(x)f(x).*sin(0.5*i*pi*x)-g(x).*be0.*0.5*i*pi*cos(0.5*i*pi*x);
d(i) = quad(F1,0,1)-g(1).*be1*sin(0.5*i*pi);
for k=1:N
F2 = @(x)g(x).*cos(0.5*i*pi*x).*cos(0.5*k*pi*x)*i*k*pi^2*0.25;
G(i,k)=-al1*g(1).*sin(0.5*k*pi)*sin(0.5*i*pi)-quad(F2,0,1);
end;
end
d
G
a=d/G;
a
for i=1:M+1
xt(i)=(i-1)/M;
xi=xt(i);
yt(i)=ut3(xi,al1,be0,be1);
y(i)=be0*(1-xi);
for k=1:N
y(i)=y(i)+a(k)*sin(0.5*k*pi*xi);
end;
end;
hold off
plot(xt,y,'b');
hold on
plot(xt,yt,'r--');
xt
y
return
Пример m-file functions для f(x), g(x), и соответствующего точного решения ut3(x)
function z=f(x);
z=1; %1-x.^2;
return
function z=g(x);
z=1;%1+x.^2;
return
function z=ut3(x,al,be0,be1);%свободный правый конец
c=be0;% f(x)=g(x)=1
b=(be1-al*(be0+0.5)-1)/(al+1);
z=x^2/2+b*x+c;
return
Индивидуальные ЗАДАНИЯ
№