Алгебраические уравнения в MATLAB: решение, упрощение, факторизация
Для решения алгебраических уравнений MATLAB и Octave используют разные подходы. Рассмотрим оба. Также обсудим разложение и упрощение выражений.
Решение уравнений в MATLAB: функция solve
Базовая форма: solve('equation'). Уравнение в кавычках.
Примеры
solve('x-5=0') % ans = 5
y = solve('x-5=0') % y = 5
solve('x-5') % ans = 5 (правая часть = 0 подразумевается)
solve('v-u-3*t^2=0','v') % ans = 3*t^2 + u (указание переменной)
Решение в Octave: функция roots
Работает с коэффициентами полинома.
roots([1, -5]) % x-5=0 → ans = 5 y = roots([1, -5]) % y = 5
Квадратные уравнения в MATLAB
solve решает уравнения высших порядков. Возвращает корни в массиве.
eq = 'x^2 -7*x + 12 = 0'; s = solve(eq); disp(s(1)) % 3 disp(s(2)) % 4
Квадратные уравнения в Octave
s = roots([1, -7, 12]); disp(s(1)) % 4 disp(s(2)) % 3
Уравнения высших порядков в MATLAB
solve('(x-3)^2*(x-7)=0') % ans = 3, 3, 7
% 4-я степень: x^4 - 7x^3 + 3x^2 - 5x + 9 = 0
eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
% Символьные корни:
% 6.6304, 1.0598, -0.3451 ± 1.0778i
% Численные значения через double(s(k))
Уравнения высших порядков в Octave
v = [1, -7, 3, -5, 9]; s = roots(v); % Численные корни: 6.6304, -0.3451±1.0778i, 1.0598
Системы уравнений в MATLAB
s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x % 22/19
s.y % -5/57
% Система 3x3:
% x + 3y - 2z = 5
% 3x + 5y + 6z = 7
% 2x + 4y + 3z = 8
s = solve('x+3*y-2*z=5','3*x+5*y+6*z=7','2*x+4*y+3*z=8')
Системы уравнений в Octave
Матричный подход: A*x = b.
A = [5, 9; 3, -6]; b = [5; 4]; A \ b % 1.1579, -0.0877 % Для 3x3: A = [1, 3, -2; 3, 5, 6; 2, 4, 3]; b = [5; 7; 8]; A \ b
Раскрытие и сборка выражений в MATLAB
expand — раскрывает скобки, collect — собирает по степеням переменной. Нужны символьные переменные (syms).
syms x y expand((x-5)*(x+9)) % x^2 + 4x - 45 expand((x+2)*(x-3)*(x-5)*(x+7)) % x^4 + x^3 - 43x^2 + 23x + 210 expand(sin(2*x)) % 2*cos(x)*sin(x) expand(cos(x+y)) % cos(x)cos(y) - sin(x)sin(y) collect(x^3*(x-7)) % x^4 - 7x^3 collect(x^4*(x-3)*(x-5)) % x^6 - 8x^5 + 15x^4
В Octave (пакет symbolic)
pkg load symbolic; symbols
x = sym('x'); y = sym('y');
expand((x-5)*(x+9))
expand(Sin(2*x))
collect(x^3*(x-7), z)
Факторизация и упрощение
factor — разложение на множители, simplify — упрощение.
syms x y factor(x^3 - y^3) % (x-y)(x^2+xy+y^2) factor([x^2-y^2, x^3+y^3]) % [(x-y)(x+y), (x+y)(x^2-xy+y^2)] simplify((x^4-16)/(x^2-4)) % x^2 + 4
MATLAB
- MATLAB: Комплексный обзор ведущей среды численных вычислений
- Основы MATLAB: Синтаксис, команды и спецсимволы
- Переменные в MATLAB: Основы, примеры и работа с векторами/матрицами
- Основные команды MATLAB для эффективных вычислений
- Типы данных в MATLAB: Полное руководство с примерами
- Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
- Векторы в MATLAB: Строковые, столбцовые и основные операции
- Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
- MATLAB: Мастерство работы с многомерными и специальными массивами
- Оператор двоеточия в MATLAB: создание векторов и эффективная итерация