標籤:

matlab計算積分無解?

我想用MATLAB計算這個b(t)模型,但是積分那一步卡住了。所有函數都是已知的,但是警告:Warning: Explicit integral could not be found.

裡面所有函數都是已知的:

下圖是我的計算代碼:

沒有計算出積分。百度了說因為計算不出解析解。請問各位大神們,是我沒有安裝什麼工具包?還是代碼有問題?還是這個積分確實解不出,需要我修改模型呢?求助大家,謝謝各位了!


題主,不要用int這個積分命令,你沒有算出來99%就是int這個積分命令造成的;

int積分命令要求你的「被積式」要有解析解,然後帶入上下限求解,所以,題主的很有可能是「被積式」沒有解析解;

這裡推薦數值積分命令quad,它是通過simpson數值積分來求得的(並不是通過解析的方法得到解析解,再將上下限代入,而是用小梯形的面積求和得到的)。

其中,quadgk是最強的數值積分命令;

這個貼一個自己平常學習過程中遇到的複雜積分的求解演算法,題主可以參考一下:

https://github.com/Lovingmylove/kjl.github.matlab/blob/master/The_solution_to_complex_integral.m

解決問題了,不要忘記點贊哦~~~

-----------------------------------------------------------補充----------------------------------------------------------------

鑒於題主一直追問這個問題,我就自己寫了一下,直接上代碼:

syms x

p=1;

k=1;

q=1;

a=1;

b=1;

c=1;

P = p/(1+k*x);

Q = q;

A = a.*(1+q.*x);

B = exp(-b.*x);

C = exp(-c*x);

f = @(x)(P-Q).*A.*B.*C;

int(f,x,0,t)

我只是把裡面的參數都設為1,只留一個積分變數為符號變數,這樣就可以算出來結果了:

ans =

(exp(-2*t)*(2*t + 1))/4 - 1/4

把一些無關的參數用數值的方式寫出來會減少matlab的計算量,能減少符號變數盡量減少符號變數吧(之前跟題主提過,不知道題主試了沒有)

遇到問題多嘗試吧,親~

問題總可以解決~



推薦閱讀:

MATLAB中如何畫出下圖?文獻中的圖片如補充說明所示,謝謝。?
matlab中有哪些有趣的命令?
如何在 MATLAB 中實現車牌號圖片的識別?
matlab稀疏矩陣使用的是什麼數據結構?
如何用matlab畫天線的三維方向圖?

TAG:MATLAB |