C语言实现定积分的计算

本文介绍了定积分的概念及其在C语言中的实现方法,通过函数指针调用来计算定积分。示例代码展示了如何利用函数F1和F2计算定积分,并提供了程序运行的总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

定积分是什么?定积分是如何计算的?用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.实现原理

这里主要是给大家看调试图。

第一个断点

注意看左上方的监视值
i=1时的S和h的变化
最终结果


总结

注意观察上图中左上方的监视值。这里计算定积分的方法是用到了定积分的几何意义来计算。用到的知识有:指针函数的用法、用到的编辑器是VSCode。
下面是网课的链接地址,大家感兴趣可以看一下。
C语言设计精髓

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值