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檔...