楼主是用什么版本求出第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稍小,但不至于差太多。
这个vpa具体怎么计算不是很清楚,相信dblquad函数的结果吧