2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Одномерное уравнение теплопроводности matlab
Сообщение06.11.2020, 13:25 


06/11/20
1
Здравствуйте, уже несколько дней ломаю голову с получением решения в матлабе. Вроде как прогонка получается, матлаб рисует первоначальную параболу, но при точном решении массив uExact уходит в нули. В чем может быть ошибка?


код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
clc;
clear all;
n=50;
x=1;
h=x/(n-1); %шаг по пространству
tau=0.001; %шаг по времени
sigma=0.4;
kappa=0.5;
tEnd=0.1;
t=0;
u=ones(1,n);
u(1)=0;
u(n)=0;
uN=u;
a=0;
b=1;
x=[a:h:b];
while(t < tEnd)  
 
for i=1:n-2
    a(i)=1;
        b(i)=2+h^2/(kappa*tau*sigma);
    c(i)=1;
    d(i)=(2*(1-sigma)/sigma-h^2/(kappa*tau*sigma))*u(i+1)-(1-sigma)/sigma*(u(i)+u(i+2));
end

e(1)=0;
k(1)=0;
for i=1:n-2
    e(i+1)=c(i)/(b(i)-a(i)*e(i));
    k(i+1)=(a(i)*k(i)-d(i))/(b(i)-a(i)*e(i));
end


U(n-1)=k(n-1);
for i=n-2:-1:2
U(i)=e(i)*U(i+1)+k(i);
end


a1=0;
b1=1;
x=[a1:h:b1];
y = quad('sin(pi*x*50)',0.001,1,1e-4);

kappa0=0.5;
for i=1:n
alfa(i)=2*y;
uExact(i)=sum(alfa(i)*exp(-pi^2*n^2*kappa0*t)*y);
end

U(n)=0;
u=U;
t=t+tau;
plot(x,U);
% norm=sum(abs(uExact - U))*h;
end
 

 Профиль  
                  
 
 Re: Одномерное уравнение теплопроводности matlab
Сообщение07.11.2020, 01:47 
Заслуженный участник


09/05/12
25179
За неимением MATLAB засунул это в Octave и получил следующее:
Цитата:
warning: quad: passing function body as a string is obsolete; please use anonymous functions
warning: called from
qq at line 45 column 3
(на qq не обращайте внимания - это название файла, в который был помещен ваш код).

Впрочем, считать-то оно считает, но строго запрошенное, поэтому всегда получается y = -0.000078378. По-видимому, вы ожидали чего-то другого?

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

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



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

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


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

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