包含头文件 math.h
创新互联公司是工信部颁发资质IDC服务器商,为用户提供优质的成都机柜租用服务
反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语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入:
#includemath.h
编译时,必须加上参数「-lm」(表示连结至数学函式库),例如「gcc-lmtest.c」。
函数之自变量与传回之值型别见自变量或函数前之型别宣告。
函数已经在「math.h」或其它标头档宣告过了,因此在使用时不必再加型别宣告,例如「y=sin(x);」,不用写成「y=doublesin(doublex);」。
函数说明
doublesin(doublex)
x的正弦函数值
doublecos(doublex)
x的余弦函数值
doubletan(doublex)
x的正切函数值
doubleasin(doublex)
x的反正弦函数值sin-1x,x的值在[-1,1]之间,传回的值在[-p/2,p/2]之间
doubleacos(doublex)
x的反余弦函数值cos-1x,x的值在[-1,1]之间,传回的值在[-p/2,p/2]之间
doubleatan(doublex)
x的反正切函数值tan-1x,传回的值在[-p/2,p/2]之间
doubleatan2(doubley,doublex)
y/x的反正切函数值tan-1(y/x),传回的值在[-p,p]之间
doublesinh(doublex)
x的双曲正弦函数值
doublecosh(doublex)
x的双曲余弦函数值
doubletanh(doublex)
x的双曲正切函数值
doubleexp(doublex)
x的指数函数ex
doublelog(doublex)
x的自然对数ln(x),x0
doublelog10(doublex)
x底数为10的对数,log10x,x0
doublepow(doublex,doubley)
x的y次方xy
doublesqrt(doublex)
x的根号值√x
doubleceil(doublex)
不小于x的最小整数(但其型别为double)
doublefloor(doublex)
不大于x的最大整数(但其型别为double)
intabs(intx)
整数x的绝对值|x|
longlabs(longx)
长整数x的绝对值|x|
doublefabs(doublex)
实数x的绝对值|x|
例如要使用cos的反函数arccos,C语言里有acos()函数,在头文件math.h里。
1、C语言中,数学函数是函数的一种。指专门进行数学运算的函数,一般都在math.h头文件下。如果该标准库内存在某个函数的反函数,直接调用该反函数即可计算。
2、数学函数列表:
1)int abs(int i); 求整数的绝对值。
2)long labs(long n); 求长整型数的绝对值。
3)double fabs(double x); 求实数的绝对值。
4)double floor(double x); 求不大于x的最大整数,它相当于数学函数[x]。
扩展资料:
语言组成:基本构成。
数据类型:C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量与变量:常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组:如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,中括号内的索引值是从0算起的。
参考资料来源:百度百科-c语言
C 的 双曲函数是 cosh,sinh,tanh
没有反双曲函数。
双曲函数是 exp 函数 组合。
反双曲函数要自己写。
计算反正切函数(使用欧拉变换公式,精度很高),反正切函数的级数展开公式:
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];
}
}
}
级数计算就不用我给代码了吧。
是的啊,我给你再举个例子,以下两行分别打印出tan(45)=1,atan(1)=45。
注意:要用double类型,不然会得到错误的结果。
#include stdio.h
#include math.h
#define pi 3.1415926
void main()
{
printf("%f\n",tan(double(45)/double(180)*pi));
printf("%f\n",atan(1)*double(180)/pi);
}