本文共享了C语言用矩形法求定积分的公共函数,请作为参考。 具体内容如下
要求:
用矩形法写出求定积分的一般函数,分别求sin(x )、cos (x )、e^x。
分析:
矩形法,学过高等数学就知道化曲是直接的思想。 使定积分为多个函数的连续和。 基本的想法是,将区间[a,b]等分,n越大结果越正确。 图形化为小长方形。 底边的长度均为(b-a )/n .高度为每个等分点的函数值。 然后,要求将各矩形的面积相加。
例如:
y=x;
用长方形的方法可以无限逼近定积分的求解,如下。
由于被n等分,所以各等分被认为是一个矩形,各矩形的面积为***sn=f(x ) ) b-a )/n总面积为****S=S1 S2 … Sn
#包含
#包含
部署#include//sinx、cos x和e^x库
使用指向//函数的指针变量复用公共函数
int main () )
{
int i,j,k,n,m;
浮动结果;
浮动(* fun ) )浮动; 定义指向//函数的指针变量
浮动集成(floata,float b,float ) fun )浮动),int n ); //n是将积分区间(b-a ) n等分后的值,n的值越大精度越高,在数学定义上取无限大
浮动fsin (浮动); //sin x函数的声明
浮动(floatfcos ); //cos x函数的声明
浮点fexp (浮点; //e^x函数的声明
printf ('请输入积分下限(n );
scanf('%d ',m );
printf (请输入'点数上限(n );
scanf('%d ',n );
printf ('请输入要计算的函数的具体函数n );
printf(1.sin ) x )2.cos(x ) x )3.e^x(n );
scanf('%d ',I );
开关(I ) )。
{
case 1:
fun=fsin; //函数地址(条目)传递给指针变量,具有很大的灵活性
黑;
case 2:
fun=fcos;
黑;
case 3:
fun=fexp;
}
RES=(fun ) ) 2.00;
//printf(xxxx=%f(n ),res );
printf ('计算结果n );
RES=integral(m,n,fun,200000 );
printf('res=%f ',RES );
返回0;
}
浮点型(浮点型)。
{
//printf(fsinx=%f(n ),x );
返回输入(x;
}
浮动(floatfcos )。
{
//printf(fCosx=%fn ),x );
返回cos (x;
}
浮动边缘(floatx ) )。
{
//getchar (;
//printf(fexp=%f(n ),x );
返回exp (x;
}
浮动集成(float,float b,float(*fun ) (float ),int n ) ) ) ) ) ) ) ) ) ) )。
{
//用矩形法计算,将定积分转换为连续和的形式
int i=0;
float x=a,s=0;
floath=(B-a )/n;
for(I=1; i=n; I )
{
x=x h;
s=s () fun ) ) x ) ) h );
}
返回s;
}
结果:
以上是本文的全部内容,希望对大家的学习有帮助。 另外,我希望你能多多支持编剧。