MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   数学 (https://www.labfans.com/bbs/forumdisplay.php?f=15)
-   -   如何求这个数值积分,老是出错啊,不知道为什么? (https://www.labfans.com/bbs/showthread.php?t=8231)

summer_xueer 2009-05-11 09:56

如何求这个数值积分,老是出错啊,不知道为什么?
 
先建了一个M文件
function y= myfun(x)
y=exp(20./(5+1./sin(x).^2))/(5+sin(x).^2);
然后在命令窗口键入
Q=quad(@myfun,-pi/2,pi/2)
就会提示出错:??? Index exceeds matrix dimensions.
这是为什么啊?

cfchenchen 2009-06-20 22:00

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
y=exp(20./(5+1./sin(x).^2))./(5+sin(x).^2);
你在/(5+sin(x).^2)前少一个点.上面是加上之后的.结果得:8.6554;
还有一个问题,就是在-pi/2与pi/2处,没有意义的,所以我们可以让它们分别加上一个与减去一个非常小的数,这样结果不变,也不会出现这样的情况了,比如说:可以从-pi/2+0.00000001到pi/2-0.00000001处积分,这样就行了,我也是新手噢!!

summer_xueer 2009-06-24 15:23

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
首先非常感谢楼上的给予帮助,但是由于本人matlab学得太烂,按照你说的去再重新改过来,好像还是得不到答案,最后还是NaN

cfchenchen 2009-06-27 11:10

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
我把那个东西完整地发给你看一下.
M文件中函数:
function y=myfun(x)
y=exp(20./(5+1./sin(x).^2))./(5+sin(x).^2);
然后在命令窗口键入
Q=quad(@myfun,-pi/2-0.000001,pi/2-0.000001)


结果如下:>> Q=quad(@myfun,-pi/2-0.000001,pi/2-0.000001)

Q =

8.6554
你再看一下,那儿出错了!

summer_xueer 2009-06-29 12:22

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
按照你说的,我已经得出了结果,确实是需要注意添加那个.,现在我还有一个问题要请教,当积分表达式当中有另外一个变量(除了积分变量之外),而这个积分又如何求出来呢?是不是应该用一个for循环呢?可是我这么做的话会提示出错

cfchenchen 2009-06-29 13:12

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
按你这样说的,好像不是求数值积分,好像是求符号积分的.对符号积分应该用int积分函数的!
例如:
syms x y
f=sqrt(exp(x)+1)*y;
F=int(f,x)
结果得:
F =

y*(2*(exp(x)+1)^(1/2)-2*atanh((exp(x)+1)^(1/2)))
这个是不定积分,如果要求定积分的话,可以这样改一下int函数
int(f,x,0,2)意思是对x积分是从0到2的.

另外对数值积而言,在表达式只能有一个变量了,只这样才能算出结果啊!
对于以上说的是符号积分就不一样了,它可以有多个变量的.

summer_xueer 2009-07-08 10:58

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
比如说这样的一个积分,积分表达式=besselj(0,q).^N*besselj(0,r*q)*q。公式中N已知N=8,r是一个范围(如0-40),而q是被积函数,积分范围从0到无穷,这样一个积分怎么求呢?

cfchenchen 2009-07-08 14:12

回复: 如何求这个数值积分,老是出错啊,不知道为什么?
 
这样啊!不知道r具体的值,只知道它的一个范围啊!这个好像不能求出来吧,至少我是不能了,再说,你想一下啦了,对于不同的r值,就有不同的积分结果了,如果r又不固定,那怎样求啊。当然,用那个符号积分可以求出关于r的表达式了。不过,不是具体的数值啊。


所有时间均为北京时间。现在的时间是 11:45

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.