Matlab 数值计算—积分

一、数值积分

1.trapz () 

求出x与y的值再积分

基本格式:trapz(x,y)

例.

计算        \int_{\frac{pi}{4}}^{\frac{pi}{2}}\frac{sinx}{x}dx

clear,clc;
format long %15字长定点数
fun = @(x)sin(x)./x
x1 = pi/4:pi/50:pi/2;
y1 = fun(x1);
s1 = trapz(x1,y1)

x2 = pi/4:pi/100:pi/2; %剖分越细密,积分越精密
y2 = fun(x2);
s2 = trapz(x2,y2)

2.integral()

根据上下限直接求积分

格式:integral(fun,xmin,xmax),其中fun为句柄函数

例1.

计算        \int_{-1}^{1}e^{-x^{2}}dx

clear,clc;

s = integral(@fun,-1,1)

%函数定义要加在脚本最后
function f = fun(x)
    f = exp(-x.^2);
end

例2.

作图        \int_{0}^{x}\frac{sint}{t}dt,1\leq x\leq 20

clear,clc;
fun = @(x)sin(x)./x
x = linspace(1,20,20);
for i = 1:20
    y(i) = integral(fun,0,x(i));
end
plot(x,y)

二、含参变量的积分

例.

作图        \varphi \left ( t \right )=\int_{0}^{pi}sin(x-t)^{2}dx

% integral(fun,a,b,'ArrayValued',true) 表示被积函数是数组值函数
clear,clc;
t = 0:0.1:1;
fun = @(x)sin(x-t).^2;
y = integral(fun,0,pi,'Arrayvalued',true);
plot(t,y)

三、二重积分

格式:integral2(fun,xmin,xmax,ymin,ymax)

例1.

计算        \iint_{D} e^{-\frac{x^{2}}{2}}sin(x^{2}+y)dxdy,D:-2\leq x\leq 2,-1\leq y\leq 1

clc;
fun = @(x,y)exp(-x.^2/2).*sin(x.^2+y);
s = integral2(fun,-2,2,-1,1)

例2.

计算        \iint_{D}\sqrt{1-x^{2}-y^{2}}dxdy,D:x^{2}+y^{2}\leq 1

xl = -1;xu = 1;
yl = @(x)-sqrt(1-x.^2);yu=@(x)sqrt(1-x.^2);
fun = @(x,y) sqrt(1-x.^2-y.^2);
s = integral2(fun,xl,xu,yl,yu)

四、三重积分

格式:integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax)

例.

计算        \iiint_{D}\left | \sqrt{x^{2}+y^{2}+z^{2}}-1 \right |dxdydz,D:\sqrt{x^{2}+y^{2}}\leq z\leq1

xl = -1;xu = 1;
yl = @(x)-sqrt(1-x.^2);yu=@(x)sqrt(1-x.^2);
zl = @(x,y)sqrt(x.^2+y.^2);zu=1;
fun = @(x,y,z)abs(sqrt(x.^2+y.^2+z.^2)-1);
s = integral3(fun,xl,xu,yl,yu,zl,zu)

你可能感兴趣的:(matlab,开发语言,算法)