第二章椭圆型方程的有限差分法
- 格式:ppt
- 大小:626.00 KB
- 文档页数:77
实验五 椭圆型方程差分解法一、 实验题目:矩形区域Ω上Laplace 方程的Dirichlet 问题⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧===-==∂∂+∂∂====0|4sin |0|)3(|030402222y y x x u xu u y y u y u xu π 4040303030,40≤≤≤≤≤≤≤≤<<<<x x y y y x二、 实验要求:1、建立内点的五点差分格式。
(取h=1)2、建立包括边界点在内的五点差分格式方程组。
3、用逆矩阵法或雅克比迭代迭代法求解方程组。
4、计算结果(保留至小数点后4位)。
5、由计算结果,写出结论。
三、实验步骤1、建立Laplace 方程与边界条件的差分格式(内节点6个,边界点10个)2、建立6个未知量的差分方程组。
41,,1,11,-+-++++=j i j i j i j i ij u u u u u3、建立6个未知量的矩阵方程。
令],,,,,[232221131211u u u u u u u h =,则6个未知量的矩阵方程为g Hu h h =21其中⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=B I I B I I B H ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----=4114114B 4、利用边界条件编制程序计算内节点处的数值解lm u (3,2,1=l 2,1=m ) 四、实验源代码 #include<stdio.h> #include<math.h> #define e 0.000001 void main(){ int i,j,k,flag=1,sum=0;doublea[5][4]={{0,2,2,0},{0.707,0,0,0},{1,0,0,0},{0.707,0,0,0},{0,0,0,0}}; double b[6],c[6]; while(flag) { sum++; flag=0;k=0;for(i=1;i<=3;i++) for(j=1;j<=2;j++) {b[k]=a[i][j];a[i][j]=(a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1])/4;c[k]=a[i][j];k++;}for(k=0;k<=5;k++)if(fabs(b[k]-c[k])>e)flag=1;}for(k=0;k<=5;k++)printf("%f\n",b[k]);printf("%d",sum);}五、实验结果:.1,63850525.1,u.1[.1,4123]5369.2,.0,53629685h。
有限差分法(Finite Difference Method)是一种数值方法,用于求解偏微分方程(PDEs)的近似解。
这种方法通过将连续的微分方程离散化,将其转化为一系列代数方程,从而在计算机上进行求解。
有限差分法特别适用于求解具有固定边界条件和初始条件的偏微分方程。
以下是有限差分法求解偏微分方程的基本步骤:1. 网格划分:首先,将问题的连续域划分为离散的网格点。
对于二维问题,这通常涉及到在空间和时间上进行网格划分,形成网格点的集合。
2. 离散化:使用差分公式将微分方程中的导数替换为差分。
例如,一阶导数可以用前向差分或后向差分近似,而二阶导数可以用中心差分近似。
3. 构建差分方程:在每个网格点上应用差分公式,将微分方程转化为代数方程。
对于边界条件,也需要进行相应的离散化处理。
4. 求解线性方程组:差分方程通常会导致一个线性方程组。
对于大型问题,这可能需要使用迭代方法或直接求解器来找到解。
5. 稳定性分析:在求解过程中,需要确保数值解的稳定性。
这涉及到对时间步长和空间步长的选择,以满足CFL(Courant-Friedrichs-Lewy)条件。
6. 迭代求解:对于时间依赖的问题,如热传导或波传播,可以通过时间步进方法(如显式或隐式方法)来迭代求解。
7. 结果分析:最后,分析数值解以验证其准确性,并与解析解(如果存在)进行比较。
有限差分法在处理规则区域和简单边界条件的问题时非常有效。
然而,对于具有复杂几何形状或边界条件的问题,可能需要更高级的数值方法,如有限元方法(FEM)或边界元方法(BEM)。
在实际应用中,有限差分法通常与计算机软件结合使用,如MATLAB、Python的SciPy库等,以便于高效地处理大规模问题。
有限差分法基本原理有限差分法(Finite Difference Method)是一种常用的数值计算方法,用于求解偏微分方程的近似解。
其基本原理是将连续的偏微分方程转化为网格上的差分方程,通过对差分方程进行数值求解,得到问题的数值解。
首先,有限差分法将求解区域划分为一个个小网格。
通常使用矩形网格(二维)或立方体网格(三维),这些小网格称为离散点。
每个离散点上的函数值表示在该点处的近似解。
然后,将偏微分方程中的导数用差商来代替。
对于一阶导数,可以使用中心差商、前向差商或后向差商等。
中心差商是最常用的一种,它使用左右两个离散点的函数值来逼近导数的值。
例如,对于一维情况下的导数,中心差商定义为:f'(x)≈(f(x+h)-f(x-h))/(2h)其中,h表示网格的步长。
通过调整步长h的大小,可以控制逼近的精度。
对于高阶导数,可以使用更复杂的差分公式。
例如,对于二阶导数,可以使用中心差商的差商来逼近。
具体公式为:f''(x)≈(f(x+h)-2f(x)+f(x-h))/h^2通过将导数用差商代替,将偏微分方程转化为差分方程。
例如,对于二维泊松方程:∇²u(x,y)=f(x,y)其中,∇²表示拉普拉斯算子。
u(i,j)=1/4[u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1)]-h²/4*f(i,j)其中,u(i,j)表示离散点(i,j)处的近似解,f(i,j)表示离散点(i,j)处的右端项。
最后,通过求解差分方程,得到问题的数值解。
可以使用迭代方法,例如Jacobi迭代法、Gauss-Seidel迭代法或SOR迭代法等,来求解差分方程。
迭代过程通过更新离散点上的函数值,直到满足收敛条件或达到指定的迭代次数。
总结来说,有限差分法通过将连续的偏微分方程转化为网格上的差分方程,然后通过数值求解差分方程,得到问题的近似解。
它是一种简单且高效的数值计算方法,广泛应用于科学计算、工程计算和物理仿真等领域。
椭圆问题的块中心有限差分多重网格法01 有限元法有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。
采用不同的权函数和插值函数形式,便构成不同的有限元方法。
在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。
根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。
从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法,从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格,从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。
不同的组合同样构成不同的有限元计算格式。
对于权函数,伽辽金(Galerkin)法是将权函数取为逼近函数中的基函数;最小二乘法是令权函数等于余量本身,而内积的极小值则为对代求系数的平方误差最小;在配置法中,先在计算域内选取N个配置点。
令近似解在选定的N个配置点上严格满足微分方程,即在配置点上令方程余量为0。
插值函数一般由不同次幂的多项式组成,但也有采用三角函数或指数函数组成的乘积表示,但最常用的多项式插值函数。
有限元插值函数分为两大类,一类只要求插值多项式本身在插值点取已知值,称为拉格朗日(Lagrange)多项式插值;另一种不仅要求插值多项式本身,还要求它的导数值在插值点取已知值,称为哈密特(Hermite)多项式插值。
单元坐标有笛卡尔直角坐标系和无因次自然坐标,有对称和不对称等。
常采用的无因次坐标是一种局部坐标系,它的定义取决于单元的几何形状,一维看作长度比,二维看作面积比,三维看作体积比。