| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
|  | 
|  2008-07-18, 20:37 | #1 | 
| 初级会员 注册日期: 2008-04-02 年龄: 43 
					帖子: 5
				声望力: 0  |  [求助]dblquad带入数值出错 
			
			我在书上看到dblquad的用法如下 q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method,p1,p2,…) %将可选参数p1,p2,..等传递给函数fun(x,y,p1,p2,…)。若tol=[],method=[],则使用缺省精度和算法quad 我需要求A B 分别取0-100时的积分值,当A=0 B=0时 A=0;B=0;t=dblquad(inline('(x.^2+y.^2<=1).*exp(i*(-0.346181.*(A.*x+B.*y)-0.1730905.*(x.^2+y.^2)))'),-1,1,-1,1,0.001,@quad,A,B); result=((abs(t)).^2)/(pi.^2) 得到的结果是result = 1.62113893827740 如果我把A=0 B=0 直接带入的话也就是下面的式子 t=dblquad(inline('(x.^2+y.^2<=1).*exp(i*(-0.1730905.*(x.^2+y.^2))+0)'),-1,1,-1,1,0.001,@quad); result=((abs(t)).^2)/(pi.^2) 得到的结果是result = 0.98525945483360 怎么结果不一致呢,第二个就是我要的结果,请问哪位高手知道是怎么回事吗?第一个式子哪里不对了呢?已经苦恼了一个星期了,拜托各位高手了 | 
|   |   | 
|  2008-07-20, 03:32 | #2 | 
| 高级会员 注册日期: 2007-12-02 年龄: 44 
					帖子: 303
				声望力: 31     |   
			
			建议你在命令执行窗口中输入 type dblquad   把 dblquad的函数调出来,详细看下 这个命令 的输入值 的默认值是什么 你的两个程序的 区别就是一个有A,B 初值,一个没有。 很有可能是 这个命令dblquad 如果你不设定初值A,B 就默认它们为其他值了。 | 
|   |   | 
|  2008-07-20, 14:28 | #3 | 
| 初级会员 注册日期: 2008-04-02 年龄: 43 
					帖子: 5
				声望力: 0  |   
			
			感谢关注 按照你的方法我查看了下这个函数 DBLQUAD(FUN,XMIN,XMAX,YMIN,YMAX) evaluates the double integral of FUN(X,Y) over the rectangle XMIN <= X <= XMAX, YMIN <= Y <= YMAX. DBLQUAD(FUN,XMIN,XMAX,YMIN,YMAX,TOL,@QUADL,P1,P2,...) passes the extra parameters to FUN(X,Y,P1,P2,...). 这里面没有A B 的默认值啊 | 
|   |   | 
|  | 
| 
 |  | 
|  相似的主题 | ||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [求助]求助 :滤波器组系数的问题 | culun | MATLAB论坛 | 0 | 2008-10-22 08:54 | 
| [求助]simulink用什么模块实现数模转换和模数转换? | chenxin_19344834 | MATLAB论坛 | 0 | 2008-06-23 14:56 | 
| [求助]关于三次样条插值csape的使用 | skycitywu | MATLAB论坛 | 0 | 2008-04-21 22:21 | 
| 【分享】传个东西:Matlab神经网络应用指南chm | tqr591513792 | MATLAB论坛 | 3 | 2008-03-07 16:33 |