1D 열 방정식에 대한 코드에서 온도가 변하지 않습니다 : 명시 적 계획


0

Matlab에서 명시 적 체계를 사용하여 제공된 경계 조건으로 다음 1D 열 방정식을 해결하려고합니다. 결과를 플롯하려고 시도했지만 온도가 변하지 않는다는 것을 깨달았습니다. 문제를 해결하고 경계 조건을 포함시키는 방법은 무엇입니까?

clc; clear all; close all; 

a=0.45*10^-5;
U_Initial= 30+273.15; %converting to kelvin
U_Wall = 20+273.15; %converting to kelvin
U_BC = 100+273.15; %converting to kelvin
dt= 0.01;
dr= 1;
Lambda= (a*dt)/(dr)^2;
t=1:dt:3600;
r= 3:dr:100;
U = zeros(length(r),length(t));
U(:,1)= U_Initial;
U(1,:)=U_BC;
U(end,:)=U_Wall;
for j= 1:1:length(t)-1
   for i=2:1:length(r)-1
     U(i,j+1)= U(i,j)+Lambda*((dr/r(i))*(U(i+1,j)-U(i-1,j))+ (U(i+1,j)-2*U(i,j)+U(i-1,j)));
   end
end

답변:


1

이 스택 교환은 실제로 이러한 숙제와 같은 문제를 직접 해결하려고하지 않습니다. 그러나 진행 방법에 대한 힌트를 제공 할 수 있습니다.

당신은 규모 가 정확 a하고 lambda정확합니까? 내가 할당 a=0.1하면 합리적인 프로필이 개발됩니다. 변수를 모두 0에서 1까지 스케일링하도록 문제의 비차 원화를 고려하십시오. 이러한 방식으로 수학을 공식화하면 이러한 종류의 오류가 사라지는 경향이 있습니다. 비 차원 솔루션이 있으면 쉽게 크기를 조정할 수 있습니다.

MATLAB에는 PDE 솔버도 내장되어 있습니다. 당신은 시작할 수 있습니다 여기에 일반적인 접근 방법과 올바른 형태로 문제를 점점 위로 읽고, 다음 사용합니다 pdepe.

참고로, 정수가 아닌 단계의 범위에 linspace()콜론 연산자를 사용하는 것과 반대로 조회 :하십시오. 콜론 연산자는 다음과 같은 경우에 마지막 단계를 생략 1:0.6:2합니다 [ 1 1.6 ]. 그 주 2당신이 의도 아마하지 않은,이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.