声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1653|回复: 3

[编程技巧] 程序出错

[复制链接]
发表于 2007-6-9 15:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我有一个程序运行老出错,请高人指点.
我把程序简化一下,是这样的:
rou1=7850
d=10^(-3).*[9,9,17,17,17,17,17,17,17,17]
l=10^(-3).*[4,4,10.75,10.75,10.75,10.75,11,11,7.75,7.75]
u=rou1.*pi.*d.^2./4;
jp=0.5.*u.*d.^2./4;
jd=u./12.*(3.*d.^2./4+l.^2);
显示的结果是:
jp =

  1.0e-004 *

    0.0506    0.0506    0.6437    0.6437    0.6437    0.6437    0.6437    0.6437    0.6437    0.6437
jd =

  1.0e-004 *

    0.0319    0.0319    0.4934    0.4934    0.4934    0.4934    0.5015    0.5015    0.4110    0.4110
一切显示正常.
但是我实际计算中d和l是80列的向量.结果就出错.我真的不知道错在那里
d=10^(-3).*[9,9,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,22,22,22,22,22,22,24,24,24,24,44,44,39.7,39.7,26,26,26,22,22,22,22,21,21,21,21,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,18,18,18,18,18,17,17,17,17,17,17,17,17,17,17,9,9,9];
l=10^(-3).*[4,4,10.75,10.75,10.75,10.75,11,11,7.75,7.75,7.75,7.75,9.75,9.75,9.75,9.75,11,11,10,10,10,10,9.83,9.83,9.83,9.83,9.83,9.83,13,13,4.5,4.5,12,12,13,13,16.33,16.33,16.33,17.25,17.25,17.25,17.25,16,16,16,16,10,10,10,10,11,11,7.25,7.25,7.25,7.25,10.25,10.25,10.25,10.25,11,11,9.75,9.75,9.75,9.75,7.75,7.75,7.75,7.75,11,11,10.75,10.75,10.75,10.75,4,4,4];
rou1=7850
d=10^(-3).*[9,9,17,17,17,17,17,17,17,17]
l=10^(-3).*[4,4,10.75,10.75,10.75,10.75,11,11,7.75,7.75]
u=rou1.*pi.*d.^2./4;
jp=0.5.*u.*d.^2./4;
jd=u./12.*(3.*d.^2./4+l.^2);
显示的结果是:
jp =

  Columns 1 through 16

    0.0000    0.0000    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001

  Columns 17 through 32

    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0002    0.0002    0.0002    0.0002    0.0002    0.0002    0.0003    0.0003    0.0003    0.0003

  Columns 33 through 48

    0.0029    0.0029    0.0019    0.0019    0.0004    0.0004    0.0004    0.0002    0.0002    0.0002    0.0002    0.0001    0.0001    0.0001    0.0001    0.0001

  Columns 49 through 64

    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001

  Columns 65 through 80

    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0000    0.0000    0.0000
为何jp的很多列为0,请指教.
回复
分享到:

使用道具 举报

发表于 2007-6-9 16:04 | 显示全部楼层
原帖由 gh688 于 2007-6-9 15:40 发表
我有一个程序运行老出错,请高人指点.
我把程序简化一下,是这样的:
rou1=7850
d=10^(-3).*[9,9,17,17,17,17,17,17,17,17]
l=10^(-3).*[4,4,10.75,10.75,10.75,10.75,11,11,7.75,7.75]
u=rou1.*pi.*d.^2./4; ...


你说“正常”的情况也不见得正常,因为结果都接近0(看到前面的 1e-004 吗);至于“不正常”的情况,估计是显示精度问题,help
format, digits 吧

[ 本帖最后由 eight 于 2007-6-9 16:19 编辑 ]
 楼主| 发表于 2007-6-9 16:18 | 显示全部楼层

thanks

用digits 我解决这个问题了,果然是精度问题,多谢
发表于 2007-6-9 22:09 | 显示全部楼层
用 format long
或者画成图形检查
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 01:46 , Processed in 0.062620 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表