在matlab中怎樣求帶有引數的定積分

2021-03-08 09:04:20 字數 1894 閱讀 8098

1樓:剛喬幹悅欣

1、首先,如果要對quad函式傳遞附加引數(extraparameters),應該先搞清楚quad函式的呼叫格式:

回q = quad(fun,a,b,tol,trace)其中,第4、5個引數分別是tol和trace,不答能想當然。你如果要傳遞附加引數,應該從第6個引數開始——儘管文件中並沒有提及,但quad函式的確可以接受附加引數。類似地函式還有很多,例如fsolve、fmincon等函式的函式。

在傳遞附加引數時,需要把前面的引數補齊,即使你不知道也不關心那些引數到底是幹什麼用的。幸運的是,這類函式絕大多數(如果不是所有的話)都支援用空陣列作為佔位符,例如:

q = quad(fun,a,b,,,r)這樣,你也就可以不用管tol、trace到底該怎樣取值了。

2、其次,quad函式並不支援一次性對多個附加引數求解。解決的辦法一是用迴圈,另一是用arrayfun函式(其實後者本質上也是迴圈,只不過寫法上簡單些)。

2樓:匿名使用者

設被積函式為f=ax+b,積分割槽間為(c,d)matlab**如下:

syms a b c d x;

f=a*x+b;

answer=int(f,x,c,d).

matlab中求定積分的運算

3樓:

int(函式f(x),a,b) 計算函式f(x)在區間[a,b]的定積分

quadl:該函式使用了稱為洛巴託求積(lobatto quadrature)的演算法,對於高精度和光滑函式效率更高

i=quadi(func,a,b,tol);

func是被積函式,a,b是積分限,tot是期望的絕對誤差(如果不提供,預設為1e-6)

eps是一個浮點誤差值,如果不帶引數,它的值為1到下一個能表示的比1大的浮點數之間差距的,它用來表示浮點相對誤差精度

理解為機器最小數即可

i=quadl(@(t)(t-3*t.^2+2*t.^3).^(-1/3),eps,1/2)表示積分限在[0,0.5]

4樓:白楊龍

int是解析解,用的牛頓萊布尼茨公式求定積分,亦即先求出不定積分,再用上下限代入,所得解為精確解,當然前提式子有能積分,有些式子沒有不定積分這個知道吧。

quadl是數值解,基本思想按照積分原始定義來求解,亦即將積分割槽域(上下限間)無限分割(程式中體現為分割成很多段)求各微元面積(quadl求一個個小梯形面積)

eps是很接近0的正數,因為0代入t-3*t.^2+2*t.^3).^(-1/3)會出錯,用極小數替代

數值解很多方法很多函式像ode23.ode45

5樓:匿名使用者

是matlab裡兩種不同的積分函式,你可以檢視一樣的應的函式說明。

6樓:孟尹宗政綺煙

^>>syms

x>>int((-0.0342)*x^6-0.016*x^5+1.

3545*x^4+0.4611*x^3-16.9306*x^2-2.

9858*x+33.9888,x,-3.1416,3.

1416)

ans=

-0.1235977977

7樓:桓富貴祖妝

matlab說他也不會做。如果你只是想求解這個積分的值,可按如下方法做

1.首先看看被積函式是什麼形態,有沒有奇點ezplot('(x^2*cos(x)^2+1)^(1/2)');

你這個函式是連續的,所以可積,然後

2.用簡單的數值積分

step

= 1e-2;x=

0:step:1;

y= (x.^2.*cos(x).^2

+1).^(1/2);

step*sum(y)

%積分值

在MATLAB解方程中,帶引數的解求出來後,怎麼畫出因變數與自變數在一定變化範圍內的圖形

看起bai來像個 du平zhi面 syms a b c f x 5 a 6 b 7 c 0 g y 2 a b 4 c 0 h z 3 a 3 b 5 c 0 x,y,z solve f,g,h,x y z x 5 a 6 b 7 c y 2 a b 4 c z 3 a 3 b 5 c rand s...

在matlab中求元胞陣列中字元出現的次數

基本思路 遍歷元胞訪問元胞的每一個元素並判斷該元素是不是char型別,如果是則進行相應判斷做統計。考慮到cell內部巢狀cell的情況,需要用到遞迴,所以要把 寫成一個函式。函式 如下 function n countcell c,t n 0 s prod size c for i 1 s if s...

怎樣在matlab的GUI圖形介面中的callback函式中再呼叫其他編好的函式呢

必須把函式你編號的函式控制代碼先在gui初始化時新增到類似於handls.控制代碼與資料集合中,再在callback中呼叫gui控制代碼集中你所編寫的函式的控制代碼,思路如此。可以的。保證那些被呼叫的函式儲存在搜尋路徑中,最方便的就是放到同一資料夾中。用matlab中的gui去直接呼叫和執行多個m檔...