早教吧作业答案频道 -->其他-->
matlab int函数没有显式积分 vpa两个例子:1.y=x*log(x^4)*asin(1/x^2);int(y,x,1,3);提示没有解析解vpa(ans)得到数值结果,和quad函数的结果比较也是一样的.2.syms x yvpa(int( int( sqrt(1+x^2*sin(y)),x,0,1),y,0,2*pi)
题目详情
matlab int函数没有显式积分 vpa
两个例子:
1.y=x*log(x^4)*asin(1/x^2);
int(y,x,1,3);
提示没有解析解
vpa(ans)
得到数值结果,和quad函数的结果比较也是一样的.
2.
syms x y
vpa(int( int( sqrt(1+x^2*sin(y)),x,0,1),y,0,2*pi))
也提示没有显示解,得到数值结果
ans=3.4441;
但如果用dblquad函数求数值:
ans=6.1879;
这是什么原因呢?
我想知道,在没有解析解时,vpa是通过什么算法得到数值解的?那么,这个结果什么时候是正确的?
两个例子:
1.y=x*log(x^4)*asin(1/x^2);
int(y,x,1,3);
提示没有解析解
vpa(ans)
得到数值结果,和quad函数的结果比较也是一样的.
2.
syms x y
vpa(int( int( sqrt(1+x^2*sin(y)),x,0,1),y,0,2*pi))
也提示没有显示解,得到数值结果
ans=3.4441;
但如果用dblquad函数求数值:
ans=6.1879;
这是什么原因呢?
我想知道,在没有解析解时,vpa是通过什么算法得到数值解的?那么,这个结果什么时候是正确的?
▼优质解答
答案和解析
楼主是用什么版本求出第2题的解是3.4441?
我用6.5、R2007b两个版本,等了好久都没有得到结果(R2007b算了好半天之后甚至干脆崩溃了),用R2012b计算,得到下面的结果:
intlib::intOverSet(piecewise([not 0 < sin(y) and (y/pi in Z_ or arg(sin(y)) == pi), int((sin(y)*x^2 + 1)^(1/2), x == 0..1)]), y, {0} union Dom::Interval([pi], [2*pi])) + 3.4441419676288028273509895776497
显然这个结果并不是3.4441,而是另外加上前面一大串的积分表达式.
6.5、R2007b符号计算内核是用Maple,R2012b符号计算内核是用MuPad,但不论用哪个内核,其内部的计算细节基本上是不可能知道的.
到目前为止,我使用vpa,在能得到具体结果时都是正确的,但有可能就像上面这样,得不到具体的数值,而是一个表达式.
用dblquad函数计算的结果是可信的,其实你用
ezmesh('sqrt(1+x^2*sin(y))',[0,1],[0,2*pi])
画出曲面来,可以看到,曲面的大部分高度值都接近1,其它突出的部分比起凹陷的部分应该稍微小一点,所以算出来的体积(该重积分的几何意义)应该比2*pi稍小,但不至于差太多.
我用6.5、R2007b两个版本,等了好久都没有得到结果(R2007b算了好半天之后甚至干脆崩溃了),用R2012b计算,得到下面的结果:
intlib::intOverSet(piecewise([not 0 < sin(y) and (y/pi in Z_ or arg(sin(y)) == pi), int((sin(y)*x^2 + 1)^(1/2), x == 0..1)]), y, {0} union Dom::Interval([pi], [2*pi])) + 3.4441419676288028273509895776497
显然这个结果并不是3.4441,而是另外加上前面一大串的积分表达式.
6.5、R2007b符号计算内核是用Maple,R2012b符号计算内核是用MuPad,但不论用哪个内核,其内部的计算细节基本上是不可能知道的.
到目前为止,我使用vpa,在能得到具体结果时都是正确的,但有可能就像上面这样,得不到具体的数值,而是一个表达式.
用dblquad函数计算的结果是可信的,其实你用
ezmesh('sqrt(1+x^2*sin(y))',[0,1],[0,2*pi])
画出曲面来,可以看到,曲面的大部分高度值都接近1,其它突出的部分比起凹陷的部分应该稍微小一点,所以算出来的体积(该重积分的几何意义)应该比2*pi稍小,但不至于差太多.
看了 matlab int函数没有...的网友还看了以下:
一个mathematica程序添加作图语句Clear[x,y,n,h,S1,S2,S3,S4,i] 2020-05-16 …
matlab 关于求偏导数具体值的问题以下是代码:num = 100;for i=1:numa(i 2020-05-16 …
下列各项中读音错误的一项是:()A.载歌载舞zài累累果实léi把水澄清dèngB.老妪能解yù好 2020-07-04 …
求微分方程的通解y"+y=cosx想问下具体的.)∵齐次方程y"+y=0的特征方程是r²+1=0, 2020-07-31 …
已知复数z=icos140°,则argz=若x是纯虚数,y是实数,且(2x-1)i=y-(3-y) 2020-08-01 …
三元一次方程组a*x+b*y+c*z+d=0,e*x+f*y+g*z+h=0,i*x+j*y+k* 2020-08-03 …
若:y'''+8y=0的特征方程为:λ^3+8=(λ+2)(λ^2-2λ+4)=0有根:λ1=-2, 2020-10-31 …
求圆周|z|=2在映射w=1╱z下的象令z=x‘+y’i,x‘,y’∈R∵|z|=2∴x‘²+y’² 2020-10-31 …
求微分方程通解y''+4y=xcosx已得到Y=C1cos2x+C2sin2x因f(x)=xcosx 2020-11-01 …
22)写列程序段的执行结果.A="abbacddcba"forI=6to2step-2x=mid(a 2020-12-15 …