重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言表示反余弦函数 c语言中反正切函数怎么表示

c语言中arccos

#include math.h 然后调用 double acos(double x) 这个函数,根据反余弦的定义,x应该在 [-1, 1] 之间,超出此范围,函数将设置 errno 为 EDOM 表示出错

创新互联建站专注于琼山企业网站建设,响应式网站,购物商城网站建设。琼山网站建设公司,为琼山等地区提供建站服务。全流程按需设计,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

用c语言编写cosx函数

cosx函数

#includestdio.h

#includemath.h

int main()

{

int n=0;

double x,sum=0;

printf("please enter x:");

scanf("%lf",x);//

double cosx(double x,int n);

do

{

sum=sum+cosx(x,n);

n=n+1;

}

while(fabs(cosx(x,n))1e-8);

printf("%9.8f\n",sum);

return 0;

}

double cosx(double x,int n)

{

double p,q;//

p=pow(x,2*n);

double fact(int n);//

q=fact(2*n);

if(n%2)

return(-p/q);

else

return(p/q);

}

double fact(int n)//

{

double ans=1; int i;

if(n=1)

return 1;

for(i=1;i=n; ++i)

ans*=i;

return ans;

}

cosx函数即反余弦函数

函数y=cosx(x∈[0,π])的反函数叫做反余弦函数,

记作y=arccosx(x∈[-1,1]).

怎样用C语言表示反正弦,反余弦,反正切函数呢?

计算反正切函数(使用欧拉变换公式,精度很高),反正切函数的级数展开公式:

f(x) = x - x^3/3 + x^5/5 +...+ (-1)^k * x^(2k+1)/(2k + 1)+...

当|x| 1时,级数绝对值发散,无法直接使用欧拉公式计算。因此可以通过下面的公式

进行等价转换之后再进行计算。

等价转换公式:

a) ATan(1/x) = Pi/2 - ATan(x)

b) ATan(-x) = - ATan(x)

特殊情况

0 = ArcTan(0)

Pi/2 = ArcTan(无穷大)

//

// 欧拉公式

//

// sum是和,term是通项值,jterm初始为1,以后按1递增。wrksp是工作单元,视jterm的

// 最大值而定。

//

void eulsum(int nterm,double *sum,double term,int jterm,double wrksp[])

{

double tmp,dum;

if(jterm == 1)

{

nterm = 1;

wrksp[1] = term;

*sum = 0.5 * term;

}

else

{

tmp = wrksp[1];

wrksp[1] = term;

for(int j=1; j = nterm; j++)

{

dum = wrksp[j+1];

wrksp[j+1] = 0.5 * (wrksp[j] + tmp);

tmp = dum;

}

if(fabs(wrksp[nterm + 1]) = fabs(wrksp[nterm]))

{

*sum = *sum + 0.5 * wrksp[nterm + 1];

nterm = nterm + 1;

}

else

{

*sum = *sum + wrksp[nterm + 1];

}

}

}

级数计算就不用我给代码了吧。

C语言中反三角函数的调用

包含头文件 math.h

反3角函数有 acos(double),asin(double),atan(double),atan(double,double),

返回值 double 型,弧度值。转角度要 *180.0/3.1416

例如:

#include stdio.h

#includestdlib.h

#includemath.h

int main()

{

double x=0.5;

printf("acos=%.2lf degrees\n",acos(x) * 180.0/3.1416);

printf("asin=%.2lf degrees\n",asin(x) * 180.0/3.1416);

printf("atan=%.2lf degrees\n",atan(x) * 180.0/3.1416);

printf("atan2=%.2lf degrees\n",atan2(1.0,2.0) * 180.0/3.1416);

return 0;

}


文章名称:c语言表示反余弦函数 c语言中反正切函数怎么表示
文章分享:http://cqcxhl.cn/article/dddgdii.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP