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()
但是用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,(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.