正文
用c语言不定积分库函数 求定积分c语言
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
小菜鸟C语言随机投点法求积分求大神解惑
基本定义
设F(x)为函数f(x)的一个原函数,我们把函数f(x)的所有原函数F(x)+C(C为任意常数)叫做函数f(x)的不定积分(indefinite integral)。
记作∫f(x)dx。其中∫叫做积分号(integral sign),f(x)叫做被积函数(integrand),x叫做积分变量,f(x)dx叫做被积式,C叫做积分常数,求已知函数的不定积分的过程叫做对这个函数进行积分。
积分
由定义可知:
求函数f(x)的不定积分,就是要求出f(x)的所有的原函数,由原函数的性质可知,只要求出函数f(x)的一个原函数,再加上任意的常数C,就得到函数f(x)的不定积分。
也可以表述成,积分是微分的逆运算,即知道了导函数,求原函数。
主要分类
不定积分
众所周知,微积分的两大部分是微分与积分。微分实际上是函数的微小的增量,函数在某一点的导数值乘以自变量以这点为起点的增量,得到的就是函数的微分;它近似等于函数的实际增量(这里主要是针对一元函数而言)。而积分是已知一函数的导数,求这一函数。所以,微分与积分互为逆运算。
实际上,积分还可以分为两部分。第一种,是单纯的积分,也就是已知导数求原函数,而若F(x)的导数是f(x),那么F(x)+C(C是常数)的导数也是f(x),也就是说,把f(x)积分,不一定能得到F(x),因为F(x)+C的导数也是f(x),C是任意的常数,所以f(x)积分的结果有无数个,是不确定的,我们一律用F(x)+C代替,这就称为不定积分。
用公式表示是:f'(x)=g(x)-∫g(x)dx=f(x)+c
定积分
而相对于不定积分,还有定积分。所谓定积分,其形式为∫[a:b]f(x)dx 。之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。
积分题目
微积分的最初发展中,定积分即黎曼积分。用自己的话来说,就是把直角坐标系上的函数的图象用平行于y轴的直线和x轴把其分割成无数个矩形,然后把某个区间[a,b]上的矩形的面积累加起来,所得到的就是这个函数的图象在区间[a,b]的面积。实际上,定积分的上下限就是区间的两个端点a、b。而实变函数中,可以利用测度论将黎曼积分推广到更加一般的情况,如勒贝格积分.
用公式表示是:∫ [a,b]f(x)dx=lim(n-∞)∑(0-n)a+f(ti)*(b-a)/n
两者关系
我们可以看到,定积分的本质是把图象无限细分,再累加起来,而积分的本质是求一个函数的原函数。它们看起来没有任何的联系,那么为什么定积分写成积分的形式呢?
定积分与积分看起来风马牛不相及,但是由于一个数学上重要的理论的支撑,使得它们有了本质的密切关系。把一个图形无限细分再累加,这似乎是不可能的事情,但是由于这个理论,可以转化为计算积分。这个重要理论就是大名鼎鼎的牛顿-莱布尼兹公式,它的内容是:
若F'(x)=f(x)
那么∫[a:b]f(x)dx =F(a)-F(b)
但是这里x出现了两种意义,一是表示积分上限,二是表示被积函数的自变量,但定积分中被积函数的自变量取一个定值是没意义的。虽然这种写法是可以的,但习惯上常把被积函数的自变量改成别的字母如t,这样意义就非常清楚了:
Φ(x)=∫[a:b]f(t)dt
牛顿-莱布尼兹公式用文字表述,就是说一个定积分式的值,就是上限在原函数的值与下限在原函数的值的差。
正这个理论揭示了积分与黎曼积分本质的联系,可见其在微积分学乃至整个高等数学上的重要地位,因此,牛顿-莱布尼兹公式也被称作微积分基本定理。
怎样编写c语言积分函数
积分分为两种,数值积分,公式积分。
公式积分:部分函数可以直接用公式求得其不定积分函数。C语言中可以直接用积分公式写出其积分函数。
数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分。
以【f(x)=x*sin(x) 从1到2的积分】为例:
#include math.h
#include stdio.h
double integral(double(*fun)(double x),double a,double b,int,n){
double s,h,y;
int i;
s=(fun(a)+fun(b))/2;
h=(b-a)/n; /*积分步长*/
for(i=1;in;i++)
s=s+fun(a+i*h);
y=s*h;
return y;/*返回积分值*/
}
double f(double x){
return(x*sinx) /*修改此处可以改变被积函数*/
}
int main(){
double y;
y=integral(f,1.0,2.0,150);/*修改此处可以改变积分上下限和步数,步长=(上限-下限)/步数*/
printf("y=%f\n",y);
return 0;
}
对sin函数求"不定积分",用C语言如何实现???
1.
c语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果
2.
下面用for循环实现sin的算法,程序代码如下:
#include
#include
void
main()
{
int
i;
float
x,sum,a,b;
//sum代表和,a为分子,b为分母
char
s;
printf("please
input
x");
scanf("%f",x);
s=1;
sum=0;
a=x;
//分母赋初值
b=1;
//分子赋初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b;
//累加一项
a=a*x*x;
//求下一项分子
b=b*2*i*(2*i+1);
//求下一项分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3.
关于上述程序的几点说明:上述程序的计算结果精确到小数点后六位;上述程序运用了sin的泰勒展开式
sin
x=x-x^3/3!+x^5/5!
......
,程序中将sin泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加
给定函数y=x 用c语言,求y的不定积分. 要写出相应的c语言程序.
# include math.h
void main()
{ float f1(float);
float f2(float);
float f3(float);
float f4(float);
float f5(float);
float integral(float,float,float(*fun)(float));
float a,b;
int i;
float k[5];
printf("enter a,b:\n"); scanf("%f,%f",a,b); k[0]=integral(a,b,f1); k[1]=integral(a,b,f2); k[2]=integral(a,b,f3); k[3]=integral(a,b,f4); k[4]=integral(a,b,f5);
for(i=0;i=5;i++) printf("k[%d]=%f\n",i,k[i]); }
float f1(float x)
{ float z; z=x+x*x/2;
return z; }
float f2(float x)
{ float z; z=3*x+x*x; return z; } float f3(float x) { float z; z=x+(float)(exp(x)); return z; } float f4(float x) { float z; z=2*(1+x); return z; } float f5(float x) { float z; z=(float)(pow(x,4))/4; return z; }
关于用c语言不定积分库函数和求定积分c语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。