matlab digits函式和vpa函式

2021-06-09 02:16:47 字數 891 閱讀 6707

matlab digits函式和vpa函式

**:matlab控制運算精度用的是digits和vpa這兩個函式。digits用於規定運算精度,比如:digits(20);這個語句就規定了運算精度是20位有效數字。

但並不是規定了就可以使用,因為實際程式設計中,我們可能有些運算需要控制精度,而有些不需要控制。vpa就用於解決這個問題,凡是用需要控制精度的,我們都對運算表示式使用vpa函式。

例如:digits(5);a=vpa(sqrt(2));這樣a的值就是1.4142,而不是準確的1.4142135623730950488016887242097、

又如:digits(5);a=vpa(sqrt(2));b=sqrt(2);這樣a的值是1.4142,b沒有用vpa函式,所以b是1.4142135623730950488016887242097......

vpa函式對其中每乙個運算都控制精度,並非只控制結果。

digits(11);a=vpa(2/3+4/7+5/9);b=2/3+4/7+5/9;a的結果為1.7936507936,b的結果為1.793650793650794......也就是說,計算a的值的時候,先對2/3,4 /7,5/9這三個運算都控制了精度,又對三個數相加的運算控制了精度。而b的值是真實值,對它取11位有效數字的話,結果為1.7936507937,與a不同,就是說vpa並不是先把表示式的值用matlab本身的精度求出來,再取有效數字,而是每運算一次,都控制精度。我舉的例子不太好,因為加法不太會增加數字位數。希望你能理解我的意思....

巨集和函式和內聯函式

巨集和函式的區別 巨集做的是簡單的字串替換 注意是字串的替換,不是其他型別引數的替換 而函式的引數的傳遞,引數是有資料型別的,可以是各種各樣的型別.巨集的引數替換是不經計算而直接處理的,而函式呼叫是將實參的值傳遞給形參,既然說是值,自然是計算得來的.巨集在編譯之前進行,即先用巨集體替換巨集名,然後再...

函式和建構函式

函式使用function關鍵字來定義,可以用在函式定義表示式或函式宣告語句中。函式呼叫的4種方法 1 作為函式 1 這是乙個普通函式 2function range 3 函式表示式 4var range function 56 呼叫7 range 2 作為建構函式 看建構函式部分 3 作為方法 1 ...

指標函式和函式指標

指標函式和函式指標 一 指標函式 當乙個函式宣告其返回值為乙個指標時,實際上就是返回乙個位址給呼叫函式,以用於需要指標或位址的表示式中。格式 型別說明符 函式名 引數 當然了,由於返回的是乙個位址,所以型別說明符一般都是int。例如 int getdate int aaa int,int 函式返回的...