精华内容
下载资源
问答
  • 实验目的:(1) 学习用复化辛普森公式及龙贝格方法求解积分并掌握这种方法。(2)了解这些辛普森公式及龙贝格方法的概念,参考课本写出用复化辛普森算法以及龙贝格方法计算目标题目的程序,在matlab 中实现,并用...

    一、实验目的及题目

    1. 实验目的:

    (1) 学习用复化辛普森公式及龙贝格方法求解积分并掌握这种方法。

    (2)了解这些辛普森公式及龙贝格方法的概念,参考课本写出用复化辛普森算法以及龙贝格方法计算目标题目的程序,在matlab 中实现,并用matlab 内置的函数计算出结果,并提出存在的问题。

    2. 题目:

    利用复化辛普森公式和龙贝格方法计算下列积分: (1)dx e x ?-5

    .002

    (2)dx x x ?20

    2sin )2sin(cos π

    二、实验用仪器设备、器材或软件环境 计算机、matlab 软件。

    三、实验原理、程序框图、程序代码 1.实验原理:

    根据微积分学基本定理,若被积函数f(x)在区间[a,b]上连续,只要能找到f(x)的一个原函数F(x),便可利用牛顿-莱布尼茨公式求得积分值。但会经常遇到如下问题:找不到用初等函数,找到了原函数,但因表达式过于复杂而不便计算等等。此时则不能用牛顿-莱布尼茨公式,因此有必要研究如下公式。 1)复化求积公式及原理

    由于高阶插值的不稳定性,为了提高计算积分的精度,可把积分区间分为若干个

    小区间,将()I f 写成这些小区间上的积分之和,然后对每一个小区间上的积分应用到辛普森公式,或柯特斯公式,并把每个小区间上的结果累加,所得到的求积公式就称为复化求积公式。

    辛普森公式的数值积分公式为:

    ?

    +++-≈

    b

    a

    b f b a f a f a b dx x f )]()2

    (

    4)([6

    )(

    展开全文
  • 包含代码和文档 采用复化梯形公式和复化辛普森公式求积分,并与精确值进行比较得下表。 采用复化梯形公式和复化辛普森公式求积分,并与精确值进行比较得下表。
  • 文件中包含了4种数值积分方法,分别是复化梯形法,复化辛普森法,龙贝格法,三点高斯公式,对于求解复杂函数的积分问题很有帮助。是学习计算方法和数值积分的好代码。
  • 数值分析:梯形公式 、辛普森公式、复化梯形公式、复化辛普森公式 Python实现梯形公式 、辛普森公式、复化梯形公式、复化辛普森公式 数值求积公式概念 梯形公式与辛普森公式 梯形公式与辛普森公式的余项 复化求积...

    数值分析:梯形公式 、辛普森公式、复化梯形公式、复化辛普森公式

    Python实现梯形公式 、辛普森公式、复化梯形公式、复化辛普森公式

    数值求积公式概念

    你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    梯形公式与辛普森公式

    在这里插入图片描述

    梯形公式与辛普森公式的余项

    在这里插入图片描述

    复化求积公式

    在这里插入图片描述

    复化梯形公式与其余项

    在这里插入图片描述

    复化辛普森公式与其余项

    在这里插入图片描述

    Python实现四种公式.

    题目.

    Python编写梯形公式、辛普森公式、复化梯形公式、复化辛普森公式
    并利用其分别求解sqrt(x) * log(x) 与 sin(x)/x 在(0,1)上的积分。

    具体代码实现:

    import math
    import numpy as np
    import matplotlib.pyplot as plt
    #待求解数值积分sqrt(x) * log(x)
    def f1(x):
        if (float(np.fabs(x))<1e-15) :
            return 0
        y=np.sqrt(x) * np.log(x)
        return y
    #待求解数值积分sin(x)/x
    def f2(x):
        if (float(np.fabs(x)) < 1e-15):
            return 1
        y=np.sin(x)/x
        return y
    #梯形公式 f为待求解积分 a为积分下限 b为积分上限
    def TX(f,a,b):
        TX = 0.5 * (b - a) * (f(a) + f(b))
        print("梯形公式计算结果为:TX = ", TX)
    #辛普森公式 f为待求解积分 a为积分下限 b为积分上限
    def XPS(f,a,b):
        XPS = (b-a)*(f(a)+4*f((a+b)/2)+f(b))/6.0
        print("辛普森公式计算结果为:XPS = ", XPS)
    #复化梯形公式 f为待求解积分 a为积分下限 b为积分上限 n为区间等分数
    def FHTx(f,a,b,n):
        ti=0.0
        h=(b-a)/n
        ti=f(a)+f(b)
        for k in range(1,int(n)):
            xk=a+k*h
            ti = ti + 2 * f(xk)
        FHTx = ti*h/2
        print("复化梯形公式计算结果为:FHTx = ", FHTx)
    #复化辛普森公式 f为待求解积分 a为积分下限 b为积分上限 n为区间等分数
    def FHXPs(f,a,b,n):
        si=0.0
        h = (b - a) / (2 * n)
        si=f(a)+f(b)
        for k in range(1,int(n)):
            xk = a + k * 2 * h
            si = si + 2 * f(xk)
        for k in range(int(n)):
            xk = a + (k * 2 + 1) * h
            si = si + 4 * f(xk)
        FHXPs = si*h/3
        print("复化辛普森公式计算结果为:FHXPs = ", FHXPs)
    
    def main():
        a = input("a = ")  # 积分下限
        b = input("b = ")  # 积分上限
        a = float(a)  # 强制转换为float类型
        b = float(b)
        n = input("n = ") #将区间分成为n等份
        n = float(n)
        #TX(f2,a,b) #调用梯形公式求解
        #XPS(f2,a,b) #调用辛普森公式求解
        #FHTx(f2,a,b,n) #调用复化梯形公式求解
        FHXPs(f2,a,b,n) #调用复化辛普森公式求解
    
    
    if __name__ == '__main__':
        main()
    
    展开全文
  • 自编Python程序实现数值计算矩形区域二重积分,使用复化辛普森法。以函数f=xsiny在0和pi/2区域上的积分为例。网格节点数m,n需为2的倍数。对于非矩形区域可以使用虚拟节点和区域,填补为矩形区域后计算,填补区域上...
  • 复化梯形公式和复化辛普森公式的对比分析与应用,刁红,赵晓慧, 通过结合复化梯形公式和辛普森公式概念和性质的论述,将其进行对比和示例的演示,诣在了解数值分析在实际中的应用以及复化积分
  • 复化辛普森Simpson求积公式 c语言实现 数值积分

    复化辛普森Simpson求积公式 c语言实现 数值积分

    标签:计算方法实验


    /*
        本实验用复化辛普森求积公式求sinx在[1, 2]的定积分。
    */
    #include <stdio.h>
    #include <math.h>
    
    double f(double x){
        return sin(x);
    }
    
    double Simpson(double a, double b, int n){
        double h = (b - a) / n, s1 = f(a + h / 2), s2 = 0;
    
        for(int i = 1; i < n; i++){  //1 <= k <= n - 1
            s1 += f(a + i * h + h / 2);
            s2 += f(a + i * h);
        }
        return h * (f(a) + 4 * s1 + 2 * s2 + f(b)) / 6;
    }
    
    int main(){
        int n = 8;  //区间等分数
        double a = 1, b = 2;  //上下限
    
        printf("answer = %f\n", Simpson(a, b, n));
        return 0;
    }
    

    实验结果
    output

    展开全文
  • 复化辛普森公式求二重积分matlab源码 直接拷贝到matlab编辑器,傻瓜式操作。具体算法自行探究,网上都有,小编只提供代码。用的好的请加个关注,篱落~~成殇~~再次先行谢过。 %%%%%%%%%% 2020.6.5 %%%%%%%%% %%%%...

    复化辛普森公式求二重积分matlab源码

    直接拷贝到matlab编辑器,傻瓜式操作。具体算法自行探究,网上都有,小编只提供代码。用的好的请加个关注,篱落~~成殇~~再次先行谢过。

    %%%%%%%%%%     2020.6.5        %%%%%%%%%
    %%%%%%%%%%复化Simpson公式求二重积分%%%%%%%%%
    %%%%%%%%%%     Liu Deping      %%%%%%%%%
    clear all;
    %%%被积函数及积分上下限导入;
    s=input('请输入函数表达式:f = ','s');
    f=inline(s);
    a = input('请输入积分变量x左边界a的值:');
    b = input('请输入积分变量x右边界b的值:');
    c = input('请输入积分变量y左边界c的值:');
    d = input('请输入积分变量y右边界d的值:');
    h1 = input('请输入积分变量x步长h1的值:');
    h2 = input('请输入积分变量y步长h2的值:');
    m=round((b-a)/h1);
    n=round((d-c)/h2);
    %%%系数表T,t[i,j]为复化梯形公式的系数;
    T=zeros(m+1,n+1);
    R=[1,4,1;4,16,4;1,4,1];
    for p=0:m/2-1
        for q=0:n/2-1
            for i=1:3
                for j=1:3
                    T(i+2*p,j+2*q)=T(i+2*p,j+2*q)+R(i,j);
                end
            end
        end
    end
    fprintf('系数表:');
    T
    %%%计算各二维节点函数值,并存放于矩阵F中;
    F=zeros(m+1,n+1);
    for i=0:m
        for j=0:n
           F(i+1,j+1)=f(a+i*h1,c+j*h2);    
        end
    end 
    %%%结果输出;
    format long;
    fprintf('各节点函数值;')
    F
    fprintf('复化Simpson公式计算结果;')
    Snm=(b-a)*(d-c)/(9*m*n)*sum(sum(T.*F))
    

    下面附上一个例题吧,感受一下代码的强大。
    在这里插入图片描述
    只看第(2)问,利用辛普森公式计算积分。(关于第一问的代码可以去关注上一篇文章〈复化梯形公式公式求二重积分matlab源码〉)
    步骤:
    1.复制代码到matlab编辑器,点击运行;
    2.按照提示输入:

    3.得到结果(包括系数、节点函数值和积分结果):
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果代码对你有帮助,请加一下关注,如果有问题可以私聊!最后,再次感谢喜欢我的小伙伴。

    展开全文
  • %下面除了龙贝格外,其他均以此fun函数作为被积函数 %梯形、辛普森、科特斯:都是已知积分上下限和分段数,求解积分近似值。 function a = fun(x) a = cos(x*x);...% Tn :复化梯形积分结果 h = (xR-x...
  • C++实现复化辛普森公式求积分算法

    千次阅读 2019-09-21 20:51:21
    取 n=10,利用复化辛普森公式计算积分: 3. 程序代码 # include using namespace std ; double fun ( double x ) { return 4 / ( 1 + x * x ) ; } double Simpson ( ...
  • 数值积分 复化求积法就是将求积区间[a,b]划分为n等份,步长h=(b-a)/n,等分点为xi=a+ih,i=0,1...(2): 复化辛普森法设计思想:即用simpson公式求每个子段[xi,xi+1]上的积分值。然后再将各子段积分值求和,得到公式: (3)
  • 自适应复化辛普森公式求积算法(C语言实现)利用复化辛普森公式求积分自适应步骤基于C语言实现的代码 利用复化辛普森公式求积分自适应步骤 h为步长,a为积分下限,b为积分上限,f为积分函数,n为划分的积分次数,ε...
  • 数值分析实验报告 [1] 掌握复化梯形和辛普森数值积分法的基本原理和方法 实 验 [2] 编程 MATLAB程序实现复化梯形和辛普森数值积分 目 的 1. 编程序实现复化梯形数值积分求积公式 function y=f(x) y=sqrt(x*log(x; 实...
  • 数值分析实验报告 实 [1] 掌握复化梯形和辛普森数值积分法的基本原理和方法 验 目 [2] 编程 MA TLAB 程序实现复化梯形和辛普森数值积分 的 1. 编程序实现复化梯形数值积分求积公式 function y=f(x) y=sqrt(x*log(x;...
  • 复化辛普森公式: a = 0 ; b = 1 ; e = 1e-6 ; N = 20 ; n = 0 ; h0 = ( b-a ) /2 ; S0 = h0/3* ( f1 ( a ) +f1 ( b ) +4*f1 (( a + b ) / 2 )) ; while n < N n = n+1 ; h1 = h0/2 ; sum1 = 0 ; ...
  • System.out.print("复化辛普森计算得出:"+s); } public static void certainStep(double a,double b,double eps){ boolean done = false; int n = 1; double h=b-a; double tn = h*(0.8771925739840309+fun(b))/2;...
  • 这是一段复化梯形法和辛普森数值积分的matlab实现程序。
  • 第五章、数值积分5.1Newton-Cotes公式目标:定积分 难点: 原函数不好求思路: ,其中 是插值多项式5.1.1梯形求积公式使用 两个点的插值多项式. 用梯形面积近似积分5.1.2抛物线形求积公式(Simpson公式)使用 三个点的...
  • 以函数f(x)=sin(x)/x为例,求解其在[0,1]区间的定积分。 #include #include #include #include #include using namespace std; const int inf=0x3f3f3f3f; double f(double x)//定义和修改函数f(x) { if...
  • # 龙贝格法求积分import matha=0 # 积分下限b=1 # 积分上限eps=10**-5 # 精度T=[] # 复化梯形序列S=[] # Simpson序列C=[] # Cotes序列R=[] # Romberg序列def func(x): # 被积函数y=math.exp(-x)return ydef Romberg...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

复化辛普森积分