-
int() 函式和 vpa() 函式用於獲取 k 值(數值解),然後使用 polt() 函式繪製 b 和 k 之間的關係。
** 見附件。
-
在MATLAB中,INT主要用於符號積分,trapz、dblquad、quad、quad8等用於數值積分。
int(s) 符號表示式 s 的不定積分, int(s,x) 符號表示式 s 相對於變數 x 的不定積分, int(s,a,b) 符號表示式 s 的定積分,其中 a 和 b 分別是積分的上限和下限, int(s,x,a,b)符號表示式s相對於變數x的定積分,a,b分別是積分的上限和下限;trapz(x,y) 梯形積分法,x表示積分區間的離散化向量,y為與x同維的向量,表示被積數,z返回積分值。
MATLAB是一種高階技術計算語言和互動式環境,可用於演算法開發、資料視覺化、資料分析和數值計算,包括MATLAB和Simulink。
-
Cenatp 發布於 2013-8-26 18:16
註冊後登入檢視大圖。
感覺使用 trapz 類似於直接求和
特拉普斯和庫姆特拉普茲
函式都是基於梯形積分的函式,其本質是將積分區間劃分為一定數量的等間距子區間,然後用一條直線逼近每個子區間上的函式曲線,直線穿過區間末端對應的原始曲線上的兩個端點。 因此,從本質上講,梯形積分只不過是乙個。
分段線性近似”。 因此,對於高階函式(次數)=2,梯形積分在分割槽數確定時(特別是被積數不連續或非常大時)可能變得非常不精確,而被積數越高,梯形積分在子區間數固定時精度越差。 因此,為了使梯形積分更準確,您需要用更小的區間劃分更多的子區間,即用更多的子區間近似。
然而,在已知離散資料的情況下,資料量是固定的,即不可能進一步劃分子區間,因此使用梯形積分會導致較大的誤差。 如果你知道被積數的可能倍數,你可以考慮擬合乙個大於或等於該數的多項式,擬合被積數表示式,一旦你有了函式表示式,就用符號積分。
int 或數值積分 quadgk 或積分
雙。 即使您不知道被積數的數量,也可以使用高階函式對被積數求和,然後進行積分。
-
使用 MATLAB,您可以使用以下數值積分方法來求解定積分、二重積分和三重積分的數值求解問題。
1. 梯形數值積分計算trapz()。
x = 0:pi/100:pi;
y = sin(x);
z = pi/100*trapz(y)
2. 自適應辛普森數值積分計算 quad()。
f = @(x)1./(x.^3-2*x-5);
q = quad(f,0,2);
3. 自適應 Lobatto 積分計算 quadl()。
function y = myfun(x)
y = 1./(x.^3-2*x-5);
endq = quadl(@myfun,0,2);
4. 自適應高斯克朗直交積分計算quadgk()。
function y = myfun(x)
y = exp(-x.^2).*log(x).^2;
endq = quadgk(@myfun,0,inf)
5. 平面區域 quad2d() 的二重積分的數值計算。
fun = @(x,y) 1./( sqrt(x + y) .1 + x + y).^2 )
ymax = @(x) 1 - x
q = quad2d(fun,0,1,0,ymax)
6. 矩形區域的二重積分值計算為 dblquad()。
function z = integrnd(x, y)
z = y*sin(x)+x*cos(y);
endq = dblquad(@integrnd, pi, 2*pi, 0, pi)
7. 三重積分值計算為 triplequad()。
function f = integrnd(x, y, z)
f = y*sin(x)+z*cos(x);
endq = triplequad(@integrnd, 0, pi, 0, 1, -1, 1)
以上是求解數值積分的最基本方法。
-
在 MATLAB 中,有兩種表示積分的方法:數值積分和符號積分。 顧名思義,數值積分主要用於數值計算,計算積分值; 符號積分是通過符號運算來計算積分,就像我們手工推導公式一樣,對於可以推導解析解的積分,符號積分可以給出解析解。
你的問題可能是你需要使用符號積分來表示和推導解析解,對吧?
sum 命令是 sum,integral 命令是 int,但您的公式沒有給出特定的和範圍和積分邊界,因此使用特定值很容易做到。
當然,如果您只想列印出上面的公式,請使用以下字串:
}^2sin/2'
-
int(f,x) 是積分,f 是積分函式,x 是積分變數。
int(f,x,a,b)。
-
點數下面是什麼? 看不清。
而且我沒有寫多少求和開始了。
-
1.使用int函式,縮寫為integrate、int函式表示式、變數、積分上限、積分下限。
2. 例如,要找到 fx = a*x 2,要在區間 (m, n) 中對 x 進行積分,首先將四個變數 m、x、a、b 定義為符號變數。
syms m x a b;
fx = a*x^2;
int(fx,x,m,n)
3.通過上述方法,可以找到給定區間內任意函式的積分,如果要檢視書寫格式,可以使用漂亮的命令,使顯示更接近通常的表示。
1.在MATLAB中,整合操作的方式有很多種,為了方便以不同的方式處理異同,下面以集成為例:
2.梯形積分法。
首先,以最簡單的方式,以函式trapz為例,z = trapz(x,y),其中x是積分區間的離散化向量,y是與x同維的向量,表示被積數,z是返回積分近似。
clc,clear。
梯形積分法。
x = :1,y = exp(-x.^2),s = trapz(x,y)
結果:s =
3.高精度數值積分(1)。
為了克服梯形積分法精度低的問題,可以採用高精度積分法,第一種方法可以是z = quad(fun,a,b)該方法是自適應步長Simpson評分法,得到區間[a,b]定積分上的函式趣味,如下:
clc;clear;
梯形積分法。
s = quad(inline('exp(-x.^2)'),-1,1)
結果:s =
4.高精度資料整合(2)。
高精度 Lobatto 積分方法的格式為:z = quadl(fun, a, b)。
clc;clear;
梯形積分法。
s = quadl(inline('exp(-x.^2)'),-1,1)
結果:s =
-
例如,函式為 w(x,y),y 的上限和下限為 a 到 b,x 的上限和下限為 0 到 sqrt(1600-y 2)。
您可以使用函式 quad2d()。
y1=quad2d(@(x,y)w(x,y),a,b,0,@(y)sqrt(1600-y^2))
也可以使用兩點:
y2 =quadl(@(x) arrayfun(@(x) quadl(@(y)w(x,y),a,b),x),0,sqrt(1600-y^2))
或者 y3 = dblquad(@(x,y)w(x,y)。*y>=a & y<=b),0,sqrt(1600-b^2),a,b)
-
使用函式 int
符號積分命令 int
int(fun):求函式fun的不定積分;
int(fun,var):找到函式 fun 相對於變數 var 的不定積分;
int(fun, var, a,b,): 求函式 fun between [a,b] 的定積分或廣義積分;
示例》 清除; syms x y z;
int(sin(x*y+z),z)
ans =cos(x*y+z)
幫助:在matlab命令視窗中輸入doc int,即可檢視int的幫助資訊。
-
有兩種方法:
方法一:使用符號函式 int 求符號表示式的積分(精確解析解)。
方法二:使用四元函式求函式的數值積分(近似數值解)
-
只需使用 int 函式即可。
函式縮寫為integrate、int函式表示式、variable、積分上限、積分下限。
例如,找到乙個 fx = a*x 2 並在區間 (0,1) 中對 x 進行積分。
首先,我們需要將四個變數 m、x、a 和 b 定義為符號變數。
syms m x a b;
fx = a*x^2;
int(fx,x,0,1)
-
以以下函式為例。
求函式 x 2+y 2+z 2 的三重積分。 內積分的上下限為函式,z積分的下限為sqrt(x*y),積分的上限為x 2*y; y 的積分下限為 sqrt(x),積分的上限為 x 2; x 的積分下限為 1,上限為 2,解如下:
syms x y z% 定義符號變數。
f2=int(int(int(x 2+y 2+z 2,z,sqrt(x*y),x 2*y),y,sqrt(x),x 2),x,1,2) % 注意定積分的格式。
f2=1610027357 6563700-6072064 348075*2 (1 2)+14912 4641*2 (1 4)+6 4 225*2 (3 4)% 給出有理數解。
vf2=VPA(f2)% 給出預設精度的數值解。
VF2 = 2。數值積分。
1.數值積分基礎。
求解定積分的數值方法有很多,如簡單梯形法、辛普森法、牛頓-科特斯法等。 其基本思想是將整個積分區間 [a,b] 除以 n 個子區間 [習,習+1],i=1,2,..., n,其中 x1=a,xn+1=b。 這樣,求定積分的問題就被分解為求和問題。
2.數值積分的實現。
基於可變步長Simpson方法,MATLAB給出了四元函式來確定積分。 該函式可以按以下格式呼叫:
i,n]=quad('fname',a,b,tol,trace)
基於可變步長和 Newton-Cotes 方法,MATLAB 給出了乙個四元函式來確定積分。 該函式可以按以下格式呼叫:
i,n]=quadl('fname',a,b,tol,trace)