2014-04-19 32 views
1

當我跑瞭如下定義的功能整合的一個簡單的練習,雙反相象徵

clear all; 
syms z tau; 
deltav=tau^(1/(3*z))-tau^(1/(4*z)); 
deltax=1/(0.5+12*z)*(tau^(1/(3*z))-tau^(1/(4*z))); 
a=1; 
b=9; 
tau=0.5; 
mu_vx=int(deltav*deltax,a,b); 
mu_x2=int(deltax^2,a,b); 
ratio=double(mu_vx/mu_x2); 

我使用==> mupadmex 在MuPAD命令的錯誤得到錯誤信息從MATLAB說「???錯誤:DOUBLE不能將輸入表達式轉換爲雙數組。如果輸入表達式包含符號變量,請改用VPA 函數。「

所以我插上「的DeltaV」,並在整合「DELTAX」的表達,並運行

clear all; 
syms z tau; 
deltav=tau^(1/(3*z))-tau^(1/(4*z)); 
deltax=1/(0.5+12*z)*(tau^(1/(3*z))-tau^(1/(4*z))); 
a=1; 
b=9; 
tau=0.5; 
mu_vx=int((tau^(1/(3*z))-tau^(1/(4*z)))*1/(0.5+12*z)*(tau^(1/(3*z))- tau^(1/(4*z))),a,b); 
mu_x2=int((1/(0.5+12*z)*(tau^(1/(3*z))-tau^(1/(4*z))))^2,a,b); 
ratio=double(mu_vx/mu_x2) 

它的工作原理這個時候。我想知道如何在不堵塞長期表達的情況下完成第一種工作。謝謝。

回答

0

有時solve需要找到一個明確的解決方案

mu_vx=int(solve(deltav*deltax),a,b); 
mu_x2=int(solve(deltax^2),a,b); 
ratio=double(mu_vx/mu_x2); 
+0

我已經試過你的答案。它不能用mu_vx = int(solve(deltav * deltax),a,b);或通過mu_vx = solve(int(deltav * deltax,a,b)); –

+0

使用Matlab 2013a我得到結果'1' – Daniel