matlab中計算定積分時可否將函式作為積分變數

時間 2021-08-11 17:37:24

1樓:匿名使用者

提供兩種解法供參考。

1、解析解法作變數置換t=1/x,則積分上限為1,下限為inf:

>> syms x t

>> f=(1+1/x)^x/x;

>> f_t=subs(f,x,1/t);

>> int(f_t,inf,1)

ans =

-inf

**在2007b和2013a上實測通過。

2、數值解法直接對關於x的函式1/x求微分,但得到的函式表示式用解析方法無法得到顯式解,所以,使用數值方法積分:

>> syms x

>> f=(1+1/x)^x/x;

>> f_x=eval(['@(x)' vectorize(f*diff(1/x))]);

>> integral(f_x,0,1)

ans =

-inf

其中integral是2012a版之後才引入的函式,早期的版本可以使用quadgk代替。

2樓:yyy名

1  用diff(1/x) 求出 (1/x) 的微分,則可求相對於dx的被積函式-(1/x + 1)^x/x^3syms x

((1+1/x)^x/x)*diff(1/x)2  用數值積分求出的值。

f = @(x) -(1+1./x).^x./x.^3 ;

q1 = quadgk(f,0,1)  %  積分下限為0q2 = quadgk(f,0.1,1)  %  積分下限為0.1q3 = quadgk(f,0.

001,1)  %  積分下限為0.001

3    計算結果:

積分下限為0

q1 = -inf

積分下限為0.1

q2 = -68.6335

積分下限為0.01

q3 = -5.0597e+005

3樓:

不能直接求,還是要變形成普通定積分。

在matlab中,怎樣對含兩個變數的函式中的一個變數定積分?

4樓:匿名使用者

這種問題最好給出具體的函式,而不是泛泛地問,因為根據函式的複雜程度,可能用解析法,也可能用數值法。

解析法適用於函式積分能夠求出解析表示式的情況,例如:

syms x y

f=x^2*y^3;

j=int(f,x,-5,5);

ezplot(j)

如果上述使用int求積分得不出解析表示式,一般就應該考慮使用數值方法求解了。如果需要,還是具體結合你的函式來說吧。

用matlab求定積分的時候報錯

5樓:

我不確定積分中的上下限是否能用syms型別的變數

int((s(i)-sh)./(sstar-sw).*p(i),s(i),sh,sfc);

你可以把其中的常數都換為實際對應的數字,然後試試能不能行

6樓:匿名使用者

matlab中求定積分一般用int函式。

int(expr,var,a,b)是int函式求定積分的一般形式。其中,expr為符號表示式,var為符號變數,為積分變數,預設為x。a、b為積分上下限,可以是數字,也可以是符號變數。

出錯時,可以檢查**是否有如下問題:

1、是否有呼叫格式的錯誤,expr需要為符號表示式,var需要為符號變數。(在舊的matlab版本中,支援使用字串作為表示式與積分變數,在新的版本中已經不支援了)

2、表示式中有錯誤。

習慣性錯誤,如 2x+1、xy、sinx、e^x、ln(x) 等等,這些都是錯誤的,會直接報錯。

應該改為2*x+1、x*y、sin(x)、exp(x)、log(x)3、有時候會碰到積分不可積的情況或者積分結果為特殊函式。

7樓:匿名使用者

syms s(i) e(j) t(j) l(j) r(j)

不能這樣定義, 去掉()

求助利用matlab進行復雜函式的定積分方法! 詳情見補充,多謝了!

8樓:菰曉月寒

只要不是不定積分要求得到積分後的表示式,能實際計算出結果的積分就是定積分了。定積分不就是求函式在某區間或領域下的面積或體積麼,所以可以用梯形法之類的方法來近似求解這個面積。比如說步長為h,那麼求出f(0),f(h),f(2h),......

f(nh),

則f(x)在0~nh的定積分得到的面積就是h*(f(0)+f(h)+...+f(nh))。

matlab給出的求解積分的函式指令為intf=int(f,v,a,b),表示對f求指定變數v的定積分,積分割槽間為[a,b]。當v預設時,由symvar確認變數,當a,b預設時,則是求f指定變數的不定積分。

利用球面座標計算三重積分時候fai角的範圍怎麼確定

墨汁諾 先把空間區域投影到到yoz平面而 是z正軸到z負軸的角度 要從空間方程取得 先把x設為0 方程變為f y,z 0這形式 然後兩個關於y和z的方程的交接點,以第一象限為準最後 arctan z座標 y座標 對於錐面,一般為 4 直角座標系法 適用於被積區域 不含圓形的區域,且要注意積分表示式的...

matlab定積分計算結果為表示式,我只想得到數值。用double(ans)也沒用,不知道還有沒有其他方法

數碼答疑 是因為符號積分無法計算,答案還是符號積分,沒看見前面還有int嗎 只能採用數值積分,例如函式quad 經檢查是公式寫錯了,負號位置錯了。k 0.390803 mu 0.463506 sigma 0.219108 pdf x 1 sigma exp 1 k x mu sigma 1 k 1 ...

設計matlab程式計算圓域上的二重積分

這個可以用matlab的符號積分或者數值積分解決,下面提供4種方法 1 直角座標系符號積分 syms x y int y int sin pi x 2 y 2 y,sqrt 1 x 2 sqrt 1 x 2 先對y積分 i vpa int int y,x,1,1 i 2.0 2 極座標系符號積分 s...