4.9 利用MATLAB求解函数积分
- 格式:ppt
- 大小:258.50 KB
- 文档页数:12


在MATLAB中,可以使用`int`函数进行积分计算。
要指定积分上下限,可以在`int`函数中指定`a`和`b`参数。
例如,要对函数`f(x) = x^2`在区间[0, 2]上进行积分,可以使用以下代码:
```matlab
syms x
f = x^2; % 定义被积函数
a = 0; % 积分下限
b = 2; % 积分上限
result = int(f, x, a, b); % 进行积分计算
```
这将返回积分的数值结果。
注意,在使用`syms`定义符号变量时,需要将积分变量与被积函数一起传递给`int`函数。
如果需要使用默认的数学函数作为被积函数,也可以省略符号变量和函数的定义,例如:
```matlab
a = 0; % 积分下限
b = 2; % 积分上限
result = int(x^2, a, b); % 进行积分计算,默认使用x^2作为被积函数
```
这将返回与前一个示例相同的结果。
1、(1)直角坐标系theta=0:0.1:2*pi;rho=sin(3*theta); plot(theta,rho)(2)极坐标系polar(theta,rho)2、(1)方法1:先用quad2d做二重积分,结合arrayfun函数,再用quadl做数值积分。
syms x y z;f1=quadl(@(x)arrayfun(@(x)quad2d(@(y,z)z,0*x,(1-x)/2,@(y)0*y,@(y)(1-x-2*y)),x) ,0,1)方法2:结合arrayfun函数,先用quadl做数值积分,再用quad2d做二重积分。
syms x y z;f2=quad2d(@(x,y) arrayfun(@(x,y)quadl(@(z)z,0,1-x-2*y),x,y),0,1,@(x)0*x,@(x)(1-x)/2);方法3:三次一重积分报错:改用其他函数解决fun3=@(x,y,z)z;xmin =0;xmax = 1;ymin = 0;ymax = @(x) (1-x)/2;zmin = 0;zmax = @(x,y) (1-x-2*y);I=integral3(fun3,xmin,xmax,ymin,ymax,zmin,zmax)(2)蒙特卡洛模拟%蒙特卡洛模拟f = @(z)z;n = 100000;%随机均匀积分区域的点x = unifrnd(0,1,1,n);y = unifrnd(0,1/2,1,n);z = unifrnd(0,1,1,n);%X=[x,y,z];ind =(z<=1-x-2*y)&(z>=0)&(y<=(1-x)/2)&(y>=0)&(x>=0)&(x<=1); %积分区间I = 1*1/2*1*sum(f(z(:,ind)))/n;3、(1)定义的m文件/函数:% d=fdmd1(X);function d = fdmd1(X)%参数X:范德蒙德矩阵的生成数;%d:返回的矩阵;n = length(X);for i=1:nd(i,:)=X.^(i-1);end矩阵1:命令行运行:X=1:5;d =fdmd1(X)det(d)矩阵2:X2=[4,3,2,6,8]d=fdmd1(X2)det(d)(2)%(2)function d = fdmd2(~)%参数X:范德蒙德矩阵的生成数;%d:返回的行列式值;X=[1,2,3,4,5];n = length(X);d = 1;for i = 1:nfor j = 1:(i-1)d = d*(X(i)-X(j));endend%(2)function d = fdmd2(~)%参数X:范德蒙德矩阵的生成数;%d:返回的行列式值;X=[4,3,2,6,8];n = length(X);d = 1;for i = 1:nfor j = 1:(i-1)d = d*(X(i)-X(j));endend(3)%范德蒙德行列式递推function d =fdmd3(X) n=length(X);d=1;for i=-n:-2i=-i;m=1;for j=2:im=(X(j)-X(1))*m;endd=d*m;X=X(2:(i)); end矩阵1:X=[1,2,3,4,5]; d=fdmd3(X)矩阵2:X=[4,3,2,6,8] d=fdmd3(X)。
详解Matlab求积分的各种方法一、符号积分由函数int来实现。
该函数的一般调用格式为:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分;int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分;int(s,v,a,b):求定积分运算。
a,b分别表示定积分的下限和上限。
该函数求被积函数在区间[a,b]上的定积分。
a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。
当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。
当a,b中有一个是inf时,函数返回一个广义积分。
当a,b中有一个符号表达式时,函数返回一个符号函数。
例:求函数x^2+y^2+z^2的三重积分。
内积分上下限都是函数,对z积分下限是sqrt(x*y),积分上限是x^2*y;对y积分下限是sqrt(x),积分上限是x^2;对x的积分下限1,上限是2,求解如下:>>syms x y z %定义符号变量>>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) %注意定积分的书写格式F2 =57/-/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2^(3/4) %给出有理数解>>VF2=vpa(F2) %给出默认精度的数值解VF2 =224.9232805二、数值积分1.数值积分基本原理求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)•法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。
它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。
这样求定积分问题就分解为求和问题。