1. 程式人生 > >c語言中的abs

c語言中的abs

Pascal

Function Abs(X : Real) : Longint;

功 能: 求數的絕對值

例:

Begin

{ 語句; { (X資料型別) 輸出結果 } }

Writeln(Abs(84.23)); {(Real) 8.42E+0001 }

Writeln(Abs(-111222333)); {(Longint) 111222333 }

Writeln(Abs(-1112223334324445556)); {(Int64) 1112223334324445556 }

End.

Matlab

求複數實部與虛部的平方和算術平方根

格式:abs(x)

例如:x=1+j;

y=abs(x);

>>y=1.4142

描述

返回數字的絕對值

語法

Abs(number)

number 引數不能是任意的,不能是浮點數或者雙精度運算數值表示式,如果 number 包含 Null,則返回 Null;如果是未初始化變數,則返回 0。

說明

數字的絕對值是其無符號的數值大小。例如,Abs(-1) 和 Abs⑴ 都返回 1。

而對於在matlab中相似的函式double,double(-1)則返回-1,也就是說abs(X)返回的是X的絕對值(absolute),而double(X)返回的則是X的精確值(presision vlaue)

在C++中,相應的函式為 abs()

標頭檔案可以是

cstdlib,或是 cmath

但是用cmath時,abs(int i)會出現二義性(在gcc編譯器上),所以還是用cstdlib做為標頭檔案好

在matlab中有時會遇到函式abs(1,x)這樣的函式,這個比一般abs多一個輸入量

他表示函式abs(x)的導數

因為abs(x)在0點的導數是不存在的,而對於x為複數 abs(x)是不解析的,所以他的取值只能是正數或者負數

這個函式是matlab呼叫maple核心 所以不能直接在matlab裡來進行數值計算 否則matlab會提示abs使用錯誤

對abs(1,x)賦值可以用subs來做

見以下執行命令

eg:

>> syms d

>> p=abs(d);

>> h=diff(p)

h =

abs(1,d)

>> subs(h,{d},5)

ans =

1

> subs(h,{d},-5)

ans =

-1

>> subs(h,{d},0)

??? Error using ==>maple

Error,(in simpl/abs) abs is not differentiable at 0

Error in ==> sym.subs at 132

proctest = maple(['whattype(eval(subs(' char(sym(OLDexpr)) ' = ' ...

>> subs(h,{d},1+i)

??? Error using ==> maple

Error,(in simpl/abs) abs is not differentiable at non-real arguments

Error in ==> sym.subs at 132

>> abs(1,2)

??? Error using ==> abs

Too many input arguments.