劳斯-赫维茨是证明或否定电气控制系统稳定性的判据。
给定一个具有P(s)/Q(s)形式方程的系统,其中P(s)和Q(s)是任意程度的多项式,如果多项式Q(s)的所有根都位于复平面的左半部,则称它是稳定的,这意味着根的实部为负值。
对于度小于或等于2的多项式,确定根并注意系统是否稳定是非常简单的。对于高阶多项式Q(s),劳斯-赫维茨定理可以用来判断系统是否是Hurwitz稳定的。
对任意程度应用此定理的方法之一是描述维基百科,它包括对表的行执行操作,然后在表的第一列中计数符号更改的数目。其内容如下:
s^n、s^n-2、…、s^2、s^0组成,第2行由奇数系数s^n-1、s^n-3、…、s^3、s^1组成;下面是这个过程的一些例子:
# Polynomial: 1 3 6 12 8.00
s^4 1 6 8
s^3 3 12 0
s^2 2 8 0
s^1--0-0--0-- < Row of zero - replace it by:
s^1 4 0 0 < Derivative 2*s^2 + 8*s^0 = 4*s^1
(between each 2 columns the power of s is lowered by 2)
s^0 8 0 0 < Continue normally
# Sign Changes: 0 (equivalent to no root in the right half plane)
# Stable: Yes另一个:
s^2 1 -2
s^1 1 0
s^0 -2 0
# Sign Changes: 1 (equivalent to 1 root in the right half plane)
# Stable: No0/1。1 3 6 12 8 (它更适合这个问题,但最终并不重要)。0、以下列中的0,或者遇到满是0的行的情况。(注意:以防万一,不需要查看rhp/lhp/jw轴中有多少根)。下面是一个示例输入/输出(以上述方式提供)来测试您的程序:
#input:
1 12 6 10 10 6 14
1 1 -2
1 2 1 2
1 3 1 3 16
1 2 3 6 2 1
1 2 14 88 200 800
1 2 3 6 2 1
1 3 6 12 8
1 4 5 2 4 16 20 8
#output:
0
0
1
0
0
0
0
1
0如果你需要更多的澄清,让我知道,我会尽力澄清。
发布于 2013-06-11 20:00:04
这就是我努力做到的(还有高尔夫):
from decimal import*
R=xrange
def s(p):
d=len(p)
if 0 in p:return 0
elif sum(1 for c in p if c>0) not in (0,d):return 0
p=p+[0] if d%2 else p[:]
r=[[0 for j in R(len(p)//2)] for i in R(d)]
r[:2]=[[v for v in p[i::2]] for i in (0,1)]
for i in R(2,len(r)):
a,h,b = 1,0,0
for k in R(len(r[i])-1):
v=(r[i-1][0]*r[i-2][k+1]-r[i-2][0]*r[i-1][k+1])/r[i-1][0]
r[i][k],a,h,b=v,a and v==0,h or v==0,b or (h and v!=0)
if a:r[i]=[v*max(0,d-i-2*k) for k,v in enumerate(r[i-1])]
elif b:return False
return sum(1 for v in r if v[0]>0) in (0,d)
while 1:
r=raw_input()
if not r:break
print 1 if s([Decimal(x) for x in r.split()]) else 0它以多项式的系数为输入,按降阶(S的最高次方为0)。
https://codegolf.stackexchange.com/questions/11847
复制相似问题