C语言笔记—用梯形法求定积分
程序员文章站
2024-02-02 21:52:40
...
#include <stdio.h>
#include <math.h>
double f1(double x);
double f2(double x);
double Definite_integral(double a, double b, double deta, double (*p)(double x));
void main()
{
double a, b, deta;
scanf("%lf,%lf,%lf",&a,&b,&deta);
if(a>b||deta<0)
{
printf("error");
return 0;
}
//printf("%.2f",Definite_integral(a,b,deta,f1));
printf("%.2f,%.2f",Definite_integral(a,b,deta,f1),Definite_integral(a,b,deta,f2));
}
/* 梯形法求定积分*/
double Definite_integral(double a, double b, double deta, double (*p)(double x))
{
int i,n;
float m;
double x=a, y1, y2, f=0;
n = (b-a)/deta;
m = (b-a)-n*deta;
y1 = (*p)(x);
for(i = 0;i < n;i++)
{
x += deta;
y2 = (*p)(x);
f += (y1+y2)*deta/2;
y1 = y2;
}
x+=m;
y2=(*p)(x);
f += (y1+y2)*m/2;
return f;
}
/*定义被积函数*/
double f1(double x){
double fx;
fx = x*x+1;
return fx;
}
double f2(double x){
double fx;
fx = fabs(x)/(x*x+1);
return fx;
}
上一篇: 优播影音怎么样?优播影音播放器功能评测
下一篇: Python入门必看
推荐阅读
-
C语言编程练习 5.按如下函数原型,采用梯形法编程实现(分成100个小梯形,再求这100个梯形面积的和),在积分区间[a,b]内计算函数
-
C语言笔记—用梯形法求定积分
-
C语言笔记——用梯形法求定积分
-
C语言:用迭代法求x=sqrt(a)
-
用c语言编写如下程序:二分法求方程f(x)=x^2-x-1=0在区间[1,2]的正根,精确到1e-3?
-
(C语言)用二分法求方程 2x^3 - 4x^2 + 3x - 6 = 0在(-10, 10)之间的根
-
(C语言)用迭代法求x=根号a,要求前后两次求出来的x的差的绝对值小于10^-5
-
梯形法求数值定积分。如F(x)=∫ (4-X*X)^0.5dx。[a,b] c语言+注释
-
用牛顿迭代法求3X^3+2X^2-4X=6的解。C语言+详解
-
用二分法求3X^3+2X^2-4X=6的解。C语言+详解