matlab二重数值积分 第一重积分还有符号积分上限

作者&投稿:卓律 (若有异议请与网页底部的电邮联系)
matlab 二重数值积分 第一重积分还有符号积分上限~

clear;clc;a=4;b=2;M=3;f=@(z)quadl(@(x)1./((1+(z-x)/a).*(1+x/b)).^M,0,z);quadl(@(z)arrayfun(@(z)log(1+z)*f(z),z),0,1e8)
ans =

3.1092

从2012a开始,引入了几个计算数值积分的新函数integral、integral2、integral3,可以计算积分限为无穷大的积分。在2013a的文档中,建议使用这几个函数代替quad、quadl、quadv、dblquad、triplequad,后面几个函数在将来的版本中可能会被删除。

示例:
>> f=@(x,y)exp(-(x.^2+y.^2));>> integral2(f,-inf,inf,-inf,inf)ans = 3.1416

1、这个积分可用下面的表达式进行计算:

quadl(@(x)arrayfun(@(X)quadgk(@(z)exp(-z)./z,((X-10)^2+10)/4e-6,inf),x),-10,10)

但结果为Inf,原因很简单,exp(z)/z的积分上限是inf,而且函数值趋近于inf,所以结果必然是inf。

 

2、指数积分函数的指数项应该是exp(-z)才对,但如果加了这个负号,积分值为0,这是因为积分下限的值太大(至少是2500000),此时exp(-z)/z的值已经小到可以忽略不计,积分的结果也只能是0。

 

3、如果使用符号运算,不同版本下可能遇到不同的现象。

 

在6.5版的结果:

>> syms x z
>> a=int(int(exp(-z)/z,((x-10)^2+10)/4e-6,inf),x,-10,10);
Warning: Explicit integral could not be found.
> In D:\MATLAB6p5oolbox\symbolic\@sym\int.m at line 58
>> double(a)
ans =
     0
>> a=int(int(exp(z)/z,((x-10)^2+10)/4e-6,inf),x,-10,10)

a =

inf

与数值计算的结果吻合。

 

2013版计算第一个积分结果相同,但计算第二个积分得到的表达式再转换为double时会出错;2007b计算该积分会导致崩溃,原因不详。




matlab二重积分dblquad函数计算
你的错误出在这句,f=@(x,z)8\/5*(h0+(x.^2+z.^2)\/2*r)-6*x.^2\/5*((h0+(x.^2+z.^2)\/2*r))^2上,没有完全用好点运算符。更改后的自定义函数f(x,z)为 f = @(x,z)8\/5*(h0+(x.^2+z.^2)\/2*r)-6*x.^2\/5.*((h0+(x.^2+z.^2)\/2*r)).^2 ...

怎样用matlab画一个二重积分(含两个未知数)关于f和两个未知数的三维图像...
楼上两位的回答都很精彩,但也都存在一些问题:1、chinasunsunsun的回答主要有以下问题(查了好半天才把问题查全):(1)楼主给的公式有两项积分,但您只计算了一项,而且是把第一项的被积函数与第二项的积分限混在一起使用;(2)楼主的n取值是0~5,您只取了0~4;(3)画图的方式:很明显...

用MATLAB求极限
对于二重极限可以用下列方法来求解。limit(limit(f,x1,a),x2,b)对于本题,求解过程如下:>>syms x y >> limit(limit((x^2+y^2)^(x^2*y^2),x,0),y,0)ans =1

matlab计算这个简单的二重积分。。为啥出不来结果?
>> syms x y >> int(int(exp(-x-y),x,0,inf),y,0,inf)ans = 1 我能算出来呀,你看看是不是你输入的内容有全角半角的错误,比如括号或逗号是不是输成全角的,或者你直接复制我的命令去运行,如果还不行,可能是你的Matlab有问题了。还有:把最后那个分号去掉,输入分号表示不显示运行结果...

