GCD чисел и многочленов
[ находит наибольший общий делитель G,C,D] = gcd(A,B,X)A и B, а также возвращает коэффициенты Безо, C и D, такой, что G = A*C + B*D. Для многомерных выражений укажите полиномиальную переменную X таким образом, что он не появляется в знаменателе C и D. Если не указать X, то gcd использует переменную по умолчанию, определенную symvar.
Чтобы найти наибольший общий делитель из трех или более значений, укажите эти значения как символический вектор или матрицу.
Найдите наибольший общий делитель из этих четырёх целых чисел, указанных как элементы символического вектора.
A = sym([4420, -128, 8984, -488]) gcd(A)
A = [ 4420, -128, 8984, -488] ans = 4
Можно также задать эти значения как элементы символьной матрицы.
A = sym([4420, -128; 8984, -488]) gcd(A)
A = [ 4420, -128] [ 8984, -488] ans = 4
Найдите наибольший общий делитель одномерных и многомерных многочленов.
Найдите наибольший общий делитель этих одномерных многочленов.
syms x gcd(x^3 - 3*x^2 + 3*x - 1, x^2 - 5*x + 4)
ans = x - 1
Найдите наибольший общий делитель из этих многомерных многочленов. Поскольку существует более двух многочленов, укажите их как элементы символьного вектора.
syms x y gcd([x^2*y + x^3, (x + y)^2, x^2 + x*y^2 + x*y + x + y^3 + y])
ans = x + y
Наибольший общий делитель рациональных чисел a1,a2,... является числом g, такой, что g/a1,g/a2,... являются целыми числами, и gcd(g/a1,g/a2,...) = 1.
Найдите наибольший общий делитель этих рациональных чисел, указанных как элементы символического вектора.
gcd(sym([1/4, 1/3, 1/2, 2/3, 3/4]))
ans = 1/12
gcd вычисляет наибольший общий делитель комплексных чисел над гауссовыми целыми числами (комплексные числа с целыми вещественными и мнимыми частями). Возвращает комплексное число с положительной действительной частью и неотрицательной мнимой частью.
Найдите наибольший общий делитель этих комплексных чисел.
gcd(sym([10 - 5*i, 20 - 10*i, 30 - 15*i]))
ans = 5 + 10i
Для векторов и матриц: gcd находит наибольшие общие делители по элементам. Нескалярные аргументы должны иметь одинаковый размер.
Найдите наиболее общие делители для элементов этих двух матриц.
A = sym([309, 186; 486, 224]); B = sym([558, 444; 1024, 1984]); gcd(A,B)
ans = [ 3, 6] [ 2, 32]
Найти наиболее общие делители для элементов матрицы A и значение 200. Здесь, gcd расширяется 200 в 2около-2 матрица со всеми элементами, равными 200.
gcd(A,200)
ans = [ 1, 2] [ 2, 8]
Теорема в теории чисел утверждает, что GCD двух чисел является наименьшей положительной линейной комбинацией этих чисел. Показать, что GCD является положительной линейной комбинацией для 64 и 44.
A = sym([64 44]); [G,M] = gcd(A)
G = 4 M = [ -2, 3]
isequal(G,sum(M.*A))
ans = logical 1
Найдите наибольший общий делитель и коэффициенты Безо этих многочленов. Для многомерных выражений используйте третий входной аргумент, чтобы задать полиномиальную переменную. При вычислении коэффициентов Безо, gcd гарантирует, что полиномиальная переменная не будет отображаться в их знаменателях.
Найти наибольший общий делитель и коэффициенты Bézout этих многочленов относительно переменной x.
[G,C,D] = gcd(x^2*y + x^3, (x + y)^2, x)
G = x + y C = 1/y^2 D = 1/y - x/y^2
Найти наибольший общий делитель и коэффициенты Bézout тех же многочленов относительно переменной y.
[G,C,D] = gcd(x^2*y + x^3, (x + y)^2, y)
G = x + y C = 1/x^2 D = 0
Если переменная полинома не указана, то панель инструментов использует symvar для определения переменной.
[G,C,D] = gcd(x^2*y + x^3, (x + y)^2)
G = x + y C = 1/y^2 D = 1/y - x/y^2
Решите уравнение Диофантина, 30x + 56y = 8, для x и y.
Найти наибольший общий делитель и пару коэффициентов Bézout для 30 и 56.
[G,C,D] = gcd(sym(30),56)
G = 2 C = -13 D = 7
C = -13 и D = 7 удовлетворить личность Безоута, (30*(-13)) + (56*7) = 2.
Перепишите идентичность Безаута так, чтобы она больше походила на исходное уравнение. Сделайте это, умножив на 4. Использовать == для проверки того, что обе стороны уравнения равны.
isAlways((30*C*4) + (56*D*4) == G*4)
ans = logical 1
Вычислить значения x и y которые решают уравнение Диофантина.
x = C*4 y = D*4
x = -52 y = 28
Запрос gcd для чисел, которые не являются символическими объектами, вызывает MATLAB
®gcd функция.
MATLAB gcd функция не принимает рациональные или сложные аргументы. Чтобы найти наибольший общий делитель рациональных или комплексных чисел, преобразуйте эти числа в символические объекты с помощью sym, а затем использовать gcd.
Нескалярные аргументы должны иметь одинаковый размер. Если один входной аргумент не является скалярным, то gcd расширяет скаляр в вектор или матрицу того же размера, что и нескалярный аргумент, со всеми элементами, равными соответствующему скаляру.