matlab計算積分無解?
01-07
我想用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 xp=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 |