m0_66444090 2022-11-23 19:02 采纳率: 25%
浏览 30
已结题

诺伊曼边界条件,帮我改一下程序,我礼拜五有用,用的matlab,

各位网友好,我用了狄利克雷边界条件可以做,但是不知道怎么用诺伊曼边界条件,可以帮我改一下程序吗,我礼拜五有用,
用的matlab,


%使用示例:w=burgers (0,1,0,2,20,40)
function w=burgers(xl,xr,tb,te,M,N)
alf=5;bet=4;D=1.0;
xl=0;
xr=1;
tb=0;
te=2;
M=20;
N=40;
f=@(x)2*D*bet*pi*sin(pi*x)./(alf+bet*cos(pi*x));
l=@(t)0*t;
r=@(t)0*t;
h=(xr-xl)/M; k=(te-tb)/N; m=M+1; n=N;
sigma=D*k/(h*h) ;
w(: ,1)=f(xl+(0:M)*h)';
w1=w;
for j=1:n
  for it=1 :3
%牛顿迭代
    DF1=zeros(m,m);DF2=zeros (m, m) ;
    DF1=diag(1-k+2*sigma*ones(m, 1))+diag(-sigma*ones(m-1,1),1);
DF1=DF1+diag ( -sigma*ones (m-1,1),-1);
DF2=diag (2*k*w1);
DF=DF1+DF2;
F=-w(:,j)+(DF1+DF2/2)*w1 ;
DF(1, :)=[- 3 4 -1 zeros(1,m-3) ] ;F(1)=DF(1,: )*w1;
DF(m, : )= [zeros(1,m-3) -1 4 -3];F(m)=DF (m,:) *w1;
%对于DF的狄利克雷边界条件
F(1)=w1(1)-l(j);F(m)=w1(m)-r(j);%对于F的狄利克雷边界条件
w1=w1-DF\F;
  end  
  w(:,j+1)=w1;
end
x=xl+(0:M)*h; t=tb+ (0:n)*k;
mesh(x,t,w')
%解w的三维图    
end

img

img

img

img

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 赞助了问题酬金20元 11月23日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图