matlab怎么表示e^(x+2y)
1、e^(x+2y) 用matlab可以这样表示,exp(x+2*y)2、用matlab算二重积分∫∫(xy^2+e^(x+2y)), {(x,y)|-1<=x<=1,0<=y<=1},可以这样来做 fun=@(x,y)(x*y.^2+exp(x+2*y));dblquad(fun,-1,1,0,1)运行结果 ...

MATLAB 里二重积分integral2里带矩阵怎么算啊??
可以直接调用MATLAB向量化积分函数quadv或integral,这两个函数是MATLAB提供的仅有的两个支持向量化积分的函数。具体做法是:将被积函数f(x,t) 定义为可接受向量化参数t的关于x的函数句柄,然后直接调用quadv或integral,其中,integral函数要求将'ArrayValued' 参数设置为 true。integral(@(x) f(x,t),...

大神帮我看看这个MATLAB二重积分程序哪里有错啊
括号的位置写错了。从表达式上分析,你的本意应该是想对函数 2*0.89*sqrt(1-(y-0.6)^2\/0.36)进行积分,而积分下限为2.45*0.41129\/2.05,上限为2.45*0.41129\/2.05-z*tan(deg2rad(4.1)),是z的函数,然后再对z进行积分。但是,你把一个括号写错了位置,不妨把里面那个积分表达式单独...

设计一个matlab程序 计算圆域上的二重积分
1、直角坐标系符号积分 syms x yint_y = int(sin(pi*(x^2+y^2)),y,-sqrt(1-x^2),sqrt(1-x^2)); % 先对y积分I = vpa(int(int_y,x,-1,1)) I = 2.0 2、极坐标系符号积分 syms rI = 2*pi*int(r*sin(pi*r^2),r,0,1)I = 2 3、dblquad()是数值积分(针对matla...

MATLAB中二重积分
有个不必要的点乘,反而该用点乘的地方未用点乘。integrnd=@(x,y)(0.1719*besselj(0,0.3817*x).*cos(0.2761*y).*0.3318*besselj(1,0.6083*x).*sin(0.5518*y));改为:integrnd=@(x,y)(0.1719*besselj(0,0.3817*x).*cos(0.2761*y)*0.3318.*besselj(1,0.6083*x).*sin(...

matlab使用函数dblquad二重积分后为结果为复数,实际上应为一实数,哪...
程序中r=sqrt(R1^2-y^2);当y的绝对值大于R1时,r是复数,导致后面的含r的式子都是复数,积分结果也是复数。可这样改:r=sqrt(abs(R1^2-y^2));

安乡县14744389380: 如何用matlab做二重积分的数值计算 -
蔡泡合比: 使用两次int指令对被积函数分别做内层积分和外层积分,再执行vpa指令对返回的符号表达式执行数值计算

安乡县14744389380: 如何用matlab算一重,二重,三重积分.请高人解答,最好举例子.不甚感激.财富值只剩4分了.. -
蔡泡合比: syms x fx=sin(x);%fx为被积分函数 fx1=int(fx,'x','0','pi')%fx为被积分函数,x,为自变量0,pi为一重积分上下限 fx2=int(int(int(fx,'x','0','pi')),'x','0','2*pi')%x为自变量0,2*pi为二重积分上下限 fx3=int(int(int(fx,'x','0','pi'),'x','0','2*pi'),'x','0','t')%x为自变量0,t为二重积分上下限三重积分

安乡县14744389380: matlab二重积分函数编写 -
蔡泡合比: %% 第一题 clear clc syms x y I = int(int(exp(-x^2/2)*sin(x^2+y),x,-2,2),y,-1,1) I =-(5^(1/2)*i^(7/2)*pi^(1/2)*sin(1)*((1 - 2*i)^(1/2)*erf((2 + 4*i)^(1/2)) - (1 + 2*i)^(1/2)*erf((2 - 4*i)^(1/2))))/(5*(i/2)^(1/2)) %% 第二题 t = linspace(-pi,pi,100); x = 2*sin(t); y = cos(t); plot(x,y)

安乡县14744389380: matlab求一重和二重积分的近似值 -
蔡泡合比: syms x y int(exp(-x^2)*cos(x^2),x,0,pi); vpa(ans,5) ans =.68850-.64202e-5*i int(int(cos(x^2-y^2),y,0,sqrt(pi)),x,0,sqrt(pi)); vpa(ans,5) ans =1.2401

安乡县14744389380: 如何用MATLAB的for循环计算二重积分 -
蔡泡合比: 使用matlab的int函数可以方便的计算积分,以及多重积分. 设二重积分还是表达式为 z=z(x,y),积分域为下限 y1(x) 上限 y2(x),从 x1 到 x2,则二重积分代码为: int(int(z,y,y1,y2),x,x1,x2) 需要先定义符号变量 x,y,以及表达式 z,y1,y2 和数值 x1,x2 的值

安乡县14744389380: matlab二重积分dblquad函数计算 -
蔡泡合比: 你的错误出在这句,f=@(x,z)8/5*(h0+(x.^2+z.^2)/2*r)-6*x.^2/5*((h0+(x.^2+z.^2)/2*r))^2上,没有完全用好点运算符.更改后的自定义函数f(x,z)为 f = @(x,z)8/5*(h0+(x.^2+z.^2)/2*r)-6*x.^2/5.*((h0+(x.^2+z.^2)/2*r)).^2 运行上述程序,得

安乡县14744389380: 如何实现数值二重积分的程序? -
蔡泡合比: 关于MATLAB中的二重积分用数值积分计算的问题 function [V_m,V_n]=draw2(a,d,R,L) K=4.098537*10^(-9); e0=8.854*10^(-15); mm=(-15:1:15); nn=(-15:1:15); n=0; for beita=0.1:0.03:1 n=n+1; b_m=mm(n)*a; b_n=nn(n)*a; L_m=(L^2+b_m^2-2*L*b...

安乡县14744389380: matlab计算一个二重积分问题 -
蔡泡合比: 整了半夜,理解得差不多了 [0,z(ii)./(rou*(x.*(1+z(ii))-z(ii)))]是y2的取值范围,在z取一些值的时候,比如z(31),x在(0,1)内变化时,z(ii)./(rou*(x.*(1+z(ii))-z(ii)))会取到正无穷或负无穷.如果这时积分不再收敛,积分就成为了无穷大,绘制的图像也就尺度很大,收敛的部分也看不到细节了.建议看一下z(ii)./(rou*(x.*(1+z(ii))-z(ii)))这个式子有没有什么问题

安乡县14744389380: matlab 计算xy在y=x,y=1,和x=2所围成的三角域的二重积分 -
蔡泡合比: 可以使用matlab自带的int函数来计算这个二重积分. 代码如下: syms x y int(int(x*y,y,1,x),x,1,2) 运行结果如下: 推广到更一般情况的二重积分, 设二重积分还是表达式为 z=z(x,y),积分域为下限 y1(x) 上限 y2(x),从 x1 到 x2,则二重积分代码为: int(int(z,y,y1,y2),x,x1,x2) 需要先定义符号变量 x,y,以及表达式 z,y1,y2 和数值 x1,x2 的值.

安乡县14744389380: 求,利用matlab计算二重数值积分f=exp((x - 2)^2+(y - 1)^2))在圆域x^2+y^2=1内的积分 -
蔡泡合比: 提供两种方法1. 直角坐标系符号积分 syms x y int_y = int(exp((x-2)^2+(y-1)^2),y,-sqrt(1-x^2),sqrt(1-x^2)); % 先对y积分 I = vpa(int(int_y,x,-1,1))2. integral2()数值积分 f=@(x,y)exp(((x-2).^2+(y-1).^2)); y_l = @(x) -sqrt(1-x.^2); y_u = @(x) sqrt(1-x.^2); I = integral2(f,-1,1,y_l,y_u) 计算结果为:I = 6.4181e+03 就是6418.1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网