C语言复习---矩形法求定积分函数
标签:use 区间 namespace net mat efi define 思路 简单的
一:分析:
大一学习积分的时候,我们学习过,可以通过矩形法来求定积分。
思路就是将积分区间划分成n等份,然后将这n等份近似看成矩形(或梯形),然后对所有的矩形(或梯形)的面积进行求和。
二:简单的例子
矩形法:
#include
#includeusing 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 h){
s = s + fun(i)*h;
}
cout "\n结果是:" endl;
cout endl;
}
float fun(float x){
return pow(x, 2);
}
三:使用C语言实现下面三个函数的定积分求解
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include //使用矩形法来求定积分的通用函数
//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 )
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
评论