自适应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 ...
随机推荐
- BBS(第二天) Django之Admin 自动化管理数据页面 与创建一个用户注册的验证码
1.admin的概念 # Admin是Django自带的一个功能强大的自动化数据管理界面 # 被授权的用户可以直接在Admin中操作数据库 # Django提供了许多针对Admin的定制功能 2. 配 ...
- ABAP-FTP-执行
1.界面 2.程序 ZFID0004_FTP_EXEC 主程序: *&------------------------------------------------------------- ...
- 29 _react-router说明
一.SPA的理解 1.单页面web应用(single page web application ,SPA) 2.整个应用只有一个完整的页面 3.点击页面中的链接不会刷新页面,本身也不会向服务器发请求 ...
- k8s定义Deployment,和service
定义一个Deployment和service做个简单的笔记 有时候我们需要开放Pod的多个端口,比如nginx的80和443端口,那如何定义Deployment文件呢,定义单个端口如下 apiVers ...
- LevelDB源码分析-Compact
Compaction compact由背景线程完成,代码中触发背景线程的函数为: void DBImpl::MaybeScheduleCompaction() { mutex_.AssertHeld( ...
- JAVA条件判断
一.基本if结构 1.流程图 l 输入输出 l 判断和分支 l 流程线 1.1 简单的if条件判断 if(表达式){ //表达式为true,执行{ ...
- SSM商城项目(五)
1. 学习计划 1.前台系统搭建 2.商城首页展示 3.Cms系统的实现 a) 内容分类管理 b) 内容管理 4.前台内容动态展示 2. 商城首页展示 2.1. ...
- selenium下打开Chrome报错解决
错误如下: [22516:20196:0704/024642.979:ERROR:install_util.cc(597)] Unable to read registry value HKLM\SO ...
- springboot读取配置注解@ConfiguratioinProperties和@Value的区别
- I/O系统(一)
输入输出系统的发展大致可以分为4个阶段1.早期阶段 特点: 1.1每个IO设备都得有一套独立的逻辑电路和CPU相连. 1.2输入输出过程需要通过CPU,穿插在程序运行的过程中,处理IO时候 ...