实验5.1 (高斯数值积分方法用于积分方程求解)
问题提出:线性的积分方程的数值求解,可以被转化为线性代数方程组的求解问题。而线性代数方程组所含未知数的个数,与用来离散积分的数值方法的节点个数相同。在节点数相同的前提下,高斯数值积分方法有较高的代数精度,用它通常会得到较好的结果。
实验内容:求解第二类Fredholm积分方程
首先将积分区间[a,b]等分成n份,在每个子区间上离散方程中的积分就得到线性代数方程组。
实验要求:分别使用如下方法,离散积分方程中的积分
1.复化梯形方法;2.复化辛甫森方法;3.复化高斯方法。求解如下的积分方程。
1),方程的准确解为;
2),方程的准确解为;
比较各算法的计算量和误差以分析它们的优劣。
实验5.2(高维积分数值计算的蒙特卡罗方法)
问题提出:高维空间中的积分,如果维数不很高且积分区域是规则的或者能等价地写成多重积分的形式,可以用一元函数积分的数值方法来计算高维空间的积分。蒙特卡罗方法对计算复杂区域甚至不连通的区域上的积分并没有特殊的困难。
实验内容:对于一般的区域,计算其测度(只要理解为平面上的面积或空间中的体积)的一般方法是:先找一个规则的区域A包含,且A的测度是已知的。生成区域A中m个均匀分布的随机点,如果其中有n个落在区域中,则区域的测度m()为n/m。函数f(x)在区域上的积分可以近似为:区域的测度与函数f(x)在中n个随机点上平均值的乘积,即
实验要求:假设冰琪淋的下部为一锥体而上面为一半球,考虑冰琪淋体积问题:计算锥面上方和球面内部区域的体积。如果使用球面坐标,该区域可以表示为如下的积分:
用蒙特卡罗方法可以计算该积分。
另一方面,显然这样的冰琪淋可以装在如下立方体的盒子里
而该立方体的体积为8。只要生成这个盒子里均匀分布的随机点,落入冰琪淋锥点的个数与总点数之比再乘以8就是冰琪淋锥的体积。比较两种方法所得到的结果。
类似的办法可以计算复杂区域的测度(面积或体积)。试求由下列关系所界定区域的测度:
相关MATLAB函数提示:
diff(x) 如果x是向量,返回向量x的差分;如果x是矩阵,则按各列作差分 diff(x,k) k阶差分 q=polyder(p) 求得由向量p表示的多项式导函数的向量表示q Fx=gradient(F,x) 返回向量F表示的一元函数沿x方向的导函数F'(x),其中x是与F同维数的向量 z=trapz(x,y) x表示积分区间的离散化向量;y是与x同维数的向量,表示被积函数;z返回积分的近似值 z=guad(fun,a,b,tol) 自适应步长Simpson积分法求得Fun在区间[a,b]上的定积分,Fun为M文件函数句柄,tol为积分精度 z=dblquad(fun,a,b,c,d,tol,method) 求得二元函数Fun(x,y)的重积分 z=triplequad(fun,a,b,c,d,e,f,tol,method) 求得三元函数Fun(x,y,z)的重积分 |