2015-02-23 101 views
1

我有一個函數,我想要評估爲一個整數(使用函數'積分',它採用函數句柄在它的參數中)使用符號變量,但我想創建一個matlabFunction(一個匿名函數)這些符號變量之一,並將其​​他符號視爲常量。使用matlabFunction,我怎樣才能指定哪個是變量,哪些是常量?

s = (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)  

S = matlabFunction(s) 

S = 

@(a,g,t,v)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0) 

但我想看到的是

@(t)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0) 

回答

0

這裏有解決方法。

函數integral數值上集成了一個函數。因此,要使用它,您需要一個數字表達式,因此您需要給agv的值。

如果你不想這樣做,你可以象徵性地整合式s,所以:

s = (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)  
int(s,'t') 
ans= 
(t/2 + (v*sin(a))/(2*g))*(g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (log((g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (t*g^2 + v*sin(a)*g)/(g^2)^(1/2))*(g^2*v^2 - g^2*v^2*sin(a)^2))/(2*(g^2)^(3/2)) 

然後,你可以使用積分基本定理計算積分。

相關問題