精华内容
下载资源
问答
  • C语言求积分

    2015-03-31 18:20:09
    用梯形法积分,对应于一个积分式就要有一段程序,不过可以改变程序的一小部分来改变所要求的积分式,程序以y=xsinx
  • 积分近似值试积分 的近似值(积分限a,b从键盘输入)。算法分析如下:积分的近似值常有矩形法与梯形法,其实质都是面积求和。 矩形法是把所要求的面积垂直x轴分成n个小矩形,然后把这n个小矩形的面积相加,...

    求定积分近似值试求定积分

    85759436.gif

    的近似值(积分限a,b从键盘输入)。

    算法分析如下:

    求定积分的近似值常有矩形法与梯形法,其实质都是面积求和。

    857596161.gif

    矩形法是把所要求的面积垂直x轴分成n个小矩形,然后把这n个小矩形的面积相加,即为所求的定积分的值。     梯形法是把所要求的面积垂直分成n个小梯形,然后作面积求和。     这两种近似求值的精度随分割个数n的增加而增加,对于相同的n个数,相对来说,梯形法的精度比矩形法的要高一些。 程序代码如下: #include #include void main() {     int i,n=1000;     float a,b,h,t1,t2,s1,s2,x;     printf("请输入积分限a,b:");     scanf("%f,%f",&a,&b);     h=(b-a)/n;     for(s1=0,s2=0,i=1;i<=n;i++)     {         x=a+(i-1)*h;         t1=(float)exp(-x*x/2);t2(float)=exp(-(x+h)*(x+h)/2);         s1=s1+t1*h;        /*矩形面积累加*/         s2=s2+(t1+t2)*h/2;        /*梯形面积累加*/     }     printf("矩形法算得积分值:%f.\n",s1);     printf("梯形法算得积分值:%f.\n",s2); } 程序运行结果如下:     矩形法算得积分值:0.855821     梯形法算得积分值:0.855624     由上面的比较可知,梯形法的精度要高于矩形法。

    例二  求函数f(x)=x*x+2*x+1在【0,2】上的定积分。

    #include     main()        {    double s=0,h,a,b,f0,f1,n;              int i;              printf("Enter n,a,b:");              scanf("%lf,%lf,%lf",&n,&a,&b);              h=(b-a)/n;              f0=a*a+2*a+1;              for(i=1;i<=n;i++)                  {  a=a+h;                      f1=a*a+2*a+1;                      s+=(f0+f1)*h/2;                      f0=f1;                  }             printf("sum is %f",s);         }

    展开全文
  • C语言求积分的近似值

    2019-04-30 17:09:08
    用梯形法求积分的近似值 **/ #include"stdio.h" #include"math.h" float seekIntegral(float a, float b, int n) { float f1 = 0, f2 = 0; float s = 0; float deta, x; x = a; deta = (b - a) / n; f1 = sin...
    /**
    用梯形法求积分的近似值
    **/
    #include"stdio.h"
    #include"math.h"
    float seekIntegral(float a, float b, int n)
    {
    	float f1 = 0, f2 = 0;
    	float s = 0;
    	float deta, x;
    	x = a;
    	deta = (b - a) / n;
    	f1 = sin(x) + x;
    	for (int i = 0; i < n; i++)
    	{
    		x += deta;
    		f2 =  sin(x) + x;
    		s += (f2 + f1) * deta / 2;
    		f1 = f2;
    	}
    	return s;
    }
    void main()
    {
    	float s1,s2;
    	s1 = seekIntegral(0, 10, 60);
    	s2 = seekIntegral(0, 10, 60000);
    	printf("%.6f\n", s1);
    	printf("%.6f\n", s2);
    }
    
    展开全文
  • C语言求积分

    千次阅读 2019-03-13 16:49:42
    那现在就用这种方法,利用C语言求积分。 下面附上代码: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;iostream&amp;gt; #include &...

    这里以函数f=sinx为例子,首先思路:求定积分用的是元素法,把面积分为一个个的小矩形,分的越密集,则结果越正确。那现在就用这种方法,利用C语言求定积分。
    下面附上代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    #include <string.h>
    #include <math.h>
    using namespace std;
    int main()
    {
        int i;
        double a,b;
        double wide=0.001;//wide表示划分的单位宽度,wide越小结果越精确,n是积分中矩形的宽
        printf("please input a,b:\n");
        scanf("%lf%lf",&a,&b);
        int n=(b-a)/wide;//a,b为积分的上限和下限
        double s=0;//s为所有小矩形面积的和,即积分的值
        for(i=0; i<n; i++)
        {
            s+=sin(a+i*wide)*wide;//a+i*wide是横坐标的值
        }
        printf("%.2lf\n",s);
        return 0;
    }
    

    下面做一下升级,方便函数变化时,灵活运用。

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    #include <string.h>
    #include <math.h>
    using namespace std;
    double fun(double x)
    {
        return sin(x);
    }
    double jifen(double a,double b,double (*p)(double))//(*p)(double)为指向函数的指针,相当于一个函数的名字作为形参了
    {
        int i;
        double wide=0.001;//wide表示划分的单位宽度,wide越小结果越精确,n是积分中矩形的宽
        dint n=(b-a)/wide;//a,b为积分的上限和下限
        double s=0;//s为所有小矩形面积的和,即积分的值
        for(i=0;i<n;i++)
        {
            s+=(*p)(a+i*wide)*wide;//a+i*wide是横坐标的值
        }
        return s;
    }
    int main()
    {
    
        double a,b;
        printf("please input a,b:\n");
        scanf("%lf%lf",&a,&b);
        printf("%.2lf\n",jifen(a,b,fun));
        return 0;
    }
    
    

    注意:double (*p)(double)表示p是指向函数的指针,被指的函数是一个实型函数,有一个实型的形参,p是指向函数的指针变量。同以往的指针不同的是,p指向的是一个函数,代表一个函数的地址,p就代表这个函数的名字。(p)(a+widei)相当于sin(a+widei)。这样jifen函数就是一个通用求定积分的函数了。里面的函数定义随意变,而所需改变的代码很少。这样大大提高了效率

    展开全文
  • 参考网上的积分程序写的C语言求积分函数,支持自定义被积函数 1、可以精确到小数点后8到10位左右 2、因为是利用高斯积分表,所以计算速度也很快 3、有详细的文字说明,稍作更改就能化为己用!
  • 主要介绍了C语言实现积分的方法,涉及C语言操作相关数学函数的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 本文为大家分享了C语言使用矩形法积分的通用函数,供大家参考,具体内容如下要求:写一个用矩形法积分的通用函数,分别:sin(x),cos(x),e^x 。分析:矩形法,学过高等数学就知道化曲为直的思想。将定积分...

    本文为大家分享了C语言使用矩形法求定积分的通用函数,供大家参考,具体内容如下

    要求:

    写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x 。

    分析:

    矩形法,学过高等数学就知道化曲为直的思想。将定积分化为多个函数连续的和。基本思想是将区间[a,b]化成n等分,当n越大的时候结果越准确。图形化成一小块一小块的矩形。底边长都为(b-a)/n.高为每个等分点的函数值。然后将每个矩形的面积相加即为所求。

    如:

    y=x;

    ba4a74474d8ec9761bdcbc6e8f292a5f.png

    可以通过矩形的方法来无限逼近定积分的求解,如下:

    1d9a228261d1836d5ffbd1ec66bddf52.png

    因为被分成n等分,就可以认为每一等分是一个矩形,那么每一矩形的面积为: 每一个矩形面积为:***Sn=f(x)(b-a)/n 总面积为:****S=S1+S2+…+Sn

    #include

    #include

    #include //引入sin x,cos x,e^x的库

    //使用指向函数的指针变量来复用一个通用函数

    int main()

    {

    int i,j,k,n,m;

    float res;

    float (*fun)(float);//定义指向函数的指针变量

    float integral (float a,float b,float (*fun)(float),int n);//n为将积分区间(b-a)分成n等分,当n的值越大的时候结果越精确,数学上的定义是取无穷大

    float fsin(float);//sin x函数的声明

    float fcos(float);//cos x函数的声明

    float fexp(float);//e^x 函数的声明

    printf ("请输入积分的下限\n");

    scanf ("%d",&m);

    printf ("请输入积分的上限\n");

    scanf ("%d",&n);

    printf("请输入你要计算的函数的具体函数\n");

    printf("1.sin(x) 2.cos(x) 3.e^x\n");

    scanf ("%d",&i);

    switch(i)

    {

    case 1:

    fun=fsin;//函数地址(入口)交给指针变量,灵活性强

    break;

    case 2:

    fun=fcos;

    break;

    case 3:

    fun=fexp;

    }

    res=(fun)(2.00);

    //printf("xxxx=%f\n",res);

    printf ("计算的结果为\n");

    res=integral(m,n,fun,200000);

    printf("res=%f",res);

    return 0;

    }

    float fsin(float x)

    {

    // printf("fsinx=%f\n",x);

    return sin(x);

    }

    float fcos(float x)

    {

    //printf("fcosx=%f\n",x);

    return cos(x);

    }

    float fexp(float x)

    {

    //getchar();

    //printf("fexp=%f\n",x);

    return exp(x);

    }

    float integral(float a,float b,float (*fun)(float),int n)

    {

    //矩形法计算,定积分转换为连续求和的形式

    int i=0;

    float x=a,s=0;

    float h=(b-a)/n;

    for (i=1;i<=n;i++)

    {

    x=x+h;

    s=s+((*fun)(x)*h);

    }

    return s;

    }

    结果:

    b31482f64b3b99ab72eda3848fafc20b.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

    展开全文
  • c语言计算积分 一、积分计算原理 先把积分区域划分为n个曲边梯形,每个值点为曲边梯形的两个底边中点,求得每个曲边梯形的面积即为积分值 用近似法求得积分:当n为无穷大时,可将该曲边梯形近似看成矩形,...
  • c语言积分 本人自写 可以参考 用英语写的哟 希望和诸位多交流~
  • C语言用六种方法积分C语言实验报告积分班级 10信息与计算科学一班姓名 戴良伟学号 2010750221描述问题利用①左矩形公式,②中矩形公式,③右矩形公式 ,④梯形公式,⑤simpson公式,⑥Gauss积分公式求解定...
  • C语言求积分,对任意一个函数,本代码实现对其积分,可以改变积分上下限和步长
  • c语言实现万能求积分

    2021-01-31 17:43:54
    本文章原创,转载请注明出处~原理:如下图,若要求a,b区间之间的面积,则对a,b区间进行分割,用分割后的矩形面积相加作为区域面积的近似,分割的越细,近似程度越高 由此,可设计原型如下: ...
  • s=(sin(a+n*i)+sin(a+n*(i+1)))*n/2+s; // (sin(a+n*i)是梯形的上底,sin(a+n*(i+1))是下底printf("用梯形法求得该...}三.(综合)写一个用矩形法和梯形法积分的通用函数,分别sin(x)在(0,1)上、cos(x)在(-1,...
  • 优质解答用4了四种方法,另外还加了个龙格贝.大人大量给分吧~#includeusing namespace std;double getPI0(int h){double l = 1.0/h;int i,j;double s = 0;for(i = 0; i < h; i++){s += l*(4/(1+((2*i+1)*l/2)*((2*...
  • 主要为大家详细介绍了用C语言程序实现黎曼和积分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 使用c语言求矩阵的特征值和特征向量。使用数值积分方法,纯c语言编写,主要是用的QR分解,vs工程文件。
  • c语言实现积分

    千次阅读 2015-02-08 18:21:32
    #include #include double dj(double Min,double Max,double flags=0.00001)//最大值,最小值,精度 ... //这里的是sin的 } return j; } int main() { printf("%.6lf",dj(0,3.1415926)); }
  • [size=24px][/size]比如用梯形法函数 f=X²在区间(1,5)之间的近似值,用n等分区间,eps来确定精确度。例如s1表示用n来等分区间时求得的值,s2表示用2n等分区间时求得的值,当s1与s2之间的差值小于我设定的精度...
  • 用纯c写的龙贝格求积分算法,很好用,程序很简单,很容易看明白的
  • C语言三个数从小到大排序/输出C语言猴子吃桃问题C语言百钱买百鸡(百钱百鸡,百鸡问题)C语言渔夫打鱼晒网问题C语言希尔排序算法C语言冒泡排序算法C语言直接插入排序算法...,索引顺序查找算法C语言求n的阶乘(n...
  • c语言实现龙贝格积分

    2016-12-14 16:02:56
    c语言实现龙贝格积分
  • C语言篮球积分器程序

    2011-05-12 23:30:35
    C语言篮球积分器程序!!!!!!!!!!!!!!!!!!!!!!!
  • 数值计算基础实验之一 数值积分 龙贝格法求积分C语言实现 我写的龙贝格是极尽节省存储空间形式的 所以代码估计会有一点点难懂 代码仅供参考,根据自己需要简化也可以
  • C语言 梯形积分

    2020-03-17 21:20:33
    #include<iostream> #include<math.h> using namespace std; int main(){ ..."请输入函数X^2的定积分的下限a和上限b:"; cin>>a>>b; int n=50;//将区间划分成50份 ...
  • c语言实现积分运算

    万次阅读 2018-10-24 21:24:44
    其次还要知道定积分的定义 #include #include using namespace std; int main() { float integral(float(*p)(float),float a,float b,int n); float fsin(float); float a1,b1,c,(*p)(float); int n; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,859
精华内容 4,743
关键字:

c语言求积分

c语言 订阅