- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
偏微分的MATLAB数值解法 偏微分的MATLAB数值解法 方法一:pdepe函数实现 方法二:pdetool实现 方法三:程序实现 方法一:pdepe函数实现 MATLAB提供的pdede函数,可以求解一般的偏微分方程组,其调用格式: sol =pdepe(m,@pdefun,@pdeic,@pdebc,x,t) 方法一:pdepe函数实现 方法一:pdepe函数实现 方法一:pdepe函数实现 @pdeic(初值条件描述): 形式:u(x,t0)=u0 u0=pdeic(x) m,x,t对应函数式中参数 方法一:pdepe函数实现 应用实例: 方法一:pdepe函数实现 应用实例: @pdefun: function [c,f,s]=pdefun(x,t,u,du) c=1; f=400*du; s=0; @pdebc: function [pa,qa,pb,qb]=pdebc(xa,ua,xb,ub,t) pa=ua; qa=0; pb=ub; qb=0; 方法一:pdepe函数实现 @pdeic: function u0=pdeic(x) if x10 u0=0; elseif x30 u0=1; else u0=0; end 方法一:pdepe函数实现 x=0:1:40; t=0:0.01:0.2; m=0; sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t); b=sol(20,:); plot(x,b); title(the solution of u) xlabel(x) ylabel(y) zlabel(u) 方法一:pdepe函数实现 方法二:pdetool实现 1.pdetool界面 2.选定求解微分方程类型(双曲线、抛物线、椭圆、特殊值型)并设定参数 3.绘制求解区域 4.边界条件和初值条件(Dirichlet和Neumann) 5.生成网格 6.求解方程并绘制图形 方法二:pdetool实现 应用实例: 方法二:pdetool实现 方法三:程序实现 1.利用差分思想对微分方程进行离散,确立微分格式 2.确立边界条件和初始条件 3.程序求解并绘制图形 方法三:程序实现 应用实例: 波动方程 方法三:程序实现 程序: function U=pianj(a,b,m,n) h = a/(m-1); k = b/(n-1); r = h/k r2=r^2; s2=2-2*r^2; for j=1:m U(1,j)=0; U(2,j)=0; end for i=1:n U(i,1)=0; U(i,m)=2*sin((i-1)*k); end for i=3:n for j=2:m-1 U(i,j) = s2*U(i-1,j)+r2*U(i-1,j-1)+r2*U(i-1,j+1)-U(i-2,j); end end 方法三:程序实现 偏微分的MATLAB数值解法 方法总结: 1.pdede调用简单,但计算功能稍弱 2.pdetool使用方便,但限于四种方程类型 3.程序编写较为繁琐 * * @pdefun(函数格式描述): [c,f,s]=pdefun(x,t,u,du) @pdebc(边界条件描述): [pa,qa,pb,qb]=pdebc(x,t,u,du) a:左边界,b:右边界 *
文档评论(0)