运行matlab帮助文件里的pdepe例子 结果程序报错了matlab help里搜索pdepe,里面有两个例子,第二个例子如下,原原本本的复制 然后运行 怎么会报错 难道帮助里的例子是错的?m = 0;x = [0 0.005 0.01 0.05 0.1
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 14:33:15
![运行matlab帮助文件里的pdepe例子 结果程序报错了matlab help里搜索pdepe,里面有两个例子,第二个例子如下,原原本本的复制 然后运行 怎么会报错 难道帮助里的例子是错的?m = 0;x = [0 0.005 0.01 0.05 0.1](/uploads/image/z/4514044-4-4.jpg?t=%E8%BF%90%E8%A1%8Cmatlab%E5%B8%AE%E5%8A%A9%E6%96%87%E4%BB%B6%E9%87%8C%E7%9A%84pdepe%E4%BE%8B%E5%AD%90+%E7%BB%93%E6%9E%9C%E7%A8%8B%E5%BA%8F%E6%8A%A5%E9%94%99%E4%BA%86matlab+help%E9%87%8C%E6%90%9C%E7%B4%A2pdepe%2C%E9%87%8C%E9%9D%A2%E6%9C%89%E4%B8%A4%E4%B8%AA%E4%BE%8B%E5%AD%90%2C%E7%AC%AC%E4%BA%8C%E4%B8%AA%E4%BE%8B%E5%AD%90%E5%A6%82%E4%B8%8B%2C%E5%8E%9F%E5%8E%9F%E6%9C%AC%E6%9C%AC%E7%9A%84%E5%A4%8D%E5%88%B6+%E7%84%B6%E5%90%8E%E8%BF%90%E8%A1%8C+%E6%80%8E%E4%B9%88%E4%BC%9A%E6%8A%A5%E9%94%99+%E9%9A%BE%E9%81%93%E5%B8%AE%E5%8A%A9%E9%87%8C%E7%9A%84%E4%BE%8B%E5%AD%90%E6%98%AF%E9%94%99%E7%9A%84%3Fm+%3D+0%3Bx+%3D+%5B0+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
运行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文件中.
结果: