大家有什么有限元法解常微分方程的程序(最好用MATLAB编),贴上来讨论一下.

浏览:376742 回答:3
matlab里面的Ode45或者Ode23里面有,看看它的源程序,不详细.

邀请回答 我来回答

全部回答

(3)
默认 最新
malong
这个问题是不是重复发了啊!








转:
Re:求有限元法解常微分方程的程序(MATLAB编)

euler法---------y(n+1)=yn+h*f(xn,yn)--->显式计算公式
xn=0:.1:1;
y0=1; %赋初值
y_n_plus1=[];
for i=1:length(xn)-1
y_n_plus1=[y_n_plus1;y0+diff(xn([1:2]))*(y0-2*xn(i)/y0)];
y0=y_n_plus1(end);
end
y_n_plus1;
%method2:后退euler法---------y(n+1)=yn+h*f(x(n+1),y(n+1))--->隐式计算公式
xn1=0:.1:1;
y01=1; %赋初值
y_n2=[];
for i=1:length(xn1)-1
y02=y01+diff(xn1([1:2]))*(y01-2*xn1(i)/y01);
y_n2=[y_n2;y01+diff(xn1([1:2]))*(y02-2*xn1(i+1)/y02)];
y01=y_n2(end);
end
%上述两种方法的局部截断误差分别约为h^2*y''(xn)/2,-h^2*y''(xn)/2
%利用中心差分公式的梯形公式可以得到更好的精度
xn2=0:.1:1;
y11=1;
y_n3=[];
for i=1:length(xn2)-1
y03=y11+diff(xn2([1:2]))*(y11-2*xn2(i)/y11);
y_n3=[y_n3;y11+.5*diff(xn2([1:2]))*(y11-2*xn2(i)/y11+y03-2*xn2(i+1)/y03)];
y11=y_n3(end);
end
%建立预测-校正系统的改进euler公式
xnp=0:.1:1;
y21=1;
y_n4=[];
for i=1:length(xnp)-1
y04=y21+diff(xnp([1:2]))*(y21-2*xnp(i)/y21);
y_n4=[y_n4;y21+.5*diff(xnp([1:2]))*(y21-2*xnp(i)/y21+y04-2*xnp(i+1)/y04)];
y21=y_n4(end);
end
%精确的解析解
dy=dsolve('Dy=y-2*x/y','y(0)=1','x');
y_exact=subs(dy,'x',{.1:.1:1});
%ode45的解
f=inline('x-2*t/x','t','x');
[t,Y]=ode45(f,[0,1],1);
cc=flipdim(Y([end:-4:1]),1)';
y_ode=cc([2:end]);
%精度比较
y_compare=[y_n_plus1';y_n2';y_n3';y_n4';y_ode;y_exact];
y_compare_minor=[y_compare(6,:)-y_compare(1,:);...
y_compare(6,:)-y_compare(2,:);y_compare(6,:)-y_compare(3,:);...
y_compare(6,:)-y_compare(4,:);y_compare(6,:)-y_compare(5,:)];
var_y=var(y_compare_minor');
2006年8月23日
评论 点赞
starliu
楼主的提议很好,建议大家讨论一下啊,有机会研究一下ode45和23的源程序。
2006年8月13日
评论 点赞
IF_THEN
由于偏微分方程在理论和实践上的重要性,它的数值解法,长期以来吸引着数学家、物理学家和工程师们的注意。一种数值方法包括它的数学基础和它的实现,都紧紧地依赖与理论数学的发展和计算手段的改善。计算机科学的发展,现代大型高速电子计算机的出现,对数值方法冲击之大,是历史从来未有过的。作为求解偏分方程的一个强有力的手段--有限元方法,正是电子计算机时代的产物。 有限元方法摈弃了刻划自然规律中局部的、瞬时的数学描述,而以大范围的、全过程的数学分析作为自己的出发点。局部和整体,瞬时和全过程,只是以两种不同的角度来描述自然现象。一个过程,既可以被微分方程所描述,又服从相应的变分原理,方法虽然不同,但却从两个不同的侧面来反映同一自然规律。
2006年8月4日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP