
计算反正切函数(使用欧拉变换公式,精度很高),反正切函数的级数展开公式:
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语言实现三角函数及反三角函数怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)