作业帮 > 综合 > 作业

为什么在matlab中,算式中的数据都是实数,可是算到后来算是的结果确成为复数了?

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/22 21:58:54
为什么在matlab中,算式中的数据都是实数,可是算到后来算是的结果确成为复数了?
global sita1 sita2 kesi sigema;
P0=input('请输入工作压力P0(Mpa)=')*1e6;
Pa=1e5;sigema=Pa/P0;
R=input('请输入球半径R(mm)=');
sita1=input('请输入球窝内包角sita1(度)=')*pi/180;
sita2=input('请输入球窝外包角sita2(度)=')*pi/180;
n=input('请输入节流孔个数n(个数)=');
d=input('请输入节流孔直径d(mm)=');
sita0=fzero(@fun1,30*pi/180)
f31=log(tan(sita2)/tan(sita0))
f32=log(tan(sita0)/tan(sita1))
f33=log(tan(sita2)/tan(sita1))
f34=1/(2*(cos(sita0))^2)
f35=1/(2*(cos(sita1))^2)
f36=1/(2*(cos(sita2))^2)
f3=(f31+f36-f34)*(f32+f34-f35)/(f33+f36-f35)
f2=268e-6;
if sigema==1/4 g=1.290;
elseif sigema==1/5 g=1.740;
elseif sigema==1/6 g=2.284;
end
e=((0.8*0.25*pi*d^2*n*f2*f3)/(2.4*g))^(1/3)
e=int16(e)
f1=0.8*0.25*pi*d^2*n/(e^3)
kesi=f1*f2*f3
beita=sqrt(kesi*sigema*0.484+sigema^2)
到e的时候计算结果开始变成复数了,
为什么在matlab中,算式中的数据都是实数,可是算到后来算是的结果确成为复数了?
e=((0.8*0.25*pi*d^2*n*f2*f3)/(2.4*g))^(1/3)
负数开三次方,会出现复数
比如(-1)^(1/3)= 0.5000 + 0.8660i