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

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

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

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 = 05 term;

}

else

{

tmp = wrksp[1];

wrksp[1] = term;

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

{

dum = wrksp[j+1];

wrksp[j+1] = 05 (wrksp[j] + tmp);

tmp = dum;

}

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

{

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

nterm = nterm + 1;

}

else

{

sum = sum + wrksp[nterm + 1];

}

}

}

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

C语言有反三角函数的,,比如:

float angle,pi_angle;

pi_angle=atan(tanA);//弧度

angle=pi_angle180/314159;//角度,另注:反正弦余弦函数类似,asin,acos

#include<stdioh>

#include <mathh>

void main()

{

double a,b,c,d;

scanf("%f,%f",&b,&d);

a=sin(b);/这是三角函数/

c=asin(d);/这是反三角函数/

printf("sin(b)=%f,asin(d)=%d",a,c);

}

其他三角函数如cos(x)什么的,可以直接用,前提有mathh的头文件

包含头文件 mathh

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

返回值 double 型,弧度值。转角度要 1800/31416

例如:

#include <stdioh>

#include<stdlibh>

#include<mathh>

int main()

{

double x=05;

printf("acos=%2lf degrees\n",acos(x) 1800/31416);

printf("asin=%2lf degrees\n",asin(x) 1800/31416);

printf("atan=%2lf degrees\n",atan(x) 1800/31416);

printf("atan2=%2lf degrees\n",atan2(10,20) 1800/31416);

return 0;

}

如果是可以XY轴反过来,

循环从0到360/2PI

调用TAN函数

结果乘20

循环从0到结果

输出空格

输出星号

不过好像到PI/2就出问题的,定义域要限制好

以上就是关于怎样用C语言表示反正弦,反余弦,反正切函数呢全部的内容,包括:怎样用C语言表示反正弦,反余弦,反正切函数呢、c语言,已知正切值如何求角度、用C语言实现三角函数及反三角函数怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10112392.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存