如何用matlab對這個函式進行積分

時間 2021-08-11 18:16:26

1樓:

1、雙擊matlab軟體圖示,開啟matlab軟體,如下圖所示。

2、使用syms命令,建立七個符號變數a、b、c、d、x、y、z,如下圖所示。

3、這裡進行乙個較為複雜的積分舉例,使用符號變數a、b、x、y、z,建立多元函式a,其中a=32*a+b^5+sin(7*z)+x*y,如下圖所示。

4、使用函式int(a,'a'),求解多元函式a關於變數a的積分,得出答案,如下圖所示。

5、使用函式int(a,'b'),求解多元函式a關於變數b的積分,得出答案,如下圖所示。

6、使用函式int(a,'z'),求解多元函式a關於變數z的積分,得出答案,如下圖所示。

7、使用函式int(a,'x'),求解多元函式a關於變數x的積分,得出答案,如下圖所示。

2樓:曹玲玲

matlab中求積分的解析解只有int(f,v,a,b),f是被積函式,v是被積變數,a,b是積分區間對於一些簡單的函式來說使用int()函式是很精確的,而且可以進行定積分和不定積分,但是對於複雜的被積函式來說這麼做的執行時間是非常長的,很多時候不是很適合用(因此在實際操作時積分經常採用求近似積分,

常採用以下三種方法

1,是使用sum()函式,根據積分的定義來求積分

2,是使用trapz()函式,採用梯形法求積分

3,使用filter(b,a,x)函式,在設定引數時filter([0,1],[1,-1],x)

eg.求∫ sinx dx(積分區間是0-π/2)的值(各種方法的比較)

○1,d=pi/10;t=0:d:pi/2;y=sin(t);sum(y)*d

得ans=1.1488

○2,d=pi/10;t=0:d:pi/2;y=sin(t);trapz(y)*d

得ans=0.9918

○3 ,int('sin(x)',0,pi/2)

得ans=1

4,syms x;int(『sin(x)』,x)

得ans =-cos(x)

5 ,d=pi/10;t=0:d:pi/2;y=sin(t);t=filter([0,1],[1,-1],y); t(end)*d

得ans = 0.8347

比較:(1)從精確度而言int()函式最好,但是執行所需時間最大

(2)sum方法和trapz,以及filter方法相比:相同的取值間隔d,trapz方法的精確度要高,而且執行時間非常短;sum法和filter法的精確度相同

(3)filter函式求積分的好處在於,它所得到的結果是乙個序列,每個序列都是其前面的積分,在做例如gmsk,msk的累積相位時可以用filter函式。

所以你這題沒辦法求解析解,只能根據具體的其他引數的值用以上幾種數值求積分的方法來求了,以為我不知道你的其他引數的取值,所以你可以自己做的,有什麼不明白的可以找我。

3樓:匿名使用者

我可以很肯定的告訴你,你的這個積分是無法求出解析解的,你只能是通過數值積分來求解了,這樣的話你需要首先得到裡面的所有引數的值。

然後你可以使用quad進行積分。

4樓:匿名使用者

使用quad進行積分

如何用matlab對這個函式求定積分

5樓:基拉的禱告

syms z m n

a=19.6*z+5.3*10^25*m/(n-4.425*10^10)^2*(atan((z+0.13)/0.26)-26.56)^(-1/2);

z1=0;z2=0.75;

int(a,z,z1,z2)望採納

如何用matlab求多元函式的極值

扈多綦祖 on來求解。寫成向量形式,約束a x b,初始值x0附近可以搜出出區域性極小值。輸入 z x 7.2 sqrt 25 15 x 1 2 7.2 107 20 x 1 sqrt 8 x 2 2 20 x 1 2 7.2 x 2 a 1,0 0,1 b 15 8 x0 1 1 x,feval ...

如何用matlab繪製帶引數的函式的影象?(剛學matlab

plot是繪製二維圖形的最基本函式,它是針對向量或矩陣的列來繪製曲線的。使用plot 函式之前,必須首先定義好曲線上每一點的x 及y 座標.常用格式為 1 plot x 當x 為一向量時,以x 元素的值為縱座標,x 的序號為橫座標值繪製 曲線。當x 為一實矩陣時,則以其序號為橫座標,按列繪製每列元素...

如何用matlab求兩個函式的卷積

雙槍老椰子 function convolution t 4 0.001 4 e rectpuls t 0.25,1.5 plot t,e pause h tripuls t 1,2,1 plot t,h pause s 8 0.001 8 f conv e,h plot s,f 卷積後訊號就變長了...