matlab中quadl函式呼叫

2021-03-17 05:06:31 字數 1500 閱讀 9733

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 核函式型別 核函...