2013-05-20 151 views
0

我試圖整合使用MATLAB x和該任務是使用下面的命令很簡單:Matlab的數值積分

syms x 

a=int(x) 

的問題是我不知道如何實現數值積分。我想用不同的技術使用一定數量的間隔來集成x。

任何人都可以幫助我的語法要求數值積分? MathWorks網站不是很有幫助。

我也知道有一種方法稱爲陷阱,但我正在尋找matlab中的其他方法,如黎曼和近似。

更新

所以具體是什麼我要找的是將打破x轉換成8個區域,然後添加這些8個拼湊的功能。除了trapz之外,有沒有預定義的功能可以做這樣的事情?

好的,我想我已經得出結論,沒有這樣的事情。你必須自己做。

回答

3

數值積分你有功能的廣泛號在您的處置:

trapz 
quad 
quadgk 
integral 

爲單維的整合。

相反,如果你有興趣在多維集成技術,你可能會覺得利用以下功能

dblquad 
quad2d 
integral2 
integral3 

編輯

在你的情況,我會繼續這個方法:

x = 0:.1:2; 
y = x; 
trapz(x,y); 

y = @(x) x; 
quad(y,0,2); 

EDIT 2

這給看看:

clc,clear 

s = 0:7; 
y = @(x) x; 

k = 1; 
for ii = 1:numel(s)-1 
    f(k) = quad(y,s(k), s(k+1)); 
    k = k + 1; 
end 
sum(f) 
+0

因此,爲了確保我理解這一權利,這些功能不會對我工作的原因之前是因爲我使用「syms x」而不是使xa向量的增量長度爲「b」,以「a」開始並以「b」結束。從那裏,我可以打電話給你提到的任何功能?哇!謝謝 – Mechy

+0

@Mechy:'syms'正在調用**符號工具箱**,而我上面提到的函數會以數值的方式計算您的積分。 – fpe

+0

你能解釋一下你的符號「y = @(x)x」多一點。那是幹什麼的?我可以指定我的區間長度還是四區間的區間數量? 「y = f(x)」也不起作用。 Matlab不喜歡那樣。還是你說我在這些位置計算函數的值,然後將它們輸入到矢量中? – Mechy