24小时热门版块排行榜    

查看: 1174  |  回复: 14

shuitong110

银虫 (小有名气)


fegg7502: 金币+1, 鼓励交流 2014-05-09 08:11:23
书中图片。
程序有误!!MTLAB 对函数积分(变量L),积分后的函数M再进行sin函数计算得到函数MM
1.gif

11楼2014-04-25 19:44:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

【答案】应助回帖


fegg7502: 金币+1, 应助指数+1, 鼓励交流 2014-05-09 08:11:36
引用回帖:
10楼: Originally posted by shuitong110 at 2014-04-25 19:43:59
不知道怎么给你发图片,我在帖子回复中加了一个图示,是书上的类似结果,只是参数不太一样,但是基本形式不应有太大变化。...

抱歉没有注意到前一阵子你的回复,
才看到,
我用另外一种积分方法试了一下,这次是用 MATLAB 的 integral 函数来解
结果还是跟 上面给出的程序结果一样,
所以如果书上给出的结果是正弦曲线,也许程序所谓出错的地方在于参数值,
你可以参看一下,
如果有问题的话,可以PM我,
祝好运!
CODE:
d = 0.1*10^-6 ;
R = 100*10^-6 ;
P = 0.3 ;
k = 2*pi./(1.55*10^-6) ;
B = 11*10^6 ;
n1 = 3.45 ;
n2 = 1 ;
w  = 0.5*10^-6 ;
y1 = sqrt(abs(k.^2*n1.^2-B.^2)) ;
y2 = sqrt(abs(B.^2-k.^2*n2.^2)) ;

fun = @(L) (2*P*y1^2*y2^2) / (B*k^2*(n1^2-n2^2)*(2+y2*w) ) * exp( -y2*(d+R-sqrt(R*R-L.*L)) );

Lval  = 0:0.02*10^-6:140*10^-6;
for i = 1:length(Lval)
    v = Lval(i);
    M(i)=sin( integral(fun,0, v) ) ;
end
plot(Lval, M)

12楼2014-05-09 05:15:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★
fegg7502: 金币+1, 应助指数+1, 鼓励交流 2014-05-09 08:11:50
shuitong110: 金币+2, ★★★很有帮助 2014-05-10 17:11:48
引用回帖:
11楼: Originally posted by shuitong110 at 2014-04-25 19:44:21
书中图片。

1.gif

看到这个图片了,
按照这个图片来看的话,是不是你的间隙值取得很小 ?
——好像是间隙值越小,“正弦曲线”的周期越小。
在你的计算结果里面,这个 半周期 值 大概在8-10之间
你可以按照书中的参数测试一下,看看能否得出跟书中相似的结果,
如果确定自己的程序没有错,那就有可能是书中有错,或者给出的方程/参数不完整等等
13楼2014-05-09 05:28:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shuitong110

银虫 (小有名气)

引用回帖:
12楼: Originally posted by alorsmail at 2014-05-09 05:15:44
抱歉没有注意到前一阵子你的回复,
才看到,
我用另外一种积分方法试了一下,这次是用 MATLAB 的 integral 函数来解
结果还是跟 上面给出的程序结果一样,
所以如果书上给出的结果是正弦曲线,也许程序所谓出错 ...

??? Undefined function or method 'integral' for input arguments of type 'function_handle'.

Error in ==> xiaimuchong2 at 17
    M(i)=sin( integral(fun,0, v) ) ;

仿不出来。
14楼2014-05-09 08:18:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

引用回帖:
14楼: Originally posted by shuitong110 at 2014-05-09 08:18:05
??? Undefined function or method 'integral' for input arguments of type 'function_handle'.

Error in ==> xiaimuchong2 at 17
    M(i)=sin( integral(fun,0, v) ) ;

仿不出来。...

可能你的MATLAB版本比较旧,没有这个函数
我现在用的是2012B,
把其中相关的两个函数复制出来,(我没有旧版的MATLAB,无法测试是否足够)
你放到同一个目录下试试看,

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : integral.zip
  • 2014-05-09 12:44:46, 6.72 K
15楼2014-05-09 12:47:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shuitong110 的主题更新
信息提示
请填处理意见