前言
定积分是什么?定积分是如何计算的?用C语言该如何实现
一、定积分是什么?
定积分定义:设函数f(x) 在区间[a,b]上连续,将区间[a,b]分成n个子区间[x0,x1], (x1,x2], (x2,x3], …, (xn-1,xn],其中x0=a,xn=b。
可知各区间的长度依次是:△x1=x1-x0,在每个子区间(xi-1,xi]中任取一点ξi(1,2,…,n),作和式 。该和式叫做积分和,设λ=max{△x1, △x2, …, △xn}(即λ是最大的区间长度)。
如果当λ→0时,积分和的极限存在,则这个极限叫做函数f(x) 在区间[a,b]的定积分,记为 ,并称函数f(x)在区间[a,b]上可积。
其中:a叫做积分下限,b叫做积分上限,区间[a, b]叫做积分区间,函数f(x)叫做被积函数,x叫做积分变量,f(x)dx 叫做被积表达式,∫ 叫做积分号。
以上解析来自于百度知道
二、C语言实现定积分(函数指针的方法)
1. 上才(代)艺(码)
代码中有部分注释
代码如下:
/**
* @file MooC_Point_Dingjifen.c
* @author Zheng Hao (2278757316@qq.com)
* @brief 函数指针实现定积分的计算,中国大学Mocc苏小红老师的C语言教程(关于指针)
* @version 0.1
* @date 2022-01-08
*
* @copyright Copyright (c) 2022
*
*/
#include <stdio.h>
#include <stdlib.h>
float Integral(float (*f)(float), float a, float b);
float F1(float x);
float F2(float x);
int main()
{
float y1,y2;
y1=Integral(F1,0.0,1.0);
y2=Integral(F2,0.0,3.0);
printf("F1的值:%lf\nF2的值:%lf\n",y1,y2);
//程序中断函数,如果用的编辑器不是VsCode可以忽略
system("pause");
return 0;
}
// 指针调用函数计算定积分
float Integral(float (*f)(float), float a, float b)
{
//S是面积,h指高
float s, h;
int n = 100, i;
s = ((*f)(a) + (*f)(b)) / 2;
h = (b - a) / n;
for (i = 1; i <=n; i++)
{
s = s + (*f)(a + i * h);
}
return s * h;
}
float F1(float x)
{
//计算函数1/(1+X^2)
return 1+x*x;
}
float F2(float x)
{
//计算函数
return x/(1+x*x);
}
2.实现原理
这里主要是给大家看调试图。
总结
注意观察上图中左上方的监视值。这里计算定积分的方法是用到了定积分的几何意义来计算。用到的知识有:指针函数的用法、用到的编辑器是VSCode。
下面是网课的链接地址,大家感兴趣可以看一下。
C语言设计精髓