當前位置:首頁 » 編程語言 » c語言lm
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言lm

發布時間: 2022-11-13 11:56:20

⑴ 怎樣用c語言表示反正弦,反餘弦,反正切函數呢

計算反正切函數(使用歐拉變換公式,精度很高),反正切函數的級數展開公式:

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,m;

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++)
{
m = wrksp[j+1];
wrksp[j+1] = 0.5 * (wrksp[j] + tmp);
tmp = m;
}

if(fabs(wrksp[nterm + 1]) <= fabs(wrksp[nterm]))
{
*sum = *sum + 0.5 * wrksp[nterm + 1];
nterm = nterm + 1;
}
else
{
*sum = *sum + wrksp[nterm + 1];
}
}
}

級數計算就不用我給代碼了吧。

⑵ c語言怎樣輸入對數

#include<stdio.h>

#include <math.h>

void main()

{

float x=5,y;

y=log(x);

printf("%f ",y);

}

(2)c語言lm擴展閱讀:

C語言中使用對數函數的方法

log()函數:返回以e為底的對數值

頭文件:

1#include

log() 函數返回以 e 為底的對數值,其原型為:

1doublelog(doublex);

log()用來計算以e為底的 x 的對數值,然後將結果返回。設返回值為 ret,則

1x = eret

如果 x 為負數或 0,則會發生錯誤並設置 errno 值。錯誤代碼:

EDOM:參數x 為負數;

ERANGE:參數x

為零值,零的對數值無定義。

注意:使用 GCC 編譯時請加入-lm。




⑶ 求用C語言編的LM擬合演算法(Levenberg-Marquardt 演算法)

http://wenku..com/link?url=__T_FJ94kfzm1wmvsr7MlDifKLT7ZWcG

⑷ c語言的開方函數

(1)函數頭文件:math.h;

(2)函數功能: 計算一個非負實數的平方根;

(3)函數原型:double sqrt(double);

(4)參數介紹:()中是double,返回值可能是double 也可能是int;

(5)函數應用:sqrt系Square Root Calculations(平方根計算),通過這種運算可以考驗CPU的浮點能力。

⑸ C語言用gedit編程結束用gcc編譯時輸入-lm是為了什麼比如程序是a.c,編譯gcc a.c -lm。在線等!

那是因為你的程序裡面用到了數學函數吧?
也就是說用到了<math.h>
在gcc裡面,需要手動鏈接數學函數庫,所以要加上那句

純手打
謝謝採納

⑹ C語言中關於英尺、英寸、厘米的換算

(foot+inch/12)*0.3048 = cm / 100

foot+inch/12 = cm / (100 * 0.3048) = cm / 30.48

因為1foot = 12inch,所以inch / 12 < 1,所以foot = cm/30.48的整數部分 inch / 12 = cm/30.48的小數部分。

六七行就是完成這個功能。

(6)c語言lm擴展閱讀:

一、英尺和英寸的知識

1、1碼 = 3英寸 ,1英尺 = 12 英寸;

2、碼英文字母是 yard

3、英尺英文字母是 foot( 單數 ) feet( 復數 )

4、英寸英文單詞是 inch ( 單數 )inches( 復數 )

二、長度單位轉換

#include<stdio.h>

#define Mile_to_meter 1609 //1英里 = 1690米

#define Foot_to_centimeter 30.48 //1英里 = 1690米

#define Inch_to_centimeter 2.54 //1英里 = 1690米

int main(){

float mile, foot, inch;

scanf("%f%f%f", &mile, &foot, &inch);

printf("%fmiles = %f meters ", mile, mile * Mile_to_meter);

printf("%ffeet = %f centimeters ", foot, foot * Foot_to_centimeter );

printf("%finches = %f centimeters ", inch, inch * Inch_to_centimeter );

return 0;
}

⑺ c語言反正切

C語言中之數學函數
C語言提供了以下的數學函數,要使用這些函數時,在程序文件頭必須加入:
#include <math.h>
編譯時,必須加上參數「-lm」(表示連結至數學函式庫),例如「gcc -lm test.c」。
函數之自變數與傳回之值型別見自變數或函數前之型別宣告。
函數已經在「math.h」或其它標頭檔宣告過了,因此在使用時不必再加型別宣告,例如「y=sin(x);」,不用寫成「y=double sin(double x);」。
函數說明
double sin(double x)
x 的正弦函數值
double cos(double x)
x 的餘弦函數值
double tan(double x)
x 的正切函數值
double asin(double x)
x 的反正弦函數值 sin-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double acos(double x)
x 的反餘弦函數值cos-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double atan(double x)
x 的反正切函數值tan-1x,傳回的值在 [-p/2,p/2] 之間
double atan2(double y, double x)
y/x 的反正切函數值tan-1(y/x),傳回的值在 [-p, p] 之間
double sinh(double x)
x 的雙曲正弦函數值
double cosh(double x)
x 的雙曲餘弦函數值
double tanh(double x)
x 的雙曲正切函數值
double exp(double x)
x 的指數函數 ex
double log(double x)
x 的自然對數 ln(x),x > 0
double log10(double x)
x 底數為 10 的對數,log10x,x > 0
double pow(double x, double y)
x 的 y 次方 xy
double sqrt(double x)
x 的根號值 √x
double ceil(double x)
不小於 x 的最小整數(但其型別為 double)
double floor(double x)
不大於 x 的最大整數(但其型別為 double)
int abs(int x)
整數 x 的絕對值 |x|
long labs(long x)
長整數 x 的絕對值 |x|
double fabs(double x)
實數 x 的絕對值 |x|

⑻ c語言中的開方

頭文件:#include <math.h>

sqrt() 用來求給定值的平方根,其原型為:double sqrt(double x);double sqrt(double x)。

x 為要計算平方根的值。

如果 x < 0,將會導致 domain error 錯誤,並把全局變數 errno 的值為設置為 EDOM。

返回 x 平方根。注意,使用 GCC 編譯時請加入-lm。實例計算200 的平方根值。

例子:

#include <math.h>main(){double root;root = sqrt(200);printf("answer is %f ", root);}

輸出結果:answer is 14.142136。

(8)c語言lm擴展閱讀:

使用sqrt函數需要注意的事項:

1、sqrt函數運行的是結果是算術平方根,即不能運算處負數值,也不能輸出虛數結果。如需要得到算術平方根中的負數值,則應該在sqrt函數前添加負號。

2、sqrt函數的參數必須是非負數值,如果是負數值,則輸出會報錯,即數值無效;如果參數是未定義的非數字變數,則按回車後也會報錯,即變數名有誤。

3、sqrt函數的計算精度與C語言設置的精度有關,可以通過設置更改精度。

⑼ 如何用c語言來編寫lm629中busy bit 的程序,謝謝。

用作micromouse(電腦鼠),

⑽ 用C語言表示反正弦,反餘弦,反正切函數

計算反正切函數(使用歐拉變換公式,精度很高),反正切函數的級數展開公式:

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,m;

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++)
{
m = wrksp[j+1];
wrksp[j+1] = 0.5 * (wrksp[j] + tmp);
tmp = m;
}

if(fabs(wrksp[nterm + 1]) <= fabs(wrksp[nterm]))
{
*sum = *sum + 0.5 * wrksp[nterm + 1];
nterm = nterm + 1;
}
else
{
*sum = *sum + wrksp[nterm + 1];
}
}
}

級數計算就不用我給代碼了吧。