前言

不知道为什么,今天感觉想要写一下数学的东西,然后就看了一下我还有这个模板不会,顺手写了一下。

没有学过微积分的最好还是看一下求导为好。

求导

听说很多人都不会求导,我写一下吧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法与积分初步的更多相关文章

  1. 洛谷P4207 [NOI2005]月下柠檬树(计算几何+自适应Simpson法)

    题面 传送门 题解 我还好奇自适应辛普森法干嘛用的呢--突然想起来积分的一个用处就是求曲边图形的面积-- 我们先来考虑一下这些投影是什么形状 一个圆的投影还是它自己 一个圆锥的投影是一个圆加上一个点, ...

  2. [日常摸鱼]HDU1724 Ellipse-自适应Simpson法

    模板题~ QAQ话说Simpson法的原理我还是不太懂-如果有懂的dalao麻烦告诉我~ 题意:每次给一个椭圆的标准方程,求夹在直线$x=l$和$x=r$之间的面积 Simpson法 (好像有时候也被 ...

  3. [日常摸鱼]bzoj1502[NOI2005]月下柠檬树-简单几何+Simpson法

    关于自适应Simpson法的介绍可以去看我的另一篇blog http://www.lydsy.com/JudgeOnline/problem.php?id=1502 题意:空间里圆心在同一直线上且底面 ...

  4. 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1017  Solved: 562[Submit][Status] ...

  5. 自适应Simpson积分

    自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下 ...

  6. 【bzoj1502】[NOI2005]月下柠檬树 自适应Simpson积分

    题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月 ...

  7. 洛谷P4526 【模板】自适应辛普森法2(Simpson法)

    题面 传送门 题解 据说这函数在\(x>15\)的时候趋近于\(0\) 据说当且仅当\(a<0\)时积分发散 所以直接套自适应\(simpson\)吧-- //minamoto #incl ...

  8. HDU 1724 Ellipse 【自适应Simpson积分】

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  9. CSU 1806 Toll 自适应simpson积分+最短路

    分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了 学习自适应simpson积分:http://blog.csdn.net/greatwall1995/arti ...

随机推荐

  1. Web缓存机制

    Web 缓存的出现主要是为了弥补cookie带来的一些局限,当数据严格控制在客户端时,可以不用通过HTTP来持续得将数据发给服务器. 主要使用比较多的就是sessionStorage和localSto ...

  2. python——字符串问题总结

    转义符r/R使用: print (r'\n') print (R'\n') 输出: \n \n 不受转义符\n影响 python字符串格式化: print ("我叫 %s 今年 %d 岁!& ...

  3. 三. html&JavaScript&ajax 部 分

    1. 判 断 第 二 个 日 期 比 第 一 个 日 期 大 如何用脚本判断用户输入的的字符串是下面的时间格式2004-11-21必须要保证用户 的输入是此格式,并且是时间,比如说月份不大于12等等, ...

  4. leetcode2

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  5. Django之form模板的使用

    form模块的简介与用处 1.form 是前后端交互的一种方式, form表单提交的一种,django中有一个模块是form他主要用处就过滤前端form提交的数据 1. forms 模块是处理前后台的 ...

  6. String和StringBuilder、StringBuffer的区别

    String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的. String:适用于少量的字符串操作的情况 StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情 ...

  7. C++ 日志生成 DLL

    示例: #define log_dbg(format,args...) \        printf("[DBG] [%s: %s() line:%d]: "format ,__ ...

  8. (转).net反编译工具JustDecompile

    开源的反编译工具  JustDecompile https://www.telerik.com/blogs/justdecompile-engine-becomes-open-source https ...

  9. 每月IT摘录201903

    技术 1.在开发高并发系统时,有很多手段来保护系统,如缓存.降级.限流等.缓存可以提升系统的访问速度,降级可以暂时屏蔽掉非核心业务,使得核心业务不受影响.限流的目的是通过对并发访问进行限速,一旦达到一 ...

  10. linux环境:创建数据库用户,表空间,启动数据库

    1.启动数据库 首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:第一步:打开Oracle监听(先查看状态:oracle监听是否启动:lsnrctl status)$ l ...