2014-02-12 50 views
1

我正在嘗試做一個簡單的集成,我附上了代碼。你能幫我一下,因爲我在代碼中做錯了什麼。警告:無法找到顯式積分。

function [f_value] = SurfArea() 

     a=[1.78E-05 3.39E-04 0.0104 -0.05791 -16.36]; 

     R = 30; 

     da = polyder(a); 

     syms x 

     integrand = int((x*sqrt(1+1/(poly2sym(da)).^2)),-R,0); 

     f_value = sym2poly(integrand); 

end 

我想刪除警告,請幫助。

+1

相關:http://stackoverflow.com/questions/20082581/explicit-integral-could-not-be-found – herohuyongtao

+0

可能重複[在MATLAB中沉默警告消息](http://stackoverflow.com/問題/ 6651208 /沉默 - 警告消息 - 在MATLAB中) - 雖然@ RodyOldenhuis的答案在這裏更具體... – horchler

+0

@horchler我試着使用vpa函數,但是我仍然得到相同的警告。你能否解釋一下在那裏提到的'雙'的實施。我沒有得到。 – Sagar

回答

0

如果發出命令

>> [~,ID] = lastwarn 

權AFER發出警告,你會得到相關的警告標識使用。您可以使用像這樣:

%// Force the warning off 
warnstate = warning('off', 'symbolic:sym:int:warnmsg1'); 

%// ... do the integration etc. 

%// Switch warning back into original state 
warning(warnstate); 

順便說一句:

  • 你似乎想返回多項式係數向量。你如何期待積分導致多項式?!
  • 如果您需要數值結果,請參閱integral(R2013)或quadgk(< = R2012)。這是很多比使用符號工具箱更快。
相關問題