该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在求解抛物线型方程时,u1=parabolic(u0,tlist,b,p,e,t,c,a,f,d);中的b到底应该怎么设置?
我让b=‘my_b’为什么一直报错?
主程序:
r=0.030;
l=0.2286-2*r;w=0.2286-2*r;
R= [3,4,...
l/2,-l/2,-l/2, l/2,...
w/2, w/2,-w/2,-w/2]';
R1=[3,4,...
l/2, l/2, -l/2,-l/2,...
w/2,w/2+r,w/2+r, w/2]';
R2=[3,4,...
-l/2,-l/2-r,-l/2-r,-l/2,...
w/2, w/2, -w/2, -w/2]';
R3=[3,4,...
-l/2, -l/2, l/2, l/2,...
-w/2,-w/2-r,-w/2-r,-w/2]';
R4=[3,4,...
l/2,l/2+r,l/2+r,l/2,...
-w/2, -w/2, w/2,w/2]';
C1=[1,l/2,w/2,r,zeros(1,6)]';
C2=[1,-l/2,w/2,r,zeros(1,6)]';
C3=[1,-l/2,-w/2,r,zeros(1,6)]';
C4=[1,l/2,-w/2,r,zeros(1,6)]';
geom = [R,R1,R2,R3,R4,C1,C2,C3,C4];
ns = (char( 'R','R1','R2','R3','R4','C1','C2','C3','C4'))';
sf = 'R+R1+R2+R3+R4+C1+C2+C3+C4';
gd = decsg(geom,sf,ns);
[p,e,t]=initmesh(gd,'hmax',1);
pdemesh(p,e,t)
[p,e,t]=refinemesh(gd,p,e,t);
[p,e,t]=refinemesh(gd,p,e,t);
pdemesh(p,e,t);
k=238;
ro=475;
c1=975.15;
Q=-5000;
Te=450;
h=15;
c=k;
a=h;
f=Q+h*Te;
d=ro*c1;
u0=450;
u1=parabolic(u0,tlist,'my_b',p,e,t,c,a,f,d);
———————————————————
函数文件
function [q,g,h,r]=my_b(p,e,u,time)
bl=[1 1 1 1 3 1 '0' '0' '450' '0']';
bl=double(bl);
if any(size(u))
[q,g,h,r]=pdeexpd(p,e,u,time,bl);
else
[q,g,h,r]=pdeexpd(p,e,time,bl);
end
————————————————
Error using pdeexpd (line 103)
Boundary segment number does not exist.
Error in my_b (line 7)
[q,g,h,r]=pdeexpd(p,e,time,bl);
Error in pdeefxpd (line 10)
[q,g,h,r]=feval(bl,p,e,u,time);
Error in pdeexpd (line 40)
[q,g,h,r]=pdeefxpd(p,e,u,time,bl);
Error in assemb (line 99)
[q,g,h,r]=pdeexpd(p,e,time,bl);
Error in parabolic (line 86)
[Q,G,H,R]=assemb(b,p,e,time);
——————————————