zoukankan      html  css  js  c++  java
  • 常用的数学函数说明

    <math.h>是C函数库中比较重要的一个库,个人收集了一些自己常用的库,并对一些难以理解的函数附带实例或说明。这里我把<math.h>分成了六类,分别是:
    三角函数库;
    反三角函数库;
    双曲函数库;
    指数函数库与对数函数库;
    幂函数库;
    绝对值函数库以及求余函数库。
    这里针对这六类分别讲解,相信你一定能很好掌握。
    一、三角函数库:
    double sin(double x);
    double cos(double x);
    double tan(double x);
    没有现成的cot三角函数,可以使用tan(PI/2-x)来实现。
    二、反三角函数库:
    double asin(double x);取值范围在[-PI/2,PI/2]之间
    double acos(double x);取值范围在[0,PI]之间
    double atan(double x);取值范围在(-PI/2,PI/2)之间
    double atan2(double y,double);取值范围在(-PI,PI)之间;这是一个不太常见的函数,主要用来返回y/x的反正切值。#define PI 3.14159265
    三、双曲函数库:
    double sinh(double x);计算双曲正弦
    double cosh(double x);计算双曲余弦
    double tanh(double x);计算双曲正切
    如果你你要问我双曲是干什么的,我没法告诉你,只能告诉你可以参考《高等数学》同济大学第六版上册中有一篇专门描述。再强调一点,以上三类传参都是针对以弧度表示的数值,非角度表示的数值。
    四、指数函数库与对数函数库:
    double frexp(double value,int *exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2exp。其中f取值在0.5~1.0范围或者0。
    例如:frexp(24,&exp); => exp=5,返回值f为0.75。double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2exp。
    double modf(double value,double *iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
    double log(double x);返回以e为底的自然对数。
    double log10(double x);返回常用对数。
    五、幂函数库:
    double pow(double x,double y);返回xy的值。
    double exp(double x);返回ey的值。
    double sqrt(double x);返回 的值。
    六、绝对值函数库以及求余函数库:
    double ceil(double x);返回比x大的最小整数
    double floor(doulbe x);返回比x小的最大整数
    这两个函数比较容易混淆,这里我给大家介绍一种方法,ceil与floor首字母分别是c与f,取值在c与f之间,所以对于ceil函数取最小整数,对于floor函数取最大整数。
    double fabs(double x);
    int abs(int x);这两个函数分别对实型数据和整型数据取绝对值;其实abs函数也定义在<stdlib.h>库中。
    double fmod(double y,double x);考虑到%只适用与整型数据,这里提出一个专门针对实型数据的取余运算的函数。
    附:atan2 返回给定的 X 及 Y 坐标值的反正切值。
    反正切的角度值等于 X 轴与通过原点和给定坐标点 (Y坐标, X坐标) 的直线之间的夹角。
    结果以弧度表示并介于 -pi 到 pi 之间(不包括 -pi)。   
    语法   
    ATAN2(Y坐标,X坐标)   
    X坐标 点的 X 坐标。   
    Y坐标 点的 Y 坐标。   
    说明   
    结果为正表示从 X 轴逆时针旋转的角度,结果为负表示从 X 轴顺时针旋转的角度。   
    1.ATAN2(a, b) 与 ATAN(a/b)稍有不同,ATAN2(a,b)的取值范围介于 -pi 到 pi 之间(不包括 -pi),   
    而ATAN(a/b)的取值范围介于-pi/2到pi/2之间(不包括±pi/2)。   
    2.如果 X坐标 和 Y坐标 都为零,ATAN2 返回错误值 #Div/0!。   
    3.若要用度表示反正切值,请将结果再乘以 180/3.14159。   
    示例   如果将示例复制到空白工作表中,可能会更易于理解该示例。


    --
     
  • 相关阅读:
    传统IO拷贝与零拷贝技术比较
    NIO编程之多客户端聊天系统
    NIO编程模式示例
    java.nio.channels.IllegalBlockingModeException
    NIO之Buffer操作示例
    NIO之FileChannel操作示例
    Flask学习笔记04之路由重定向
    python对象之__call__方法
    在Android Studio中找不到AppCompatActivity解决方案
    信息反馈-冲刺04
  • 原文地址:https://www.cnblogs.com/furenjun/p/2552452.html
Copyright © 2011-2022 走看看