自适应Simpson法与积分初步】的更多相关文章

前言 不知道为什么,今天感觉想要写一下数学的东西,然后就看了一下我还有这个模板不会,顺手写了一下. 没有学过微积分的最好还是看一下求导为好. 求导 听说很多人都不会求导,我写一下吧qwq 令\(f(x)=ax^2+bx+c\) 那么显然这个东西求导的话就是: \(f'(x)=\frac{\triangle{y}}{\triangle{x}}\) 那么\(\triangle{y}=f(x+\triangle{x})-f(x)\) 你把这个东西拆开: \[ \triangle{y}= \\ f(x+…
题面 传送门 题解 我还好奇自适应辛普森法干嘛用的呢--突然想起来积分的一个用处就是求曲边图形的面积-- 我们先来考虑一下这些投影是什么形状 一个圆的投影还是它自己 一个圆锥的投影是一个圆加上一个点,以及这个点和圆的两条切线(如果点在圆内部就没有这两条切线) 一个圆台的投影是两个圆加上它们的公切线 最后这个鬼畜的图形大概是长这个样子 暴力求解即可 我们可以看做这是一个鬼畜的函数,我们要求它在这一段上的积分,那么就是这个封闭图形的面积了,自适应辛普森法即可 //minamoto #include<…
模板题~ QAQ话说Simpson法的原理我还是不太懂-如果有懂的dalao麻烦告诉我~ 题意:每次给一个椭圆的标准方程,求夹在直线$x=l$和$x=r$之间的面积 Simpson法 (好像有时候也被叫Simpson公式,Simpson积分什么的-看到这里的人应该都知道这个是用来干嘛的吧) 对一段小区间$[l,r]$取奇数个点,然后把区间平均分成$n$段:$x_0,x_1,x_2, \cdots,x_n$,每段长度$\Delta x$,那么: $\int_l^r f(x) dx \approx…
关于自适应Simpson法的介绍可以去看我的另一篇blog http://www.lydsy.com/JudgeOnline/problem.php?id=1502 题意:空间里圆心在同一直线上且底面与地面平行的若干个圆台和顶层的圆锥以$\alpha$的角度投影到地面,求投影的面积. (其实我是看po姐博客来的x) 首先把圆锥的顶点也看成一个半径为0的圆锥,对于每个高度为$h$的圆投影下去的坐标是$h/tan(\alpha)$,半径不变,而对于圆台的侧面投影下去是上下底两个圆的切线. 关于两个圆…
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1017  Solved: 562[Submit][Status][Discuss] Description Input 文件的第1行包含一个整数n和一个实数alpha,表示柠檬树的层数和月亮的光线与地面夹角(单位为弧度).第2行包含n+1个实数h0,h1,h2,…,hn,表示树离地的高度和每层的高度.第3行包含n个实数r1,r2,…,rn,表示柠檬树每层下底面的…
自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下计算出较为平滑的函数的积分的比较简单优美的算法. (PS:这玩意的时间复杂度?大概是O(玄学)吧) 引子 积分的定义是面积,那么我们可以通过最基本的切割法来求出一定精度下面积. (ps:就是0.0000--01那样扫过去,把这个当做宽,把函数值当做高,然后乘起来当做面积) 然而这个耗费的时间太多,而…
题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月光的照射下柠檬树投在地面上的影子是如此的清晰,马上想到了一个问题:树影的面积是多大呢?李哲知道,直接测量面积是很难的,他想用几何的方法算,因为他对这棵柠檬树的形状了解得非常清楚,而且想好了简化的方法.李哲将整棵柠檬树分成了n 层,由下向上依次将层编号为1,2,…,n.从第1到n-1 层,每层都是一个…
题面 传送门 题解 据说这函数在\(x>15\)的时候趋近于\(0\) 据说当且仅当\(a<0\)时积分发散 所以直接套自适应\(simpson\)吧-- //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i) #de…
Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1977    Accepted Submission(s): 832 Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC t…
分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了 学习自适应simpson积分:http://blog.csdn.net/greatwall1995/article/details/8639135 #include <cstdio> #include <cstring> #include <queue> #include <cmath> #include <algorithm> using namespa…
参考:https://phqghume.github.io/2018/05/19/%E8%87%AA%E9%80%82%E5%BA%94%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%B3%95/ 以及洛谷不多的题解. 辛普森推导过程就看参考吧,当然你要想看懂推导需要: 1.会高中导数那点东西,至少知道原函数怎么求. 2.粗略了解定积分. 3.知道微积分第一.第二基本定理(从知乎上找的:https://www.zhihu.com/question/21439225). 然后推导就很…
一些基本的定义在这里: [模板] 计算几何1(基础): 点/向量/线/圆/多边形/其他运算 自适应Simpson Simpson's Rule: \[ \int ^b_a f(x)dx\approx \frac{b-a}6(f(a)+4f(\frac{a+b}{2})+f(b)) \] 这是对二次函数的积分估值, 对于一, 二次函数来说都是准确的. 但是对于其他函数来说, 这只是利用二次函数进行近似. 可以采用自适应精度的手段, 使得估值接近真实结果. 详见代码. 然后这是误差估计, 详见 ad…
//很裸的积分题,直接上模板 #include<stdio.h> #include<math.h> int aa, bb; //函数 double F(double x){ -x*x/aa/aa)*bb*bb); } //三点simpson法 double simpson(double a,double b){ ; *F(c)+F(b))*(b-a)/; } //自适应simpson公式(递归过程).一直整个区间[a,b]上的三点simpson值A double asr(doubl…
P4526 [模板]自适应辛普森法2 洛谷传送门 题目描述 计算积分 保留至小数点后5位.若积分发散,请输出"orz". 输入格式 一行,包含一个实数,为a的值 输出格式 一行,积分值或orz 输入输出样例 输入 #1复制 2.33 输出 #1复制 1.51068 说明/提示 a<=50 请注意时空限制. Solution 这和辛普森公式又啥关系?上限可是正无穷! 带着好奇心,我打开了几何画板. 几何画板 这……这么快就收敛了?!?!?! 看看a=50? 随便把B放在3边上.结果…
洛谷P4525 [模板]自适应辛普森法1 与P4526[模板]自适应辛普森法2 P4525洛谷传送门 P4525题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛. 输入格式 一行,包含6个实数a,b,c,d,L,R 输出格式 一行,积分值,保留至小数点后6位. 输入输出样例 输入 #1复制 1 2 3 4 5 6 输出 #1复制 2.732937 我的理解 求面积 说明/提示 a,b,c,d∈[-10,10] -100≤L<R≤100 且 R-L≥1 So…
LINK:自适应辛普森法1 观察题目 这个东西 凭借我们的数学知识应该是化简不了的. 可以直接认为是一个函数 求定积分直接使用辛普森就行辣. 一种写法: double a,b,c,d; double f(double x){ return (c*x+d)/(a*x+b); } //区间[a,b]上的辛普森值 double simpson(double a,double b){ double c=a+(b-a)/2; return (f(a)+4*f(c)+f(b))*(b-a)/6; } //区…
题面 传送门 题解 我似乎连积分都不太熟练→_→ 总之就是对于一个原函数,我们找一个二次函数来近似它,那么有 \[ \begin{aligned} \int_a^bf(x)dx &\approx\int_a^bAx^2+Bx+C\\ &=\frac{A}{3}(b^3-a^3)+\frac{B}{2}(b^2-a^2)+C(a-b)\\ &=\frac{(b-a)}{6}(2A(b^2+ab+a^2)+3B(b+a)+6C)\\ &=\frac{(b-a)}{6}(2Ab^…
P4526 [模板]自适应辛普森法2 #include <bits/stdc++.h> using namespace std; ; double a; inline double f(double x) { return pow(x,a/x-x); } inline double simpson(double l, double r) { ; *f(mid)+f(r))*(r-l)/; } inline double asr(double l, double r, double eps, d…
P4525 [模板]自适应辛普森法1 #include <bits/stdc++.h> using namespace std; ; double a, b, c, d, l, r; inline double f(double x) { return (c*x+d)/(a*x+b); } inline double simpson(double l, double r) { ; *f(mid)+f(r))*(r-l)/; } inline double asr(double l, doubl…
题目链接 Simpson积分公式:\[\int_a^bf(x)dx\approx\frac{b-a}{6}\left[f(a)+f(b)+4f(\frac{a+b}{2})\right]\] 推导过程大概就是,令\(f(x)=Ax^2+Bx+C\),代进去求一下积分就好了? 自适应是指根据区间大小控制精度.满足精度要求时直接返回. 那个,有人知道asr是指什么吗..(什么的缩写?) //0ms 1.7MB #include <cmath> #include <cstdio> #in…
题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛. 输入输出格式 输入格式: 一行,包含6个实数a,b,c,d,L,R 输出格式: 一行,积分值,保留至小数点后6位. 输入输出样例 输入样例#1: 复制 1 2 3 4 5 6 输出样例#1: 复制 2.732937 说明 a,b,c,d∈[-10,10] -100≤L<R≤100 且 R-L≥1 辛普森积分是用$y = Ax^2 +Bx +c$去拟合给定的函数 $$\int_a^bf(x)dx\appro…
题目描述 计算积分 保留至小数点后5位.若积分发散,请输出"orz". 输入输出格式 输入格式: 一行,包含一个实数,为a的值 输出格式: 一行,积分值或orz 输入输出样例 输入样例#1: 复制 2.33 输出样例#1: 复制 1.51068 说明 a<=50 请注意时空限制. 观察到函数具有极强的收敛性 然后估算一下上界,直接上辛普森积分 // luogu-judger-enable-o2 #include<cstdio> #include<cmath>…
simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 找了一道很水的积分题试试模板…… 关于simpson要*15 网上有很具体的证明过程…… (细节移步至:http://www2.math.umd.edu/~mariakc/teaching/adaptive.pdf #include<cstdio> #include<iostream>…
http://acm.hdu.edu.cn/showproblem.php?pid=1071 解一个给定三个点的坐标二次函数某区域的积分值. 设出方程之后高斯消元得到二次函数.然后再消元得到直线. 两次积分然后相减就可以了. 把自适应辛普森改成了传入函数指针的形式,有点多此一举. 可以这样做的原因,是因为这道题保证要求的区域都是在第一象限,否则不能直接定积分. 语言:G++ #include<bits/stdc++.h> using namespace std; typedef long lo…
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int n; ; struct node { double x,y,r; }b[],a[];int cnt; bool cmp1(node aa,node bb) { retu…
Function Curve Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 203    Accepted Submission(s): 67 Problem Description Given sequences of k1, k2, … kn, a1, a2, …, an and b1, b2, …, bn. Consider fo…
对1/(1+x^2) 进行0到1的积分即使pi/4; 采用simpson方法 Func<double,double> func=(x)=>{ return 1/(1+ Math.Pow(x,2) ) ;}; var n = 1000; double h = 1.0d / n; double sumx = 0; double sum = func(0.0); for (int i = 1; i < n; i++) { sumx += h; var factor = ((i % 2)…
[xsy1775]数值积分 题意 多组询问,求\(\int_l^r\sqrt{a(1-{x^2\over b})}dx\) 分析 double f(double x) { return sqrt(a*(1-x*x/b)); } double Get(double l,double r) { return (r-l)*(f(l)+f(r)+4*f((l+r)/2))/6; } double Calc(double l,double r) { double gx=Get(l,r); double m…
积分的通常方法是将区域切割成一个个的小矩形,然后求这些小矩形的和.小矩形切割得越细,计算精度就越高,可以将切割小矩形的数量作为循环迭代变量,将前后两个不同精度下的小矩形和之差,作为逼近是否达到要求的比较客体. 逼近有快慢,设计算法时对循环迭代的速度掌握很重要,初值也很重要,采用什么算法也很重要.…