求解微分方程数值解法问题,五点差分格式求解椭圆型偏微分方程。用MATLAB解决。 5
一定要有详细的解析步骤1.用五点差分格式求解椭圆型偏微分方程:-u(xx)-u(yy)=(pi^2-1)*e^x*sin(pi*y),0<x<2,0<y<1边界条件:u|...
一定要有详细的解析步骤
1.用五点差分格式求解椭圆型偏微分方程:
-u(xx)-u(yy)=(pi^2-1)*e^x*sin(pi*y),0<x<2, 0<y<1
边界条件:u|=e^x*sin(pi*y) 展开
1.用五点差分格式求解椭圆型偏微分方程:
-u(xx)-u(yy)=(pi^2-1)*e^x*sin(pi*y),0<x<2, 0<y<1
边界条件:u|=e^x*sin(pi*y) 展开
展开全部
1.划分网格
把[0,2]×[0,1]的区域划分成M×N个点,即离散的xi=2i/M,yj=j/N,i=0,...,M-1,j=0,...,N-1
在网格上的u的值就是uij,就是问题的解
2.离散方程
uxx=2uij-ui-1,j-ui+1,j,uyy=2uij-ui,j-1-ui,j+1(这就是五个点)
在第i,j个点的方程为(i,j≠0,M,N,即不在边界上,有(M-2)×(N-2))
-(2uij-ui-1,j-ui+1,j)-(2uij-ui,j-1-ui,j+1)=(pi^2-1)*e^(2i/M)*sin(pi*(j/N))
边界处用边界条件(有M×2+2(N-2)个,保证一起有MN个方程求解MN个未知量)
uij=(pi^2-1)*e^(2i/M)*sin(pi*(j/N))
那么整理就是一个矩阵方程Ax=b的形式,这里还有一个矩阵拉直的问题,因为上面写出来的是一个矩阵方程,而不是线性方程组。一般是按列拉直。
3.求解这个方程就OK了,这部才是matlab干的活
不负责任的告诉你可以这么求,x=inv(A)*b就OK啦。
因为离散点多了,matlab是解不了大规模的。加速算法就要看结构了
主要问题是列方程,系数矩阵A和右端b都有特殊结果吧,自己写吧
把[0,2]×[0,1]的区域划分成M×N个点,即离散的xi=2i/M,yj=j/N,i=0,...,M-1,j=0,...,N-1
在网格上的u的值就是uij,就是问题的解
2.离散方程
uxx=2uij-ui-1,j-ui+1,j,uyy=2uij-ui,j-1-ui,j+1(这就是五个点)
在第i,j个点的方程为(i,j≠0,M,N,即不在边界上,有(M-2)×(N-2))
-(2uij-ui-1,j-ui+1,j)-(2uij-ui,j-1-ui,j+1)=(pi^2-1)*e^(2i/M)*sin(pi*(j/N))
边界处用边界条件(有M×2+2(N-2)个,保证一起有MN个方程求解MN个未知量)
uij=(pi^2-1)*e^(2i/M)*sin(pi*(j/N))
那么整理就是一个矩阵方程Ax=b的形式,这里还有一个矩阵拉直的问题,因为上面写出来的是一个矩阵方程,而不是线性方程组。一般是按列拉直。
3.求解这个方程就OK了,这部才是matlab干的活
不负责任的告诉你可以这么求,x=inv(A)*b就OK啦。
因为离散点多了,matlab是解不了大规模的。加速算法就要看结构了
主要问题是列方程,系数矩阵A和右端b都有特殊结果吧,自己写吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询