数学建模社区-数学中国

标题: 谁知道matlab怎么求解偏微分方程的解析解啊 [打印本页]

作者: hanmeng8    时间: 2011-8-16 19:56
标题: 谁知道matlab怎么求解偏微分方程的解析解啊
未命名.jpg


求救啊
作者: 赵越    时间: 2011-8-16 20:58

作者: china19901015    时间: 2011-8-16 21:13
建议用其他软件。。
这是网上找的。。符号求解,还是别用MATLAB..


微分方程类的MATLAB求解.ppt (1.06 MB, 下载次数: 162)


作者: hanmeng8    时间: 2011-8-17 08:27
china19901015 发表于 2011-8-16 21:13
建议用其他软件。。
这是网上找的。。符号求解,还是别用MATLAB..

符号求解用什么软件呢
作者: azure5566    时间: 2011-8-17 11:05
maple
作者: hanmeng8    时间: 2011-8-17 14:21
azure5566 发表于 2011-8-17 11:05
maple

maple可以求解析解吗
作者: du04099023    时间: 2011-8-17 20:44
hanmeng8 发表于 2011-8-17 14:21
maple可以求解析解吗

可以,实际上matlab的符号运算用的就是maple的内核
作者: 浩星无恨    时间: 2011-8-17 22:19
顶一下。。。。。。。。。
作者: 阿冯    时间: 2011-8-17 23:50
这个很像传热学中的傅里叶方程。感觉不是很好解……我在书上只找到了泊松方程的运算程序,还是二维的,贴上来看看,不知道对你有没有帮助。
function [u,x,y] = poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,tol,MaxIter)
%solve u_xx + u_yy + g(x,y)u = f(x,y)
% over the region D = [x0,xf,y0,yf] = {(x,y) |x0 <= x <= xf, y0 <= y <= yf}
% with the boundary Conditions:
% u(x0,y) = bx0(y), u(xf,y) = bxf(y)
% u(x,y0) = by0(x), u(x,yf) = byf(x)
% Mx = # of subintervals along x axis
% My = # of subintervals along y axis
% tol : error tolerance
% MaxIter: the maximum # of iterations
x0 = D(1); xf = D(2); y0 = D(3); yf = D(4);
dx = (xf - x0)/Mx; x = x0 + [0:Mx]*dx;
dy = (yf - y0)/My; y = y0 + [0:My]’*dy;
Mx1 = Mx + 1; My1 = My + 1;
%Boundary conditions
for m = 1:My1, u(m,[1 Mx1])=[bx0(y(m)) bxf(y(m))]; end %left/right side
for n = 1:Mx1, u([1 My1],n) = [by0(x(n)); byf(x(n))]; end %bottom/top
%initialize as the average of boundary values
sum_of_bv = sum(sum([u(2:My,[1 Mx1]) u([1 My1],2:Mx)’]));
u(2:My,2:Mx) = sum_of_bv/(2*(Mx + My - 2));
for i = 1:My
for j = 1:Mx
F(i,j) = f(x(j),y(i)); G(i,j) = g(x(j),y(i));
end
end
dx2 = dx*dx; dy2 = dy*dy; dxy2 = 2*(dx2 + dy2);
rx = dx2/dxy2; ry = dy2/dxy2; rxy = rx*dy2;
for itr = 1:MaxIter
for j = 2:Mx
for i = 2:My
u(i,j) = ry*(u(i,j + 1)+u(i,j - 1)) + rx*(u(i + 1,j)+u(i - 1,j))...
+ rxy*(G(i,j)*u(i,j)- F(i,j)); %Eq.(9.1.5a)
end
end
if itr > 1 & max(max(abs(u - u0))) < tol, break; end
u0 = u;
end
以上是possion.m文件,下面给个例子。
%solve_poisson in Example 9.1
f = inline(’0’,’x’,’y’); g = inline(’0’,’x’,’y’);
x0 = 0; xf = 4; Mx = 20; y0 = 0; yf = 4; My = 20;
bx0 = inline(’exp(y) - cos(y)’,’y’); %(E9.1.2a)
bxf = inline(’exp(y)*cos(4) - exp(4)*cos(y)’,’y’); %(E9.1.2b)
by0 = inline(’cos(x) - exp(x)’,’x’); %(E9.1.3a)
byf = inline(’exp(4)*cos(x) - exp(x)*cos(4)’,’x’); %(E9.1.3b)
D = [x0 xf y0 yf]; MaxIter = 500; tol = 1e-4;
[U,x,y] = poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,tol,MaxIter);
clf, mesh(x,y,U), axis([0 4 0 4 -100 100])
作者: 忘情的水    时间: 2011-8-18 07:14
困死了。。
作者: 融化的冰山    时间: 2011-8-18 17:03

作者: x53145771    时间: 2011-8-18 17:49

作者: 般若舫    时间: 2011-8-19 16:07
好好学习,哈哈哈哈
作者: fuxin    时间: 2011-8-20 08:22
有些难!!!
作者: 布丁果果    时间: 2011-8-20 08:40

作者: 布丁果果    时间: 2011-8-20 08:40

作者: 黄家的大哥哥    时间: 2011-8-21 10:18
怎么运行不成啊
作者: hsylx1992    时间: 2011-8-21 12:49
偏微分方程的确是个问题啊!
作者: 刀刀163    时间: 2011-8-21 12:53
我也不会 呵呵         
作者: crystal9    时间: 2011-8-29 17:15
我的神啊。。。千万不要遇到这种问题。。。。
作者: alair005    时间: 2012-2-7 10:14
囧了,下了无数不知道用哪个有用5575010290920412
作者: madiolee1    时间: 2012-6-13 01:27
谁知道matlab怎么求解偏微分方程的解析解啊http://www.madio.net/thread-122149-1-1.html
作者: liwenhui    时间: 2012-6-13 12:30
怎么以上的回复帖子都是些无意义的帖子,此种情况仿佛很普及。你说给的偏微分方程是抛物线型的扩散方程吧,对于这种标准的偏微分方程,不需要计算机,就是用一支笔和一张纸也能推导出来,关键是看你愿不愿意动手。
作者: 阳光溢    时间: 2013-2-2 17:24
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: 阳光溢    时间: 2013-2-2 17:24
好啊,太好了啊,谢谢了啊
作者: 右侧有你的风景    时间: 2013-8-23 15:07
同求解法。。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5