matlab 求解偏微分方程 110
如图所示的偏微分方程,这个方程是一个一维非稳态对流传热问题的数学描述,我把(4)的右边取为常数,(5)边界条件(6)初始条件,均取为常数,matlab程序如下:*****...
如图所示的偏微分方程,这个方程是一个一维非稳态对流传热问题的数学描述,我把(4)的右边取为常数,(5)边界条件(6)初始条件,均取为常数,matlab程序如下:
******************************************微分方程*************************************************
function [c,f,s] = pdex4pde(x,t,u,du)
c=1;
f=-10*u;
s=0;
*******************************************边界条件************************************************
function [pl,ql,pr,qr] = pdex4bc(xl,ul,xr,ur,t)
pl = ul-300;
ql = 0;
pr = 0;
qr = 0;
*******************************************初始条件************************************************
function u0 = pdex4ic(x);
u0 = [270];
*******************************************主计算程序************************************************
clc
m = 0;
x = linspace(0,1,20);
t = linspace(0,2,5);
sol = pdepe(m,@pdex4pde,@pdex4ic,@pdex4bc,x,t);
% Extract the first solution component as u.
u = sol(:,:,1);
% A surface plot is often a good way to study a solution.
surf(x,t,u)
title('Numerical solution computed with 20 mesh points.')
xlabel('Distance x')
ylabel('Time t')
% A solution profile can also be illuminating.
figure
plot(x,u(end,:))
title('Solution at t = 2')
xlabel('Distance x')
ylabel('u(x,2)')
*******************************************************************************************
这样是解不出来的提示错误“This DAE appears to be of index greater than 1.”
我对比教程中的例子
发现这个例子中的边界条件,在左右两侧都有,而我的方程只有左边的边界条件
之后我把边界条件改为pr=1,即增加右边的边界条件,终于可解。
请问,(4)方程在只有左边界条件下,应该是已经有确定的解了,为什么不能解,非要提供左右两个边界条件才能解呢?怎样才能解(4)? 展开
******************************************微分方程*************************************************
function [c,f,s] = pdex4pde(x,t,u,du)
c=1;
f=-10*u;
s=0;
*******************************************边界条件************************************************
function [pl,ql,pr,qr] = pdex4bc(xl,ul,xr,ur,t)
pl = ul-300;
ql = 0;
pr = 0;
qr = 0;
*******************************************初始条件************************************************
function u0 = pdex4ic(x);
u0 = [270];
*******************************************主计算程序************************************************
clc
m = 0;
x = linspace(0,1,20);
t = linspace(0,2,5);
sol = pdepe(m,@pdex4pde,@pdex4ic,@pdex4bc,x,t);
% Extract the first solution component as u.
u = sol(:,:,1);
% A surface plot is often a good way to study a solution.
surf(x,t,u)
title('Numerical solution computed with 20 mesh points.')
xlabel('Distance x')
ylabel('Time t')
% A solution profile can also be illuminating.
figure
plot(x,u(end,:))
title('Solution at t = 2')
xlabel('Distance x')
ylabel('u(x,2)')
*******************************************************************************************
这样是解不出来的提示错误“This DAE appears to be of index greater than 1.”
我对比教程中的例子
发现这个例子中的边界条件,在左右两侧都有,而我的方程只有左边的边界条件
之后我把边界条件改为pr=1,即增加右边的边界条件,终于可解。
请问,(4)方程在只有左边界条件下,应该是已经有确定的解了,为什么不能解,非要提供左右两个边界条件才能解呢?怎样才能解(4)? 展开
2个回答
展开全部
不会用Matlab做这种东西,不过你的问题很简单,下面那个例子对空间是2阶导,所以需要两个边界条件,你自己做的那个是1阶导
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
系科仪器
2024-08-02 广告
2024-08-02 广告
科仪器致力于为微纳薄膜领域提供精益级测量及控制仪器,包括各种光谱椭偏、激光椭偏、反射式光谱等,从性能参数、使用体验、价格、产品可靠性及工艺拓展性等多个维度综合考量,助客户提高研发和生产效率,以及带给客户更好的使用体验。...
点击进入详情页
本回答由系科仪器提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询