自适应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+\triangle{x})-f(x)
\\
=a*(x+\triangle{x})^2-a*x^2+b*(x+\triangle{x})-b*x+c-c
\\
=a*(x^2+\triangle{x}^2+2*x*\triangle{x})-a*x^2+b*x-b*x+b*\triangle{x}
\\
=a*\triangle{x}^2+2*a*x*\triangle{x}+b*\triangle{x}
\]
然后考虑一下除一下就是:
\[
f'(x)=\frac{\triangle{y}}{\triangle{x}}
\\
=\frac{a*\triangle{x}^2+2*a*x*\triangle{x}+b*\triangle{x}}{\triangle{x}}
\\
=a\triangle{x}+2*a*x+b
\]
然后我们又发现\(lim_{\triangle{x}->0}\triangle{x}\)
所以化简就是:
\(f'(x)=2*a*x+b\)
由此我们还可以得到一些比较好的东西:
\((x^n)'=n*x^{n-1}\)
与:
\((g(x)*f(x))'=g(x)\centerdot f'(x)+g'(x)\centerdot f(x)\)
然后把两个搞在一起就是:
\[
(c*f(x))'=c*f'(x)
\]
大概入门就只要这么点东西吧。
积分
定义就是曲面围成的面积。
然后就是许多的式子qwq(这个直接背记就好了。)
当然如果有网的话也可以查。
还有一个比较需要记住的公式:
可导函数\(f(x)\)在区间\([a,b]\)的弧长
\(\int_a^b\sqrt{1+f'(x)}dx\)
我突然发现我自己越来越不会算区间,凉凉了。
开始
假定我们现在已经有了一个函数\(f(x)\),现在要求这样子的积分:
\[
\int_a^bf(x)dx
\]
Simpson公式
\[
\int_a^bf(x)dx\approx\frac{\triangle{x}}{3}(y_0+4*y_1+y_2)+\frac{\triangle{x}}{3}(y_2+4*y_3+y_4)+...
\]
然后直接自适应Simpson法套进去就好了.
然后?
没有了qwq
代码实现
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<set>
#include<map>
#include<iostream>
using namespace std;
#define ll long long
#define re register
#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)
inline int gi(){
int f=1,sum=0;char ch=getchar();
while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();}
return f*sum;
}
const double eps=1e-12;
double a,b,c,d,l,r;
double F(double x){
return (c*x+d)/(a*x+b);
}
double Simpson(double a,double b){
double c=a+(b-a)/2;
return (F(a)+4*F(c)+F(b))*(b-a)/6;
}
double simpson(double a,double b,double eps,double A){
double c=a+(b-a)/2;
double L=Simpson(a,c),R=Simpson(c,b);
if(fabs(L+R-A)<=eps*15)return L+R+(L+R-A)/15;
return simpson(a,c,eps/2,L)+simpson(c,b,eps/2,R);
}
double Ask(double a,double b,double eps){
return simpson(a,b,eps,Simpson(a,b));
}
int main(){
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&l,&r);
printf("%.6lf\n",Ask(l,r,eps));
return 0;
}
自适应Simpson法与积分初步的更多相关文章
- 洛谷P4207 [NOI2005]月下柠檬树(计算几何+自适应Simpson法)
题面 传送门 题解 我还好奇自适应辛普森法干嘛用的呢--突然想起来积分的一个用处就是求曲边图形的面积-- 我们先来考虑一下这些投影是什么形状 一个圆的投影还是它自己 一个圆锥的投影是一个圆加上一个点, ...
- [日常摸鱼]HDU1724 Ellipse-自适应Simpson法
模板题~ QAQ话说Simpson法的原理我还是不太懂-如果有懂的dalao麻烦告诉我~ 题意:每次给一个椭圆的标准方程,求夹在直线$x=l$和$x=r$之间的面积 Simpson法 (好像有时候也被 ...
- [日常摸鱼]bzoj1502[NOI2005]月下柠檬树-简单几何+Simpson法
关于自适应Simpson法的介绍可以去看我的另一篇blog http://www.lydsy.com/JudgeOnline/problem.php?id=1502 题意:空间里圆心在同一直线上且底面 ...
- 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1017 Solved: 562[Submit][Status] ...
- 自适应Simpson积分
自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下 ...
- 【bzoj1502】[NOI2005]月下柠檬树 自适应Simpson积分
题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月 ...
- 洛谷P4526 【模板】自适应辛普森法2(Simpson法)
题面 传送门 题解 据说这函数在\(x>15\)的时候趋近于\(0\) 据说当且仅当\(a<0\)时积分发散 所以直接套自适应\(simpson\)吧-- //minamoto #incl ...
- HDU 1724 Ellipse 【自适应Simpson积分】
Ellipse Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- CSU 1806 Toll 自适应simpson积分+最短路
分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了 学习自适应simpson积分:http://blog.csdn.net/greatwall1995/arti ...
随机推荐
- Python学习:模块初识、数据类型
1.模块初识 在Python中,模块分为两种: (1)标准库 标准库无需安装,只要在使用的时候import就可以使用了 (2)第三方库 第三方库必须下载安装之后才能够引入使用 下面介绍两个基本的模块: ...
- tensorflow/pytorch/mxnet的pip安装,非源代码编译,基于cuda10/cudnn7.4.1/ubuntu18.04.md
os安装 目前对tensorflow和cuda支持最好的是ubuntu的18.04 ,16.04这种lts,推荐使用18.04版本.非lts的版本一般不推荐. Windows倒是也能用来装深度GPU环 ...
- java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
今天部署完一个测试war包,打开页面的时候报错: HTTP Status 500 - Handler processing failed; nested exception is java.lang. ...
- ubuntu环境下,ubuntu16.04装机到nvdia显卡驱动安装、cuda8安装、cudnn安装
首先是安装ubuntu16.04 A.制作u盘启动盘(提前准备好.ios文件): 1.安装u盘制作工具unetbootinsudo apt-get install unetbootin2.格式化u盘s ...
- Java虚拟机 垃圾收集器与内存分配策略
说起GC,我们要思考的主要有三件事 哪些内存需要回收 那些已经“死去”的对象,那么哪些对象“死”,哪些对象“活”呢,有个简单的办法 引用计数法,但是没法解决循环依赖问题 所以Java虚拟机采用的是可达 ...
- 什么是PLI?
首先,什么是PLI? 本部分设定了隐藏,您已回复过了,以下是隐藏的内容 PLI 就是product liability insurance 的简写,中文可以翻译成“产品责任险”说白了,就是你的产品如果 ...
- Idea创建简单Java Web项目并部署Servlet
1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...
- VS2015 提示 无法启动 IIS Express Web 服务器
好久没有写东西了,不是没的写,是没时间了,今天快下班了,正好遇到这个一个问题,我就记录下来,以防忘记. 我定义了一个项目,Demo代码也写好了,然后,我们就把写好的项目代码加入到了源代码管理工具里.然 ...
- PHP开发——变量
变量的概念 l 变量是临时存储数据的容器: l 变量是存储内存当中: l 我们现实中有很多数据:姓名.性别.年龄.学历等: l 在计算机中,用变量来代替一个一个的数据: l 我们可以把计算机 ...
- laravel控制器之资源控制器
资源控制器 Laravel 的资源控制器可以让我们很便捷地构建基于资源的 RESTful 控制器,例如,你可能想要在应用中创建一个控制器,用于处理关于文章存储的 HTTP 请求,使用 Artisan ...