gh688 发表于 2007-6-9 15:40

程序出错

我有一个程序运行老出错,请高人指点.
我把程序简化一下,是这样的:
rou1=7850
d=10^(-3).*
l=10^(-3).*
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).*;
l=10^(-3).*;
rou1=7850
d=10^(-3).*
l=10^(-3).*
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,请指教.

eight 发表于 2007-6-9 16:04

原帖由 gh688 于 2007-6-9 15:40 发表 http://www.chinavib.com/forum/images/common/back.gif
我有一个程序运行老出错,请高人指点.
我把程序简化一下,是这样的:
rou1=7850
d=10^(-3).*
l=10^(-3).*
u=rou1.*pi.*d.^2./4; ...

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

[ 本帖最后由 eight 于 2007-6-9 16:19 编辑 ]

gh688 发表于 2007-6-9 16:18

thanks

用digits 我解决这个问题了,果然是精度问题,多谢

VibrationMaster 发表于 2007-6-9 22:09

用 format long
或者画成图形检查
页: [1]
查看完整版本: 程序出错