c语言计算定积分
一、问题提出。
二、设计思路。
假设有这样一个函数,我们要求它的面积(梯形法),我们把它分成n个小梯形
公式是:(上底+下底)*h/2;
a0和a1组成一个梯形先一个一个的求出面积,最后在相加起来。
先根据x=(an-a0)/n求出平均分了以后每一小块的梯形的高,再利用a0+x求出每一小块的位置,根据位置可以利用函数公式y=x+b求出底是多少,然后再与相邻一块的y结合求出面积,最后在全部面积一起相加。
三、代码实现。
#include<stdio.h>
float Fun1(float x);
float Fun2(float x);
float Integral(float(*f)(float), float a, float b);
int main()
{
float y1, y2;
y1 = Integral(Fun1, 0.0, 1.0);
y2 = Integral(Fun2, 0.0, 3.0);
printf("y1=%f\ny2=%f\n", y1, y2);
return 0;
}
float Fun1(float x)
{
return 1 + x*x;
}
float Fun2(float x)
{
return x / (1 + x*x);
}
float Integral(float(*f)(float), float a, float b)
{
float s, h;
int n = 100, i;
s = ((*f)(a)+(*f)(b)) / 2;
h = (b - a) / n;
for (i = 1; i < n; i++)
{
s += ((*f)(a + i*h));
}
return s*h;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了