码迷,mamicode.com
首页 > 编程语言 > 详细

C语言复习---矩形法求定积分函数

时间:2018-08-30 21:43:14      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:use   区间   namespace   net   mat   efi   define   思路   简单的   

一:分析:

大一学习积分的时候,我们学习过,可以通过矩形法来求定积分。
思路就是将积分区间划分成n等份,然后将这n等份近似看成矩形(或梯形),然后对所有的矩形(或梯形)的面积进行求和。

技术分享图片

技术分享图片

二:简单的例子

求函数X^2在的定积分

矩形法:

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    float fun(float x);
    float a, b;
    cout << "请输入函数X^2的定积分的下限a和上限b:";
    cin >> a >> b;
    int n = 50;//将区间划分成50份 
    float h = (b - a) / n;//h是每个区间分大小 
    float s = 0;//s是矩形的面积的和
    float i = 0;
    for (i = a; i < b; i += h){
        s = s + fun(i)*h;
    }
    cout << "\n结果是:" << s << endl;
    cout << endl;
}
float fun(float x){ return pow(x, 2); }

三:使用C语言实现下面三个函数的定积分求解

技术分享图片

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//使用矩形法来求定积分的通用函数
//p是函数指针,a是下界,b是上界,n是等分数
float integral(float(*p)(float), float a, float b, int n)
{
    int i;
    float area=0;
    float ew = (b - a) / n;

    for (i = 1; i <= n;i++)
        area += (*p)(a + i*ew)*ew;

    return area;
}

float f_sin(float x)
{
    return sin(x);
}

float f_cos(float x)
{
    return cos(x);
}

float f_exp(float x)
{
    return exp(x);
}

int main()
{
    float a, b,area;
    float(*p)(float);
    int n = 20;

    printf("test sin,input a,b:");
    scanf("%f,%f", &a, &b);
    p = f_sin;
    area = integral(p, a, b, n);
    printf("get value:%f\n", area);

    printf("test cos,input a,b:");
    scanf("%f,%f", &a, &b);
    p = f_cos;
    area = integral(p, a, b, n);
    printf("get value:%f\n", area);

    printf("test exp,input a,b:");
    scanf("%f,%f", &a, &b);
    p = f_exp;
    area = integral(p, a, b, n);
    printf("get value:%f\n", area);

    system("pause");
    return 0;
}

 

 



C语言复习---矩形法求定积分函数

标签:use   区间   namespace   net   mat   efi   define   思路   简单的   

原文地址:https://www.cnblogs.com/ssyfj/p/9562727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!