Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> MATLAB

Алгебраические уравнения в 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

  1. MATLAB: Комплексный обзор ведущей среды численных вычислений
  2. Основы MATLAB: Синтаксис, команды и спецсимволы
  3. Переменные в MATLAB: Основы, примеры и работа с векторами/матрицами
  4. Основные команды MATLAB для эффективных вычислений
  5. Типы данных в MATLAB: Полное руководство с примерами
  6. Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
  7. Векторы в MATLAB: Строковые, столбцовые и основные операции
  8. Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
  9. MATLAB: Мастерство работы с многомерными и специальными массивами
  10. Оператор двоеточия в MATLAB: создание векторов и эффективная итерация