一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)
精確解為:U(x,t)=e^(x+t);
用緊差分格式:
此種方法精度為o(h1^2+h2^4),無條件差分穩定;
一:用追趕法解線性方程組(還可以用迭代法解)
Matlab程序為:
function [u p e x t]=JCHGS(h1,h2,m,n)
%緊差分格式解一維拋物線型偏微分方程
%此程序用的是追趕法解線性方程組
%h1為空間步長,h2為時間步長
%m,n分別為空間,時間網格數
%p為精確解,u為數值解,e為誤差
x=(0:m)*h1+0; x0=(0:m)*h1;%定義x0,t0是為了f(x,t)~=0的情況%
t=(0:n)*h2+0; t0=(0:n)*h2+1/2*h2;
syms f;
for(i=1:n+1)
for(j=1:m+1)
f(i,j)=0; %f(i,j)=f(x0(j),t0(i))==0%
end
end
for(i=1:n+1)
u(i,1)=exp(t(i));
u(i,m+1)=exp(1+t(i));
end
for(i=1:m+1)
u(1,i)=exp(x(i));
end
r=h2/(h1*h1);
for(i=1:n) %外循環,先固定每一時間層,每一時間層上解一線性方程組%
a(1)=0;b(1)=5/6+r;c(1)=1/12-r/2;d(1)=(r/2-1/12)*u(i+1,1)+... (1/12+r/2)*u(i,1)+(5/6-r)*u(i,2)+(1/12+r/2)*u(i,3)+...
h2/12*(f(i,1)+10*f(i,2)+f(i,3));
for(k=2:m-2)
a(k)=1/12-r/2;b(k)=5/6+r;c(k)=1/12-r/2;d(k)=h2/12*(f(i,k)+...
總結
以上是生活随笔為你收集整理的一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 蓝牙AVRCP 专题 (
- 下一篇: jquery --- 事件处理函数的e