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
- MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
- MATLAB Basics: Essentiële Syntax & Commando's
- Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
- Essentiële MATLAB Commando's voor Efficiënte Berekening
- MATLAB Datatypes: Uitgebreide Gids
- MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
- MATLAB Vectoren: Basis van Rij- en Kolomvectoren
- MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
- MATLAB: Multidimensionale en Speciale Arrays Beheersen
- MATLAB Dubbele Punt Notatie: Vectors Maken & Efficiënt Itereren
- MATLAB Getallen: Typen, Opslag en Conversie