Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> MATLAB

Algebraïsche Vergelijkingen in MATLAB: Oplossen, Vereenvoudigen & Ontbinden

Voor het oplossen van algebraïsche vergelijkingen verschillen MATLAB en Octave iets. We behandelen ze apart. Ook bespreken we factorisatie en vereenvoudiging.

Basis Algebraïsche Vergelijkingen in MATLAB

De solve functie lost algebraïsche vergelijkingen op. In de meest basisvorm:

solve('x-5=0')    % ans = 5
y = solve('x-5=0') % y = 5
solve('x-5')       % ans = 5 (rechterkant optioneel)

Bij meerdere symbolen lost MATLAB standaard op naar x. Specificeer variabele:

solve('v-u-3*t^2=0', 'v')  % ans = 3*t^2 + u

Basis Vergelijkingen in Octave

Octave gebruikt roots voor polynomen. Coëfficiënten in vector:

roots([1, -5])     % x - 5 = 0 → ans = 5

Kwadratische Vergelijkingen in MATLAB

solve lost hogere-orde vergelijkingen op. Resultaat in array.

eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('Eerste wortel:'), disp(s(1))
disp('Tweede wortel:'), disp(s(2))

Resultaat: 3 en 4

Kwadratische Vergelijkingen in Octave

s = roots([1, -7, 12]);
% Resultaat: 4 en 3 (volgorde kan verschillen)

Hogere-Orde Vergelijkingen in MATLAB

solve('(x-3)^2*(x-7)=0')
% ans = 3, 3, 7

Vierde-orde vergelijking: x⁴ - 7x³ + 3x² - 5x + 9 = 0

eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp(s(1)); disp(s(2)); disp(s(3)); disp(s(4));
% Numerieke waarden met double():
disp(double(s(1))); ... disp(double(s(4)))

Resultaat: twee reële wortels (~6.6304, ~1.0598) en twee complexe conjugaat wortels (~ -0.3451 ± 1.0778i)

Hogere-Orde Vergelijkingen in Octave

v = [1, -7, 3, -5, 9];
s = roots(v);
disp(double(s(1))); ... disp(double(s(4)))

Stelsels van Vergelijkingen in MATLAB

solve lost systemen op met meerdere variabelen.

s = solve('5*x + 9*y = 5', '3*x - 6*y = 4');
s.x  % 22/19
s.y  % -5/57

Grotere lineaire systemen (3x3):

x + 3y - 2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8

Stelsels in Octave

Matrixvorm Ax = b:

A = [5, 9; 3, -6];
b = [5; 4];
A \ b  % ans = 1.1579, -0.0877

Uitwerken & Verzamelen in MATLAB

expand en collect voor symbolische manipulatie. Variabelen declareren met 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

Uitwerken & Verzamelen in Octave

Vereist symbolic pakket. Let op Sin/Cos (hoofdletters).

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)

Factorisatie & Vereenvoudiging

factor ontbindt in factoren, simplify vereenvoudigt.

syms x y
factor(x^3 - y^3)              % (x - y)*(x^2 + x*y + y^2)
factor([x^2-y^2, x^3+y^3])     % [(x-y)*(x+y), (x+y)*(x^2-x*y+y^2)]
simplify((x^4-16)/(x^2-4))     % x^2 + 4

MATLAB

  1. MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
  2. MATLAB Basics: Essentiële Syntax & Commando's
  3. Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
  4. Essentiële MATLAB Commando's voor Efficiënte Berekening
  5. MATLAB Datatypes: Uitgebreide Gids
  6. MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
  7. MATLAB Vectoren: Basis van Rij- en Kolomvectoren
  8. MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
  9. MATLAB: Multidimensionale en Speciale Arrays Beheersen
  10. MATLAB Dubbele Punt Notatie: Vectors Maken & Efficiënt Itereren
  11. MATLAB Getallen: Typen, Opslag en Conversie