首页 > 其他分享 >C标准库<math.h> (幂函数、对数函数)

C标准库<math.h> (幂函数、对数函数)

时间:2024-09-26 23:18:47浏览次数:10  
标签:幂函数 函数 int double 对数函数 values result include math

幂函数

double pow(double x, double y)

函数简介

用于计算 x 的 y 次幂

参数介绍

  • x: 底数,可以是正数、负数或零。
  • y: 指数,可以是整数或非整数。

返回值

函数返回计算结果,即 x 的 y 次幂。结果的类型是 double

函数用法

#include <stdio.h>
#include <math.h>

int main() {
    double bases[] = {2.0, -2.0, 0.0, 2.0};
    double exponents[] = {3.0, 3.0, 0.0, -2.0};
    int num_values = sizeof(bases) / sizeof(bases[0]);

    for (int i = 0; i < num_values; i++) {
        double x = bases[i];
        double y = exponents[i];
        double result = pow(x, y);
        printf("pow(%f, %f) = %f\n", x, y, result);
    }

    return 0;
}
pow(2.000000, 3.000000) = 8.000000
pow(-2.000000, 3.000000) = -8.000000
pow(0.000000, 0.000000) = 1.000000
pow(2.000000, -2.000000) = 0.250000
请按任意键继续. . .



double sqrt(double x)

函数简介

用于计算一个数的平方根

参数介绍

  • x: 需要计算平方根的数值,必须是非负数。

返回值

函数返回 x 的平方根,结果的类型是 double。如果 x 是负数,则返回一个域错误(domain error),通常表现为返回 NaN(Not a Number)。

函数用法

#include <stdio.h>
#include <math.h>

int main() {
    double values[] = {16.0, 25.0, 100.0, -1.0, 0.0};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        double result = sqrt(x);
        printf("sqrt(%f) = %f\n", x, result);
    }

    return 0;
}
sqrt(16.000000) = 4.000000
sqrt(25.000000) = 5.000000
sqrt(100.000000) = 10.000000
sqrt(-1.000000) = -1.#IND00
sqrt(0.000000) = 0.000000
请按任意键继续. . .

double exp(double x)

函数简介

用于计算自然对数的底数e(约等于2.71828)的x次幂。

参数介绍

  • x: 指数,可以是任何实数。

返回值

函数返回 e 的 x 次幂,结果的类型是 double

函数用法

#include <stdio.h>
#include <math.h>

int main() {
    double values[] = {0, 0.5, 1, 1.5, 2};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        double result = exp(x);
        printf("exp(%f) = %f\n", x, result);
    }

    return 0;
}
exp(0.000000) = 1.000000
exp(0.500000) = 1.648721
exp(1.000000) = 2.718282
exp(1.500000) = 4.481689
exp(2.000000) = 7.389056
请按任意键继续. . .

double ldexp(double x, int exponent) 

函数简介

double ldexp(double x, int exponent) 是 C 语言中的一个数学函数,用于将浮点数 x 乘以 2 的 exponent 次幂。这个函数通常与 frexp 函数配合使用,用于将浮点数的有效数和指数部分重新组合成一个浮点数,这在数值计算和处理浮点数的高级操作中非常有用

参数介绍

  • x: 需要乘以 2 的指数次幂的浮点数。
  • exponent: 以 2 为底的指数,是一个整数。

返回值

该函数返回 x * 2^exponent 的计算结果。如果结果超出了浮点数的表示范围,可能会返回正无穷大或负无穷大,并设置相应的错误标志。

函数用法

#include <stdio.h>
#include <math.h>

int main() {
    double x = 4.0;
    int exponent = 3;
    double result = ldexp(x, exponent);
    printf("%f * 2^%d = %f\n", x, exponent, result);
    return 0;
}

4.000000 * 2^3 = 32.000000
请按任意键继续. . .

对数函数

double log(double x)

函数简介

double log(double x) 是 C 语言中的一个数学函数,用于计算某个数的自然对数,即以 e(欧拉数,自然对数的底数,约等于 2.71828)为底的对数。

参数介绍

  • x: 需要计算自然对数的数值,必须大于 0。

返回值

该函数返回参数 x 的自然对数。如果 x 为正数,返回一个实数;如果 x 为 1,返回 0;如果 x 为负数或 0,返回一个错误值,通常是 NaN(Not a Number)。

函数用法

#include <stdio.h>
#include <math.h>

int main() {
    double values[] = {1.0, 2.718281828, 10.0};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        double result = log(x);

        printf("log(%f) = %f\n", x, result);
	}

    return 0;
}
log(1.000000) = 0.000000
log(2.718282) = 1.000000
log(10.000000) = 2.302585
请按任意键继续. . .

double log10(double x) 

函数简介

用于计算一个数的对数,底数为10。

参数介绍

  • double x: 这是函数的参数,表示要计算对数的数值。参数 x 必须大于0,因为对数函数在0或负数上是未定义的。

