2017-09-04 44 views
2

我是Octave的新手(和matlab有關)。我有一個看起來像這樣如何用Octave繪製3個變量的函數?

enter image description here

我想積克(X,0.5,5)說的功能。

這是我在八度試圖

我定義了一個匿名函數

[email protected](n,x,t) 1./n.*log(n.*pi.*t).*sin(n.*pi.*x); 

然後又匿名函數

[email protected](m,x,t)x.^2+sum(f([1:m],x,t)); 

最後定義

x=-1:0.1:1; 
plot(x,g(5,x,0.5)) 

但我得到一個錯誤。這是繪製這個函數的正確方法嗎?我必須做一個簡單的初學者錯誤?

+1

你使用f(1:5,-1:0.1:1,0.5)的'f(n,x,t)',即'n'有5個元素 ,'x'有21個元素,它們不能相乘方式和因此的錯誤 –

回答

3

當您撥打f(n,x,t)時,您正在爲n傳遞1乘5的矢量,爲x傳遞1乘21矢量。它們具有不同數量的元素,因此不能逐個元素地相乘。但是,你可以重寫f以適應每個載體,通過使用矩陣乘法從g執行總和:

f = @(n, x, t) (1./n.*log(n.*pi.*t))*sin(pi.*n(:)*x); 
g = @(m, x, t) x.^2 + f(1:m, x, t); 

現在你的劇情將工作:

x = -1:0.1:1; 
plot(x, g(5, x, 0.5)); 

enter image description here