首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >椭圆型方程的有限差分法

椭圆型方程的有限差分法
EN

Stack Overflow用户
提问于 2017-04-19 21:07:48
回答 1查看 352关注 0票数 0

如果R是平面(0,1) x (0,2)的区域,设L是2-d Laplace算子,并考虑R上的Poisson方程Lu =4,其中一个解是函数v(x,y) =(X)^2。设g是v对R边界的限制,设h=k= 1/2,m=3 =5。

这是我的代码:但是它不起作用。

代码语言:javascript
复制
function w=poisson(xl,xr,yb,yt,M,N)
f=@(x,y) 0; % define input function data
g1=@(x) (x^2-2*x+1); % define boundary values
g2=@(x) (x^2-4*x+4); % Example 8.8 is shown
g3=@(y) y^2;
g4=@(y) y^2;
m=M+1;n=N+1; mn=m*n;
h=(xr-xl)/M;h2=h^2;k=(yt-yb)/N;k2=k^2;
x=xl+(0:M)*h; % set mesh values
y=yb+(0:N)*k;
A=zeros(mn,mn);b=zeros(mn,1);
for i=2:m-1 % interior points
  for j=2:n-1
    A(i+(j-1)*m,i-1+(j-1)*m)=1/h2;A(i+(j-1)*m,i+1+(j-1)*m)=1/h2;
    A(i+(j-1)*m,i+(j-1)*m)=-2/h2-2/k2;
    A(i+(j-1)*m,i+(j-2)*m)=1/k2;A(i+(j-1)*m,i+j*m)=1/k2;
    b(i+(j-1)*m)=f(x(i),y(j));
  end
end
for i=1:m % bottom and top boundary points
  j=1;A(i+(j-1)*m,i+(j-1)*m)=1;b(i+(j-1)*m)=g1(x(i));
  j=n;A(i+(j-1)*m,i+(j-1)*m)=1;b(i+(j-1)*m)=g2(x(i));
end
for j=2:n-1 % left and right boundary points
  i=1;A(i+(j-1)*m,i+(j-1)*m)=1;b(i+(j-1)*m)=g3(y(j));
  i=m;A(i+(j-1)*m,i+(j-1)*m)=1;b(i+(j-1)*m)=g4(y(j));
end
v=A\b; % solve for solution in v labeling
w=reshape(v(1:mn),m,n);  %translate from v to w
mesh(x,y,w')

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-20 01:24:19

根据您的问题描述,我更改了以下内容并得到了答案:

代码语言:javascript
复制
h=1/2;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43506085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档