matlab裡的vpa函式問題 5

2025-07-12 22:20:12 字數 1531 閱讀 2368

matlab vpa的使用問題

1樓:網友

函式factorial只能對數值型別的整數計算階乘,而你這裡的計算x既不是數值型別,也不是整數。

一般實數的階乘定義為。

不過,我們也可以不關心它的定義,直接用下面的方法來計算:

syms x

vpa(int((2.^x)*exp(-2)/sym('x!'),x,0,,5)

warning: explicit integral could not be found.

in d:\matlab6p5\toolbox\symbolic\@sym\ at line 58ans =

由於積分求不出顯式解,會導致乙個警告,但不影響求解結果。

關於matlab中使用vpa的精度問題,急用啊!

2樓:網友

vpa的help裡面講過這個問題了,要避免這種寫法(實際上變成雙精度)

而要這樣寫才能保持精度:

vpa(' ')

ans =

為什麼vpa函式在matlab混合程式設計時就不能用了?

3樓:網友

有可能是軟體損壞。或則更新過的緣故。

4樓:網友

我也遇到同樣問題, 來你是怎麼解決的, 匯出exe,不用工具箱命令? 那好複雜啊。。。

vap在matlab中是什麼意思?

5樓:騰訊電腦管家

matlab控制運算精度用的是digits和vpa這兩個函式digits用於規定運算精度,比如:

digits(20);

這個語句就規定了運算精度是20位有效數字。

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

digits(5);

a=vpa(sqrt(2));

這樣a的值就是,而不是準確的。

又如:digits(5);

a=vpa(sqrt(2));

b=sqrt(2);

這樣a的值是,b沒有用vpa函式,所以b是vpa函式對其中每乙個運算都控制精度,並非只控制結果。

digits(11);

a=vpa(2/3+4/7+5/9);

b=2/3+4/7+5/9;

a的結果為,b的結果為也就是說,計算a的值的時候,先對2/3,4 /7,5/9這三個運算都控制了精度,又對三個數相加的運算控制了精度。而b的值是真實值,對它取11位有效數字的話,結果為,與a不同,就是說vpa並不是先把表示式的值用matlab本身的精度求出來,再取有效數字,而是每運算一次,都控制精度。

matlab 中double和vpa有啥區別啊?

6樓:網友

前者是固定精確位數,後者是可以精確到你指定的位數。

MATLAB中datenum函式的問題

命令格式 datestr d,form 顯示序列數d表示的 form表示形式的日期。form引數從0 18,共19個整數,各代表0 dd mmm yyyy,1 dd mmm yyyy,2 mm dd yy 3 mmm 月的前三個字母 4 m 月的首寫字母 5 m 月的阿拉伯數字 6 mm dd,7 ...

用matlab遺傳演算法解決函式優化問題

matlab 中的fimincon函式優化 matlab遺傳演算法優化問題中,非線性等式約束怎麼新增啊?建立約束條件函式,把非線性的等式約束條件新增加在 c,ceq 中。如function c,ceq noncon x c x 1 2 x 2 2 9 ceq 然後,再用ga 函式呼叫,如 x,fva...

用matlab求解優化問題(目標函式非線性,約束函式線性

程式編的非常好,只有一句 size x 4,3 改為x zeros 4,3 即可。function fff clear clc a 1,1,1,0,0,0,0,0,0,0,0,0 0,0,0,1,1,1,0,0,0,0,0,0 0,0,0,0,0,0,1,1,1,0,0,0 0,0,0,0,0,0,...