MATLAB程序问题 5
求解一元二次方程,假如说两个跟一个大于零,或者两个相等都大于零,那么就另V=大于零的值a=E2*cot(B1)^2+E2*cot(B2)^2+E1;b=2*E2*W*(c...
求解一元二次方程,假如说两个跟一个大于零,或者两个相等都大于零,那么就另 V=大于零的值
a=E2*cot(B1)^2+E2*cot(B2)^2+E1;
b=2*E2*W*(cot(B1)*R1+cot(B2)*R2)-2*W*R2*cot(B2);
c=E2*W^2*(R1^2+R2^2)-2*W^2*R2^2;
deita=b*b-4*a*c
if deita>0
X1=(-b+sqrt(deita))/2*a;
X2=(-b-sqrt(deita))/2*a;
else deita==0
X1=-b/2*a;
X2=X1;
if (X1>0&&X2<0)
V=X1;
else if(X1<0&&X2>0)
V=X2;
else
V=0;
end
end
大神帮我看一下,开始判断两个值是否大于零时我就不会了,连续好几个选择判断,应该怎么改正。 展开
a=E2*cot(B1)^2+E2*cot(B2)^2+E1;
b=2*E2*W*(cot(B1)*R1+cot(B2)*R2)-2*W*R2*cot(B2);
c=E2*W^2*(R1^2+R2^2)-2*W^2*R2^2;
deita=b*b-4*a*c
if deita>0
X1=(-b+sqrt(deita))/2*a;
X2=(-b-sqrt(deita))/2*a;
else deita==0
X1=-b/2*a;
X2=X1;
if (X1>0&&X2<0)
V=X1;
else if(X1<0&&X2>0)
V=X2;
else
V=0;
end
end
大神帮我看一下,开始判断两个值是否大于零时我就不会了,连续好几个选择判断,应该怎么改正。 展开
2个回答
展开全部
if delta>0
X1=(-b+sqrt(delta))/2*a;
X2=(-b-sqrt(delta))/2*a;
elseif delta==0 % 不是 else
X1=-b/2*a;
X2=X1;
end
if X1>0&&X2<0,
V=X1;
elseif X1<0&&X2>0, % 不是 else if
V=X2;
elseif X1>0&&X2>0
V=0;
end
X1=(-b+sqrt(delta))/2*a;
X2=(-b-sqrt(delta))/2*a;
elseif delta==0 % 不是 else
X1=-b/2*a;
X2=X1;
end
if X1>0&&X2<0,
V=X1;
elseif X1<0&&X2>0, % 不是 else if
V=X2;
elseif X1>0&&X2>0
V=0;
end
追问
上下两个部分之间用 end,下一部分还知道X1 X2是什么吗?怎么运行起来提示Variable 'X1' is undefined on some execution paths.
追答
可能delta<0了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |