1樓:匿名使用者
類似quadl這類函式被稱為「函式的函式」,也就是說,其輸入引數本身是函式(可以是函式控制代碼,如本例的func1,也可以是函式名)。
quadl這類函式的執行過程中,會呼叫作為輸入引數的那個函式(func1),而後者的第乙個輸入引數由quadl內部來提供。例如,進行積分時,需要根據一定的規則調整積分步長,產生不同的x來呼叫func1,直到滿足誤差要求。
而func1後面的那幾個引數(sp、xd、r)稱為附加引數(additional arguments),quadl函式本身不對這些引數做任何處理,只是原封不動地將其傳遞給func1。傳遞附加引數的做法早期主要靠這種方式,在7.0之後的版本中,更多的使用匿名函式或巢狀函式的機制實現附加引數的傳遞。
matlab quadl函式的使用 式子如下
2樓:匿名使用者
quadl 是對有確定函式關係式的函式進行積分,提供給quadl的是乙個函式控制代碼,而非一系列散點
trapz 則是根據散點求積分
matlab quadl和quad在對函式檔案求積分時該怎麼用?
3樓:匿名使用者
這兩個函式都是matlab中的內建函式,用於實施自適應求積分,都是根據gander和gautschi構造的演算法編寫的。
quad:使用辛普森求積,對於低精度或者不光滑函式效率更高
quadl:該函式使用了稱為洛巴托求積(lobatto quadrature)的演算法,對於高精度和光滑函式效率更高
你的問題是,輸入和輸入的向量長度不同導致的,建議你參考:
i=quad(func,a,b,tol);
func是被積函式,a,b是積分限,tot是期望的絕對誤差(如果不提供,預設為1e-6)
例如對於函式f=xe^x在[0,3]上求積分,顯然可以通過解析解知道結果是2e^3+1=41.171073846375336
先建立乙個m檔案xex.m
內容如下:
function f=xex(x)
f=x.*exp(x);
end然後呼叫:
>> format long
>> format ***pact
>> quad(@xex,0,3)
ans =
41.171073850902332
可見有9位有效數字,精度還是蠻高的。
如果使用quadl:
>> quadl(@xex,0,3)
ans =
41.171074668001779
反而只有7位有效數字。
麻煩幫我解釋一下matlab quadl函式的意思。
4樓:匿名使用者
表示能容忍的絕對誤差。如果c*是積分的準確值,c是matlab算的值,那麼要保證|c-c*|<1e-8
5樓:匿名使用者
容忍誤差, 用於設定解的最後的精度.
matlab傅利葉變換函式,matlab中傅利葉變換函式什麼意思了
用matlab 實現傅 bai里葉變換 使用者任意輸du入乙個函zhi數dao 然後,輸出函式的傅利葉變專換函式,然屬後輸出振幅頻率 x sin 2 pi t 任意輸入乙個函式。y fft x 傅利葉變換函式。plot abs y 振幅頻率。函式 function 表示每個輸入值對應唯一輸出值的一種...
matlab隨機函式怎麼取,matlab中怎樣隨機從一組資料中取一個數
淚之夢幻 如果是要要均勻分佈,可以使用語句rand 1 0.8 0.1 matlab中的rand函式 用於產生隨機數 均勻分佈的隨機數或矩陣 語法y rand n y rand m,n y rand m n y rand m,n,p,y rand m n p.y rand size a rand s...
matlab中SVM函式svmtrain中引數autoscale什麼作用
svmtrain的用法 svmtrain options training set file model file options 可用的選項即表示的涵義如下 s svm型別 svm設定型別 預設0 0 c svc 1 v svc 2 一類svm 3 e svr 4 v svr t 核函式型別 核函...