一:分析:
大一学习积分的时候,我们学习过,可以通过矩形法来求定积分。
思路就是将积分区间划分成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;
}
转载于:https://www.cnblogs.com/ssyfj/p/9562727.html
相关资源:C语言使用矩形法求定积分的通用函数
转载请注明原文地址: https://win8.8miu.com/read-8166.html