2014-03-07 148 views
0

這是我使用的代碼:MATLAB:你如何計算matlab中指數函數的積分?

delta=2*10^-6; 
[email protected](z) ('exp((z^2)/(2*(delta^2))))/(delta*sqrt(2*pi))'); 
z=0:(0.1*10^-6):(5*10^-6); 
integral(f,0,(5*10^-6)) 

以下錯誤消息上來:

Error using integralCalc/finalInputChecks (line 511) 
Input function must return 'double' or 'single' values. Found 
'char'. 

Error in integralCalc/iterateScalarValued (line 315) 
       finalInputChecks(x,fx); 

Error in integralCalc/vadapt (line 133) 
      [q,errbnd] = iterateScalarValued(u,tinterval,pathlen); 

Error in integralCalc (line 76) 
     [q,errbnd] = vadapt(@AtoBInvTransform,interval); 

Error in integral (line 89) 
Q = integralCalc(fun,a,b,opstruct); 

Error in interfacetemp (line 4) 
integral(f,0,(5*10^-6)) 

我試圖計算下列積分:EXP((Z^2)/( 2 *(delta^2))))/(delta * sqrt(2 * pi))其中delta是函數的標準偏差並且已知爲(2 * 10^-6)。有人有主意嗎?

+0

你會發現,你在計算正態分佈的密度,如果你裏面添加一個減號取得更好的效果指數函數。 'EXP(-z。^ 2 /(2 * d^2))/(d * SQRT(2 * PI))' – LutzL

回答

3

請嘗試下面的代碼。

delta = 2e-6; 
f = @(z) exp((z.^2)/(2*(delta.^2)))/(delta*sqrt(2*pi)); 
integral(f, 0, 5e-6) 

你的功能不應該是引號之間,你必須使用.^來計算指數