史密斯的矩阵形式
找到史密斯形式的反向希尔伯特矩阵。
a = sym(invhilb(5))s = smithform(a)
A = [25,-300,1050,-1400,630] [-300,4800] [1050,-18900,79380,-117600,56700] [-1400,26880,-117600,179200,-88200] [630,-12600,56700,-88200,44100] s = [5,0,0,0,0] [0,60,0,0,0] [0,0,420,0,0] [0,0,0,840,0] [0,0,0,0,2520]
创建一个2×2矩阵,其中的元素是变量中的多项式X
。
syms x a = [x ^ 2 + 3,(2 * x-1)^ 2;(x + 2)^ 2,3 * x ^ 2 + 5]
a = [x ^ 2 + 3,(2 * x-1)^ 2] [(x + 2)^ 2,3 * x ^ 2 + 5]
找到这个矩阵的史密斯形式。
s = smithform(a)
s = [1,0] [0,x ^ 4 + 12 * x ^ 3 - 13 * x ^ 2 - 12 * x - 11]
创建包含两个变量的2×2矩阵:X
和y
。
Syms x y a = [2 / x + y,x ^ 2 - y ^ 2;3 * sin(x)+ y,x]
a = [y + 2 / x,x ^ 2 - y ^ 2] [y + 3 * sin(x),x]
找到这个矩阵的史密斯形式。如果您未指定多项式变量,smithform.
用途Symvar(A,1)
因此决定了多项式变量是X
。因为3 * sin(x)+ y
不是多项式X
那smithform.
抛出错误。
s = smithform(a)
使用mupadengine / feval(第163行)错误无法将矩阵条目转换为整数或单变量多项式。
找到史密斯的形式一种
指定所有元素一种
是变量中的多项式y
。
s = smithform(a,y)
s = [1,0] [0,3 * y ^ 2 * sin(x) - 3 * x ^ 2 * sin(x)+ y ^ 3 + y *( - x ^ 2 + x)+ 2]
查找史密斯形式和变换矩阵,用于逆希尔伯特矩阵。
a = sym(invhilb(3));[u,v,s] = smithform(a)
U = [1,1,1] [-4,-1,0] [10,5,3] V = [1,-2,0] [0,1,5] [0,1,4] s= [3,0,0] [0,12,0] [0,0,60]
验证s = u * a * v
。
Isalways(S == U * A * V)
ANS = 3×3逻辑阵列1 1 1 1 1 1 1 1 1
找到多项式矩阵的史密斯形式和转换矩阵。
syms x y a = [2 *(x - y),3 *(x ^ 2 - y ^ 2);4 *(x ^ 3 - y ^ 3),5 *(x ^ 4 - y ^ 4)];[u,v,s] = smithform(a,x)
U = [0,1] [1, - x /(10 * y ^ 3) - 3 /(5 * y ^ 2)] v = [-x /(4 * y ^ 3), - (5 * x* y ^ 2)/ 2 - (5 * x ^ 2 * y)/ 2 - (5 * x ^ 3)/ 2 - (5 * y ^ 3)/ 2] [1 /(5 * y ^ 3)那2*x^2 + 2*x*y + 2*y^2] S = [ x - y, 0] [ 0, x^4 + 6*x^3*y - 6*x*y^3 - y^4]
验证s = u * a * v
。
Isalways(S == U * A * V)
ANS = 2×2逻辑阵列1 1 1 1 1
如果矩阵不包含特定变量,并且您调用smithform.
将该变量指定为第二个参数,那么结果会与您获得的内容不同,而无需指定该变量。例如,创建不包含任何变量的矩阵。
a = [9 -36 30;-36 192 -180;30 -180 180]
a = 9 -36 30 -36 192 -180 30 -180 180
称呼smithform.
指定变量X
作为第二个论点。在这种情况下,smithform.
假设元素一种
是单变量的多项式X
。
syms x smithform(a,x)
ANS = 1 0 0 0 1 0 0 0 1
称呼smithform.
没有指定变量。在这种情况下,smithform.
对待一种
作为整数的矩阵。
smithform(a)
ANS = 3 0 0 0 12 0 0 0 60