matlab求解复杂复数方程,用matlab求解一个两重积分方程(未知数在积分下限,含复数积分)...
說明
1、f(x)很難求出閉式表達(dá)式。
2、使用符號(hào)積分計(jì)算量很大,而且可能根本就無法計(jì)算。
3、可使用integral函數(shù)進(jìn)行數(shù)值積分。與quad系列函數(shù)相比,integral的優(yōu)勢(shì)是可以計(jì)算積分限為無窮大的情況。該函數(shù)自2012a引入。
4、f(x)的值應(yīng)為實(shí)數(shù),但由于數(shù)值計(jì)算的誤差可能導(dǎo)致結(jié)果為復(fù)數(shù),所以計(jì)算之后對(duì)結(jié)果取實(shí)部。
5、因后續(xù)還需要對(duì)f(x)進(jìn)行積分,所以用arrayfun將其寫成支持向量輸入的形式。
6、PFA的計(jì)算,積分上限為無窮大,但取無窮大的上限容易導(dǎo)致出錯(cuò)(我不確定是否可通過算法設(shè)置避免),因而從實(shí)際計(jì)算需要出發(fā),上限取一個(gè)有限值,例如1000。
結(jié)果
r?=
10.3200
參考代碼
N=25;M=4;
Fw=@(w)((1-j*w).*(1-j*w/N).*(1+w.^2/N)).^-M;
fx=@(X)real(arrayfun(@(x)1/(2*pi)*integral(@(w)Fw(w).*exp(-j*w*x),-inf,inf),X))
ezplot(fx,[-2 12])
ylabel('f(x)')
P=@(r)integral(fx,r,1000)-0.01;
r=fsolve(P,10.3)
總結(jié)
以上是生活随笔為你收集整理的matlab求解复杂复数方程,用matlab求解一个两重积分方程(未知数在积分下限,含复数积分)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab如何绘制散点图矩阵,不同版本
- 下一篇: 宝塔php7.1地址在哪里,宝塔Linu