Добрый день, уважаемые форумчане. Я никак не могу разобраться с тем, как задать граничные условия для простого уравнения теплопроводности. Заданная задача в приложенном файле. 
У меня есть файл, где определяются граничные условия, но не могу понять как там определить их через время.
файл, где решается уравнение:
Код:
%решаем следующую задачу средствами MatLab PDE toolbox  
%du/dt=(alpha^2)*(d2u/dx2) – параболическое уравнение 
% u(x,0)=fi(x), 0<=x<=1 – начальное условие, любая функция заданная пользователем 
% u(0,t)=0, u(1,t)=0, 0<=t<=t_max – граничные условия 
echo off; 
syms fi x; 
%Начальное распределение температуры, задаётся пользователем: 
fi=x*(x-1); 
%Коэффициент alpha, задаётся пользователем: 
alpha=0.1; 
%Максимальное время, задаётся пользователем: 
t_max=1; 
%Количество интервалов по координате, задаётся пользователем: 
n_razb_x=100;  
%Генерация сетки: 
[p,e,t]=poimesh('squareg',n_razb_x,1); 
%Преобразование сетки из [-1,1] в [0,1] по x и по y: 
p(1,:)=(p(1,:)+1)/2; 
p(2,:)=(p(2,:)+1)/2; 
%Количество узлов сетки: 
np=size(p,2); 
%Инициализация массива начальных значений в узлах сетки: 
u0=zeros(np,1); 
%Подстановка начальных значений в узлы сетки: 
u0(:,1)=subs(fi,x,p(1,:)); 
%Массив значений времени: 
tlist=0:t_max; 
%Решение параболического уравнения: 
u=parabolic(u0,tlist,'bn',p,e,t,alpha^2,0,0,1); 
%Задаём координатную сетку: 
[X,T]=meshgrid(linspace(0,1,n_razb_x+1),tlist); 
%Инициализируем матрицу значений функции (матрицу графика): 
u2=zeros(size(T,1),size(X,2)); 
%Заполняем матрицу значений функции, учитывая то, 
%каким образом данные хранятся в u. 
for xx=1:1:size(u2,2) 
for tt=1:1:size(u2,1) 
u2(tt,xx)=u(xx,tt); 
%берём нужное значение из u и ставим его в нужное место матрицы графика. 
end; end; 
%Рисуем: 
surf(X,T,u2) 
файл, где задаются граничные условия:
Код:
% задание граничных условий для нашей задачи – хранятся в файле bn.m 
function [q,g,h,r]=pdebound(p,e,u,time) 
%Определение числа рёбер в границе: 
nb=size(e,2); 
%Инициализация массивов: 
q=zeros(1,nb); 
g=zeros(1,nb); 
h=zeros(1,2*nb); 
r=zeros(1,2*nb);  
for i=1:1:nb 
%Из всех рёбер в границе выбираем только те, которые 
%лежат на границе стержня (x=0 или x=1): 
if ((p(1,e(1,i))==0) && (p(1,e(2,i))==0))  ||  ((p(1,e(1,i))==1) && (p(1,e(2,i))==1)) 
%Для этих рёбер задаём условие Дирихле u=0 (hu=r => h=const, r=0) 
%понятно, что здесь нужно задавать условия, но он не принимает функции
h(1,i)=1;
h(1,nb+i)=1; 
end; end; 
Подскажите, пожалуйста, каким образом задать граничные условия через время.
http://www.cyberforum.ru/attachments/328061d1384173730