返回值

  • 函数返回一个 double 类型的值,表示参数 x 的以10为底的对数。如果计算成功,返回对数值;如果 x 是0,返回负无穷大;如果 x 是负数,返回NaN(不是一个数字)。

函数用法

#include <stdio.h>
#include <math.h>

int main ()
{
   double x, ret;
   x = 10000;
  
   /* 计算 log10(10000) */
   ret = log10(x);
   printf("log10(%lf) = %lf\n", x, ret);
   
   return(0);
}
log10(10000.000000) = 4.000000

标签:幂函数,函数,int,double,对数函数,values,result,include,math
From: https://blog.csdn.net/2401_82772407/article/details/142579310

相关文章

  • Mathtype公式相关:在mathtype中添加任意维数矩阵的方法以及矩阵中省略号的问题;输入空格
    一、在mathtype中添加任意维数矩阵的方法以及矩阵中省略号的问题使用mathtype创建任意维数的矩阵:打开mathtype后可点击矩阵工具栏,再点击右下角的图形,具体情况如下图所示。点击之后会弹出一个对话框如下图所示,可在行列处输入自己想要的行数和列数。使用此方法创建的矩阵都是......
  • JavaScript中的Math对象详解
    JS中的算术运算基本运算:加减乘除求余数,+-*/%.复杂运算:通过Math对象的属性定义的函数和常量来实现。代码实现:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>3.1.3JS中的算术运算</title></head><body>......
  • MATH 524  Nonparametric Statistics
    MATH 524, Fall 2018Nonparametric StatisticsFirst assignment, due Tuesday, September 24, 2024, noon1. Let X be a random variable with cumulative distribution function F. It was shown in class that if F is continuous,then F(......
  • SciTech-Mathmatics-LaTex: LaTeX:从入门到日常使用
    LaTeX:从入门到日常使用发表于2022-02-05|更新于2022-03-20|教程|字数总计:3.6k|阅读时长:12分钟|阅读量:前言:排版工具与书写工具的讨论LaTeX是一种“非所见即所得”的排版系统,用户需要输入特定的代码,保存在后缀为.tex的文件中,通过编译得到所需的pdf文件,例如以下代码:$......
  • SciTech-Mathmatics-Probability+Statistics-数学专业社区(math.stackexchange.com/qu
    SamplingDistributionCouldsomegiveanexamplesof"asetofdistributionsindexedbyaparameter"?Q:Couldsomegiveanexamplesof"asetofdistributionsindexedbyaparameter"?Thispostsays:Thelog-likelihoodis,astheter......
  • SciTech-Mathmatics-Probability+Statistics-VII-Statistics:Quantifing Uncertainty+
    SciTech-Mathmatics-Probability+Statistics-VII-Statistics:QuantifingUncertaintySamplingMethods(抽样方法)的原理与实践(终章)在过去的几篇文章,我们一起探索统计学的许多重要概念与方法:样本与总体,统计量、参数估计、假设检验、置信区间、ANOVA(方差分析),RA(回归分......
  • SciTech-Mathmatics-Probability+Statistics-V-Statistics:Quantifing Uncertainty+AN
    SciTech-Mathmatics-Probability+Statistics-V-Statistics:QuantifingUncertaintyANOVA(ANalysisOfVAriance)方差分析原理方差分析的基本概念(AnalysisofVariance,ANOVA)方差分析(AnalysisofVariance,简称ANOVA)是一种统计方法,用于检验三个或更多组数据的均值是否存在显......
  • Math方法
    ‌JavaScript的Math对象提供了多种数学函数和常数,用于执行数学相关的操作和计算。‌这些方法包括计算绝对值、取整、幂运算、平方根、三角函数、对数函数、指数函数、随机数生成等。以下是一些常用的Math对象方法及其描述:‌计算绝对值‌:使用Math.abs(x)方法,返回数值x的绝对值......
  • 【高中数学/对数函数/大小比较】设a=2/ln2,b=3/ln3,c=e,则a,b,c的大小关系为?
    【问题】设a=2/ln2,b=3/ln3,c=e,则a,b,c的大小关系为?【出处】《高考数学极值解题大招》P38第9题中原教研工作室编著【解答】e=3/lne,故三者的共同的构造函数为f(x)=x/lnx了解了单调性就好解题。f'(x)=(lnx-1)/(lnx)^2 由此可知x=e时,f'(x)=0;x>e时,f'(x)>0;x<e时,f'(x)<0.故x=e是f......
  • 单相逆变器PI控制器参数计算(Mathcad)
    输入电压:300V       电感L1:1mH       负载电阻R1:1Ω   开关频率10k输入到输出传递函数(过程就不推了):幅频特性曲线相频特性曲线 PI传递函数: 设穿越频率为开关频率1/10:fc=1000 计算得到Kp=0.015   Ki=94.2......