Matlab知識點(六)
阿新 • • 發佈:2018-12-25
使用Matlab處理積分問題
最值問題
在Matlab 中只有求極(或最)小值命令的函式.若要求函式 f ( x)在( x1, x2) 內的極(或最)大值,可轉化為求− f (x)在( x1, x2) 內的極(或最)小值.求極(或最)小值點和極(或最)小值的呼叫格式是: [x,fual]=fminbnd(‘fun’,x1,x2)
[xmin,fmin]=fminbnd('1-3*x-x^2',-10,9); % 求f(x)的最小值點和最值 [xmax,zmin]= fminbnd('-1+3*x+x^2',-10,9); %轉化為-f(x)的最小值和最小值點 fmax = -zmin;%-(-f(x))的最大值 xmin,fmin,xmax,fmax
輸出的結果是:
xmin = 9.0000
fmin = -106.9992
xmax = -1.5000
fmax =3.2500
[xmin,fmin]=fminbnd('2*exp(-x)*sin(x)',2,5)
xmin =3.9270
fmin = -0.0279
一元函式的不定積分
1、呼叫格式一: int(‘f(x)’,‘x’)
int(x^2*cos(x),'x')
執行結果:ans = sin(x)(x^2 - 2) + 2x*cos(x)
2、呼叫格式二:
syms x % 宣告變數
int(f(x),x)
syms x a; % 中間沒有分隔符 int(a^2*exp(x)*sin(2*x),x)
結果是:ans = -(a^2exp(x)(2cos(2x) - sin(2*x)))/5
int(x/sqrt(1-x^2),'x',0,1/2) % 函式不需要引號,自變數需要
結果是:ans = 1 - 3^(1/2)/2
syms x;
int(1/(1+x^2),x,-inf,inf)
結果是:ans = pi
syms x y;
int(int(x^2+y^2,x,-1,2),y,0,4)
結果是: ans = 76
syms t
int(sqrt(1-t^2),'t',a,x)
ans = asin(x)/2 - asin(a)/2 - (a*(1 - a2)
syms t
int(abs(t-1),t,-1,2)
結果是:ans = 5/2