當前位置:首頁 » 編程軟體 » acos源碼編譯

acos源碼編譯

發布時間: 2023-12-08 22:07:02

㈠ 求函數sqrt,asin,acos源代碼

/*
*sqrt源代碼
*/
double my_sqrt(double x)
{
register double ret;
__asm__(
"fsqrt"
: "=t" (ret)
: "0" (x)
);

return ret;
}//計算x的平方根

/*
*asin源代碼
*/
double atan2 (double x, double y)
{
register double ret;
__asm__(
"fpatan\n\t"
"fld %%st(0)"
: "=t" (ret)
: "0" (y), "u" (x)
);

return ret;
}//求x / y的反正切值。
double my_asin(double x)
{
return atan2 (x, sqrt (1.0 - x * x));
}//求x的反正弦值。

/*
*acos源代碼
*/
double atan2 (double x, double y)
{
register double ret;
__asm__(
"fpatan\n\t"
"fld %%st(0)"
: "=t" (ret)
: "0" (y), "u" (x)
);

return ret;
}//求x / y的反正切值。
double my_acos(double x)
{
return atan2 (sqrt (1.0 - x * x), x);
}//求x的反餘弦值。

/***********************/
以上是你要求的源代碼,如果你要自己來實現,可以參考數值計算或數值逼近
sqrt:可以使用牛頓迭代公式,f(x)=x^2 - a
求零點(即方程f(x)=0的根),就是開方了。

而對於後面的兩個,sin cos exp 是用泰勒公式和麥克勞林公式來計算,通過這里演化迭代就可以了,對於任何的c還是c++的編譯器,在庫函數裡面都應該有這些基本的數學函數的,你在使用的時候加上#include<math.h>就可以了

㈡ 怎樣用C語言編寫數學公式

1、C語言有現場的常用數學函數,所在函數庫為math.h、stdlib.h。

函數名及解釋:
int abs(int i) 返回整型參數i的絕對值
double cabs(struct complex znum) 返回復數znum的絕對值
double fabs(double x) 返回雙精度參數x的絕對值
long labs(long n) 返回長整型參數n的絕對值
double exp(double x) 返回指數函數ex的值
double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中
double ldexp(double value,int exp); 返回value*2exp的值
double log(double x) 返回logex的值
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回xy的值
double pow10(int p) 返回10p的值
double sqrt(double x) 返回+√x的值
double acos(double x) 返回x的反餘弦cos-1(x)值,x為弧度
double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度
double atan(double x) 返回x的反正切tan-1(x)值,x為弧度
double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x為弧度
double cos(double x) 返回x的餘弦cos(x)值,x為弧度
double sin(double x) 返回x的正弦sin(x)值,x為弧度
double tan(double x) 返回x的正切tan(x)值,x為弧度
double cosh(double x) 返回x的雙曲餘弦cosh(x)值,x為弧度
double sinh(double x) 返回x的雙曲正弦sinh(x)值,x為弧度
double tanh(double x) 返回x的雙曲正切tanh(x)值,x為弧度
double hypot(double x,double y) 返回直角三角形斜邊的長度(z),x和y為直角邊的長度,z2=x2+y2


2、復雜的數學函數可以用自定義函數的形式實現。

例如:

doubleConerVelocity(intA,doublex1,doubley1,doublex2,doubley2,doublet1,doublet2)
{
doubleT,V;
T=acos(abs(x1*x2+y1*y2)/sqrt(x1*x1+y1*y1)/sqrt(x2*x2+y2*y2));
V=(A*(t2-t1))/(2*sin(T/2));
returnV;
}
熱點內容
在程序存儲器 發布:2024-02-24 06:47:19 瀏覽:217
智能雲路由管理員密碼多少 發布:2024-02-24 06:36:22 瀏覽:276
node調用python 發布:2024-02-24 06:11:55 瀏覽:124
山西中國網路時間伺服器雲空間 發布:2024-02-24 06:03:30 瀏覽:41
手機懸浮字體怎麼弄安卓 發布:2024-02-24 05:51:29 瀏覽:792
php提交表單自己 發布:2024-02-24 05:41:22 瀏覽:106
jquery多文件上傳 發布:2024-02-24 05:38:24 瀏覽:272
php獲取伺服器地址 發布:2024-02-24 05:36:08 瀏覽:125
現在學哪種編程語言好 發布:2024-02-24 05:35:28 瀏覽:264
flyme6雲存儲在哪裡 發布:2024-02-24 05:17:11 瀏覽:433