运行matlab帮助文件里的pdepe例子 结果程序报错了matlab help里搜索pdepe,里面有两个例子,第二个例子如下,原原本本的复制 然后运行 怎么会报错 难道帮助里的例子是错的?m = 0;x = [0 0.005 0.01 0.05 0.1
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 19:30:57
运行matlab帮助文件里的pdepe例子 结果程序报错了matlab help里搜索pdepe,里面有两个例子,第二个例子如下,原原本本的复制 然后运行 怎么会报错 难道帮助里的例子是错的?m = 0;x = [0 0.005 0.01 0.05 0.1
运行matlab帮助文件里的pdepe例子 结果程序报错了
matlab help里搜索pdepe,里面有两个例子,第二个例子如下,原原本本的复制 然后运行 怎么会报错 难道帮助里的例子是错的?
m = 0;
x = [0 0.005 0.01 0.05 0.1 0.2 0.5 0.7 0.9 0.95 0.99 0.995 1];
t = [0 0.005 0.01 0.05 0.1 0.5 1 1.5 2];
sol = pdepe(m,@pdex4pde,@pdex4ic,@pdex4bc,x,t);
u1 = sol(:,:,1);
u2 = sol(:,:,2);
figure
surf(x,t,u1)
title('u1(x,t)')
xlabel('Distance x')
ylabel('Time t')
figure
surf(x,t,u2)
title('u2(x,t)')
xlabel('Distance x')
ylabel('Time t')
% --------------------------------------------------------------
function [c,f,s] = pdex4pde(x,t,u,DuDx)
c = [1; 1];
f = [0.024; 0.17] .* DuDx;
y = u(1) - u(2);
F = exp(5.73*y)-exp(-11.47*y);
s = [-F; F];
% --------------------------------------------------------------
function u0 = pdex4ic(x);
u0 = [1; 0];
% --------------------------------------------------------------
function [pl,ql,pr,qr] = pdex4bc(xl,ul,xr,ur,t)
pl = [0; ul(2)];
ql = [1; 0];
pr = [ur(1)-1; 0];
qr = [0; 1];
运行matlab帮助文件里的pdepe例子 结果程序报错了matlab help里搜索pdepe,里面有两个例子,第二个例子如下,原原本本的复制 然后运行 怎么会报错 难道帮助里的例子是错的?m = 0;x = [0 0.005 0.01 0.05 0.1
原因:
例子当然不是错的,问题出现在你复制的时候把最前面一行给丢了(不信的话再仔细看看).
解决方法:
知道了原因,解决也就很简单,在你的代码最前面加上一行
function pdex4后就可以了(函数名pdex4其实可以改为任何合法的标识符,没影响).
说明:
偏微分方程求解器pdepe的前三个输入参数都是函数,一种做法是把三个函数分别保存成m文件,然后主程序可以用脚本(script)的形式;另一种做法是像这个例子这样,把主程序写成函数(function)的形式,而另外几个函数作为子函数放在同一个m文件中.
结果: