古詩詞大全網 - 四字成語 - 偏微分方程數值解

偏微分方程數值解

我給妳壹點提示吧;這是壹維DIFFUSION方程;可用SEPARATION OF VARIABLE;答案是U(X,T)=SUM Cm cos(mX+Dm) EXP(-m*m t);而SUM 是無限級數;m=0,1,2,3,...無窮大.

++++++++++++++++

也可以用常微分方程做;H=0.5;這裏只用三點;U0;U1;U2;J為2;由邊界條件;U1-U0=0.5U0;U0=0.6666666U1;U2-U1=-0.5U2;U2=0.6666666U1;故

dU1/dt=(U0-2U1+U2)/.25=-2.666664U1;得UI(N+1)-U1(N)=-2.666664U1(N)*dt;設dt=0.1;則UI(N+1)-U1(N)=-0.2666664U1(N);可以用EXCEL 做了

U1(N+1)=U1(N)-0.2666664U1(N)=0.7333336U1(N);

這是壹個等比級數;U1(0)=1;U1(1)=0.7333336;...,U1(N+1)=.7333336^N

*****************************************************************

program heat

dimension u(81)

integer*4 m

c J0(x)=0 for x=2.405;5.520;8.654;11.792;14.931

c J1(x)=0 for x=0;3.832;7.016;10.173;13.324...

n=3

h=1./(n-1)

dt=0.5*h*h/2.

j=n

m=10

do 1 i=1,n

1 u(i)=1.

do 2 k=1,m

u(1)=(4.*u(2)-u(3))/(2.*h+3.)

u(n)=(-u(n-2)+4.*u(n-1))/(2.*h+3.)

do 3 i=2,n-1

u(i)=u(i)+(u(i+1)+u(i-1)-2.*u(i))*dt/h/h

3 continue

write(6,'(1x,6e13.6)')(u(i),i=1,n)

if(u(n/2+1).le.1.e-6)write(6,'(1x,i5)')k

if(u(n/2+1).le.1.e-6)stop

2 continue

stop

end

_____________________________

附註:這裏r=dt/h/h<0.5;妳可以把N=11,那DT步長是0.5/200=0.0025;把M=32767;

妳要指定差分用向前;不能用隱性;又要指定邊界處理差分方式;還要研究報告;用富裏

艾隱定分析差分格式;因邊界條件關系;r=1/2剛好在不隱定的壹邊 ;這是壹維熱傳導方程;上百度找找看;妳也可修改這程序;符合妳需要的