2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 двухмерное уравнение теплопроводности в scilab
Сообщение23.02.2011, 13:27 


23/02/11
3
Добрый день, нужда привела меня к вам, сразу оговорюсь я не программист и не математик, потому прошу прощения за не очень умные вопросы и глупые ошибки. По воле случая приходится осваивать программу scilab (до этого с математическими программами не встречался) и столкнулся с проблемой. Одномерное решение ур-ия теплопроводности можно найти где угодно, а вот с двух мерным беда, только аналитически есть решения, но входе моих манипуляций с текстом решение ничего не решается.
Вот мой текст программы решения который я взял из книги для одномерной задачи и попытался переделать под двухмерную.
//Начальное условие (фи начальная загрязнённость)
//Условие при t=0
function y=fi(x,y)
y=1
endfunction
//Условие при x=0
function y=myu(y,t)
y=5
endfunction
//Условие при y=0
function y=nyu(x,t)
y=5
endfunction

function [u,x,y,t]=parabol(Nx,Ny,K,Lx,Ly,T,a)
//Функция решения параболического уравнения методом сеток с
//помощью явной разностной схемы.
//Nx - количество участков, на которые разбивается интервал по х (0,Lx);
//Ny - количество участков, на которые разбивается интервал по х (0,Ly);
//K – количество
// участков, на которые разбивается интервал по t (0,T);
// a - параметр дифференциального уравнения теплопроводности,
// Функция возвращает матрицу решений u и вектора x, t
// Вычисляем шаг по х
hx=Lx/Nx;
// Вычисляем шаг по y
hy=Ly/Ny;
// Вычисляем шаг по t
delta=T/K;
// Формируем массив x и первый столбец матрицы решений U
// из начального условия
for i=1:Nx+1
x(i)=(i-1)*hx;
u(i,1)=fi(x(i));
end
// Формируем массив y и первый столбец матрицы решений U
// из начального условия
for j=1:Ny+1
y(j)=(j-1)*hy;
u(j,1)=fi(y(j));
end
//Формируем массив t, первую и последнюю строку матрицы решений
// U из граничных условий
for k=1:K+1
t(k)=(k-1)*delta;
u(1,k)=myu(t(k));
u(Nx+1,k)=nyu(t(k));
end

gam=a^2*delta/(hx+hy)^2;
// Формируем матрицу решений u с помощью явной разностной схемы
for k=1:K
for i=2:Nx
u(i,j+1,k)=gam*u(i-1,j,k)+(1-2*gam)*u(i,j,k)+gam*u(i+1,j,k)+delta;
end
end
endfunction
//N -количество интервалов, на которые разбивается отрезок (0, L);
//K - количество интервалов, на которые разбивается отрезок (0, T);
//L - длина стержня,
//T - интервал времени,
//a - параметрдифференциального уравнения. Функция возвращает три параметра: решение - сеточная
//функция u, определенная на сетке h , массивы x и t.
//function [u,x,y,t]=parabol(Nx,Ny,K,Lx,Ly,T,a)
[U,X,Y,T]=parabol(20,20,1,2,2,1,0.1);
surf(X,Y,U');

ответы готовые выкладывать запрещено но возможно поможете разобраться полному бездарности в этих делах.

И на последок, ещё один вопрос как анимировать график в примерах есть функция realtime, но все мои попытки с помощью справки сделать, что-то рабочее не увенчались успехом(хотелось бы оживить решение ур-ия теплопроводности).

Заранее спасибо большое при большое.

 Профиль  
                  
 
 Re: двухмерное уравнение теплопроводности в scilab
Сообщение23.02.2011, 21:36 


23/02/11
3
Есть пример решенный в матлабе хочется такое же в сайлабе сделать http://ru.wikipedia.org/wiki/%D0%A4%D0% ... at_eqn.gif

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group