首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MATLAB 与 C 语言的混合编程实战之辛普森积分法、自适应辛普森积分

题目大意是让你用c系语言实现辛普森积分法对定积分的粗略估计,所谓辛普森积分法即为: 定义:辛普森法则(Simpson's rule)是一种数值积分方法,是牛顿-莱布尼茨公式的特殊形式,以二次曲线逼近的方式取代矩形或梯形积分公式...,以求得定积分的数值近似解。...那很明显可以看出,改进积分结果有两种方法,一是二分区间之后再次二分不断逼近,二是从积分间隔入手,不断缩小积分间隔 给出Matlab-C++代码 //Author:glm #include...),c(cnt); end plot(a,b,'r',a,c,'b') \end{lstlisting} \section{Experiment Theory and Results} Given...c|c|c|} \hline Interval & 0.01 & 0.10 & 0.25\\ \hline Results & \textbf{2.551496047169967}& \textbf

1.9K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数值积分|高斯积分

    如果在区间内部找两个点,且通过这两个点的直线与区间端点构成的梯形面积最大限度地接近精确值,即图b中A1+A2=A3,这就是高斯积分的思路。 ? 两点高斯积分公式 其中C0,C1为权系数。...联立解得 于是,两点高斯积分公式为 式(1)很好理解,就是一个矩形面积嘛。对于式(2),取一般的一次函数 ,如图c ? 式(2)右边的积分就是梯形的面积,就是所熟知的上底加下底乘高除以二。...还可以用梯形中位线表示 上式的意义是:一次函数的高斯积分需要一个高斯积分点即x=0的位置,确定的权重是2,积分点的函数值是f(0)。...对于式(3),取一般的二次函数 ,可以验证: 上式的意义是:二次函数的高斯积分需要两个高斯积分点 和 ,权重各为1,就可以计算积分了。...也就是说,n个高斯积分点可以计算2n-1次及以下的函数积分。 ? 高斯积分点是强制使这种数值积分结果与前2n-1阶多项式的积分相等解出来的。比如你打算使用n个点,你还有n个未知权重。

    5.7K30

    曲线积分:沿着曲线的积分

    根据被积函数的不同,曲线积分可以分为两类: 第一型曲线积分: 其中,C为积分路径,f(x,y)为被积函数,ds为曲线C上的弧长微元。 被积函数为一个标量函数(即一个数值函数)。...∫_C f(x,y)ds C为积分路径,f(x,y)为被积函数,ds为曲线C上的弧长微元。 第二型曲线积分: 其中,C为积分路径,F(x,y)为向量场,dr为曲线C上的微元向量。...∫_C F(x,y)·dr C为积分路径,F(x,y)为向量场,dr为曲线C上的微元向量,·表示向量点积。 参数方程法: 将曲线C用参数方程表示,然后将曲线积分转化为定积分。...设D为平面上的一个简单区域,C是D的正向光滑闭曲线,P(x,y)和Q(x,y)在D上具有连续的一阶偏导数,则有: ∮C Pdx + Qdy = ∬D (∂Q/∂x - ∂P/∂y)dxdy 其中: ∮C...表示沿闭曲线C的线积分 ∬D 表示在区域D上的二重积分 ∂Q/∂x 和 ∂P/∂y 分别表示函数Q和P对变量x和y的偏导数 格林公式只适用于简单区域和光滑闭曲线。

    14710

    数值积分|自适应梯形积分

    在区间 上,采用梯形公式计算 的定积分 如果将区间 二等分,采用梯形公式计算 的定积分 其中 如果将区间 三等分,采用梯形公式计算 的定积分 其中 由此可以得到递推式 表示两次迭代的相对误差...python代码 import math ###自适应梯形公式求积分 ### y = 1/( 1+x^2 ) def Func(x): return 1/( 1+pow(x,2) ) def...AdaptiveTrapzCtrl(Func, a, b, eps = 1e-6): kmax = 9000 #最大迭代步数 h = b-a # 积分区间 n...= 1e-6) print(T) 计算结果是0.24497869339807107,精确值为: 算法基本原理:把原区间分为一系列小区间(n份),在每个小区间上都用小的梯形面积来近似代替原函数的积分...,当小区间足够小时,就可以得到原来积分的近似值,直到求得的积分结果满足要求的精度为止。

    3.2K30

    Wolfram 语言 13.1 版中的分数阶微积分

    #Wolfram语言 酷炫的 #一行代码 #朱利亚集合 #化学分子腺嘌呤三维图 #希尔伯特曲线 #社区图 x 的半导数是多少?...我们也意识到这个主题的重要性和其潜力,因此在最近发布的 Wolfram 语言 13.1 版本中增加了对分数阶微分和积分的支持。...下面的动画显示了与普通函数相比,平方函数的卡普托分数导数的行为——即分数阶导数“插值”在整数阶的导数之间: Wolfram语言中的 黎曼-刘维尔分数阶微分积分 我们在 Wolfram 语言版本 13.1...在 Wolfram 语言 13.1 中,我们实现了分数微积分的两个基本运算符(FractionalD 和 CaputoD 函数),并且还付出了巨大的努力来增加对通过 DSolve 和 LaplaceTransform...另外,我要感谢我的同事 Aram Manaselyan 和 Hrachya Khachatryan 在 Wolfram 语言中实现分数阶微积分方面所做的工作;Oleg Marichev 教授对分数阶微积分理论和其中的符号计算算法的宝贵贡献

    1.1K20

    广义积分

    反常积分又叫广义积分,是对普通定积分的推广,指含有无穷上限/下限,或者被积函数含有瑕点的积分,前者称为无穷限广义积分,后者称为瑕积分(又称无界函数的反常积分)。 ?...因此,有必要对定积分的概念加以推广,使之能适用于上述两类函数。这种推广的积分,由于它异于通常的定积分,故称之为广义积分,也称之为反常积分。...(区间内点f(c)无界) 3.混合反常积分 对于上下限均为无穷,或被积分函数存在多个瑕点,或上述两类的混合,称为混合反常积分。...如果放宽闭区间约束,即一个定积分的上限或者下限趋于无穷大,则称此积分为无穷区间上的广义积分。 如果放宽函数有界的约束,即被积函数无界,则称此积分为无界函数的广义积分,亦可称为瑕积分。...芝诺悖论说得是,一个人从A点走到B点,需经过AB的中点,在到达AB中点C,又要经过AC中点D……结果是这个人一直在原地,无法向前前进一点。这个悖论其实是将点的无穷与时间无穷等价看待,明显不对。

    1.6K10

    数值积分|自适应辛普森积分公式

    在 数值积分| 辛普森公式 提到,辛普森积分最简单的形式是 也就是说至少要三个积分点,两个积分子区间。所以,自适应辛普森积分公式要从S1起步,即 ?...python代码 import math ###自适应辛普森公式求积分 ### y = 1/( 1+x^2 ) def Func(x): return 1/( 1+pow(x,2) )...def AdaptiveSimpsonCtrl(Func, a, b, eps = 1e-6): kmax = 9000 #最大迭代步数 h = b-a # 积分区间...计算结果是0.7853981628062056,精确值为 算法基本原理:把原区间分为一系列小区间(n份),在每个小区间上都用小的梯形面积来近似代替原函数的积分,当小区间足够小时,就可以得到原来积分的近似值...,直到求得的积分结果满足要求的精度为止。

    3.9K31

    【C语言】初识C语言(常见的C语言概念)

    一.C语言是什么?...语言大致可以分为自然语言和计算机语言,自然语言就是人与人日常交流的语言,如汉语、英语、日语等等,计算机语言又可以分为机器语言、汇编语言、高级语言,C语言就是一个高级语言 机器语言:就是由二进制01组合起来的计算机可以直接识别的程序语言是一种面向机器的语言...,比起低级语言易懂易学,可移植性好,编程效率高,但是执行效率没有低级语言高,需要经过编译或解释,C语言就是采用编译的一种高级语言 二.为什么选择C语言 C语言常年霸榜各类高级语言前三,属于基础必学的语言...,其功能强大,而且许多语言都很相似,如果学好C语言,对学习其他语言也有很大帮助 三.编译器的选择 C语言是一门编译型的语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令 常见的编译器有:msvc...+文件,这里没有C文件选项,因为C++和C基本不分家,将后缀名.cpp改为.c就可以了,创建好后就可以开始写我们的第一个C语言程序了 注意:其中.c的文件叫源文件,.h的文件叫头文件(head),后面会慢慢讲到

    13510

    【C++】C 语言与 C++ 语言的关系 ( C 语言发展 | C 语言缺陷 | C 语言 + 面向对象 + 高级语言特性 | C++ 语言增加内容 | C 语言与 C++ 语言应用场景 )

    一、C 语言发展 C 语言 被开发之前 并 没有经过 缜密 的 设计 , 而是在 使用过程中 逐渐完善的 ; C 语言发展经过如下阶段 : 初始阶段 : 1972年至1978年 , C语言 初步形成 ,...C99 , C11 , C17 等标准 , 以满足新的编程需求 ; 二、C 语言缺陷 C 语言有如下缺陷 : C 语言 没有经历过 缜密的 设计过程 , 都是根据需求逐渐完善的 , 出现了很多缺陷和漏洞...2、C 语言与 C++ 语言关系 C 语言 与 C++ 语言 并 不是 竞争关系 ; C++ 语言 是 以 C 语言为基础 的 加强版本编程语言 , 可以看作是更好的 C 语言 , 在 C++ 语言...中 , 可以使用 C 语言语法 , 对 C 语言完全兼容 ; C++ 语言 包含 C 语言 , 在 C++ 代码中可以使用 C 语言的语法 , 但是在 C 语言中不能使用 C++ 的语法 ; 3、C++...语言应用场景 C 语言 和 C++ 语言的应用场景 : C语言 应用场景 : 系统软件、操作系统、编译器等 底层系统级应用 ; C++ 语言 应用场景 : 大型应用程序、游戏 等更 高级的应用 ; 在不同的

    29820

    【C语言】C语言入门知识

    一、主函数 C语言的主函数是main()函数,有且仅有一个。 例如: int main() { return 0; } 是一个标准的C语言主函数。...二、输入、输出函数 C语言中的输出函数为printf,输入函数为scanf,使用前需要引用头文件#include 。...(2)C语言中的常见单位(从小到大): bit(比特)<byte(字节)<KB<MB<GB<TB<PB<..... 1byte = 8bit 1KB = 1024byte 1MB = 1024KB...四、变量和常量 4.1 变量的使用 C语言中常量是不变的值,变量是可变的值 创建变量的使用: int age = 10; char ch = 'w'; float weight = 45.5f...4.3 常量 C语言中的常量分为字面常量,const修饰的常变量,#define 定义的标识符常量,枚举常量。 (1)字面常量:100,'w',3.14等。

    16510

    数值积分|第二类反常积分

    1 概述 第二类反常积分是值积分区间包含奇异点(singular points)。常规计算方法是将积分积分区间在奇异点内收,然后按照定积分来处理,再将计算结果取极限。如图1所示: ? ?...2 算法实现 image.png python代码如下: import math ### 第二类反常积分数值分析 ### y = 1/sqrt(x) ### 积分区间(0, 1] def Func...return 1/ math.sqrt(x) def Improp2(Func, a, b, eps = 1e-6): ### ### a为区间的左端点,是奇异点 ###子区间积分时...def AdaptiveTrapzCtrl(Func, a, b, eps = 1e-6): kmax = 9000 #最大迭代步数 h = b-a # 积分区间...第二类反常积分的数值算法大致思路就是在奇异点附近划分一个子区间,将这个子区间二等分,将其中之一积分,剩下的再二等分,将其中之一积分,如此下去,不断扩展积分区间,若扩展前后的积分的相对误差满足要求,则停止计算

    2.3K30
    领券