作业帮 > 综合 > 作业

matlab 计算精度

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 23:45:07
matlab 计算精度
d1=[0.5 1/2/3^0.5];
d2=[-0.5 1/2/3^0.5];
d3= [0 -1/3^0.5];
b1=[2*pi 2*pi/3^0.5];
b2=[-2*pi 2*pi/3^0.5];
k=1/3*(b1-b2);
>> exp(i*dot(k,d1))+exp(i*dot(k,d2))+exp(i*dot(k,d3))
ans =
4.4409e-016
为什么结果不是零啊.这个结果无限接近于零,怎么让它在结果中显示0
你可以将结果保留若干位小数:比如
>> t=4.4409e-016
t =
4.4409e-016
>> tt=round(t*10000)/10000
tt =
0
>>
这样就是保留4位小数了
再问: 我算的是大矩阵。。然后里面还有参量,这种情况也行么?。。。矩阵元是 pzapzb=vpppi*(exp(i*dot(k,d1))+exp(i*dot(k,d2))+exp(i*dot(k,d3))); 计算结果成vpppi*/2251799813685248
再答: 可以啊,上面的t不只是变量,可以是任意矩阵。至于说有字符参量,我试了一下也可以啊。 >> syms a >> a*t ans = (4503607640442835*a)/10141204801825835211973625643008 >> a*tt ans = 0
再问: OK!顺带问下。。。 怎么让这样的10*10的大矩阵对齐输出结果(带参量)?
再答: 什么叫对齐输出?matlab本身就会对齐输出吧,除非一行太长显示不完才换下一行,你把输出窗口拉宽一点再重新输出可能会好一点。