如何用有限元分析法求解销派一维瞬态热传导问亏猛贺题?
该问题可以根据下列思路来考虑求解:
第一步,明确具体的一维瞬态热传导问题的方程知禅,以及初始条件;
第二步,网格生成。在给定区域内生成网格,即利用网格将应该区域剖分成若干个小区域,网格质量的高低直接影响到方程计算精度;
第三步,协调元。构造有限维的函数空间来近似代替无限维的空间。如空间为有限元离散空间应使用非协调元(克鲁兹-拉维亚特三角元);
第四步,离散格式。即对时间采用差分法来近似;
第五步,构造线性方程组;
第六步,求解线性方程组并进行误差分析。
第七步,根据上述方法编程,即可得到计算结果。
function main%热传导方程的差分解法
lda=0.000015%lad即为a^2
l=50
h=0.05%空间步长
alpha=0.5
tao=alpha*h^2/lda%时间步长
N=l/h%空间步数
M=100%时间步数,由于斗森你条件没有限制,所以我随便取了个值
for i=1:N+1
u(1,i)=fai((i-1)*h)
end
for k=1:M
u(k,1)=g1(k*tao)
u(k,N+1)=g2(k*tao)
end
for k=1:M
for i=2:N
u(k+1,i)=alpha*u(k,i+1)+(1-2*alpha)*u(k,i)+alpha*u(k,i-1)
end
plot([0:h:l],u(k+1,:))
hold on pause(0.05)
end
function u=fai(x)
u=100
function u=g1(x)
u=0
function u=g2(x)
u=0
就这个拉,你试试看行不,不行的话空搜亩在联漏巧系我吧!!
这样就可以了a=str2num(get(handles.edit1,'string'))
再裤握次输入的话 注意如宽纯姿果输入是数组必须如下输入[1 2 34 5 67 8 9]
那就将a重新转换慎绝为字符串
使用num2str函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)