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,...