c语言求正弦函数的定积分 c语言正弦余弦函数

C语言用辛普森公式求sinx在0到π上的定积分的源程序

用梯形法估算,再用辛普森法。

成都创新互联公司是一家集网站建设,蒙阴企业网站建设,蒙阴品牌网站建设,网站定制,蒙阴网站建设报价,网络营销,网络优化,蒙阴网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

fsimpf 积分函数

a,b 积分下上限,eps 精度。

#includestdlib.h

#include math.h

double fsimpf(double x)

{

return sin(x) ;

}

double fsimp(double a,double b,double eps)

{

int n,k;

double h,t1,t2,s1,s2,ep,p,x;

n=1; h=b-a;

t1=h*(fsimpf(a)+fsimpf(b))/2.0;

s1=t1;

ep=eps+1.0;

while (ep=eps)

{

p=0.0;

for (k=0;k=n-1;k++)

{

x=a+(k+0.5)*h;

p=p+fsimpf(x);

}

t2=(t1+h*p)/2.0;

s2=(4.0*t2-t1)/3.0;

ep=fabs(s2-s1);

t1=t2; s1=s2; n=n+n; h=h/2.0;

}

return(s2);

}

void main()

{

double a,b,eps,t;

a=0.0; b=3.141592653589793238; eps=0.0000001;

a definite integral by Simpson Method.

t=fsimp(a,b,eps);

printf("%e\n",t);

printf("\n Press any key to quit...");

getch();

}

用c语言求定积分

#include

#include

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;

}

int main()

C语言编程求函数y=sinx在(0,1)区间的定积分?

#includestdio.h

#includemath.h

#define N 10000000

void main()

{

double sum=0;

int i;

for(i=0; iN; i++)

{

sum += sin((double)(i)/N)/N;

}

printf("%lf\n%lf",sum,1-cos(1));

}

N后面的0有点多了,不过这个数刚好能精确到小数点后6位。

当然,这个程序的算法实在是太垃圾了,效率非常的低下……

怎么用c语言编正弦函数计算

1、C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果。

2、下面用for循环实现sin的算法,程序代码如下:

#includestdio.h

#includemath.h

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泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加。


本文题目:c语言求正弦函数的定积分 c语言正弦余弦函数
当前URL:http://azwzsj.com/article/dohdgei.html