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

MATLAB - Algebra

Tot nu toe hebben we gezien dat alle voorbeelden zowel in MATLAB werken als in de GNU, ook wel Octave genoemd. Maar voor het oplossen van elementaire algebraïsche vergelijkingen zijn zowel MATLAB als Octave weinig verschillend, dus we zullen proberen MATLAB en Octave in afzonderlijke secties te behandelen.

We zullen ook de factorisatie en vereenvoudiging van algebraïsche uitdrukkingen bespreken.

Algebraïsche basisvergelijkingen oplossen in MATLAB

De oplossen functie wordt gebruikt voor het oplossen van algebraïsche vergelijkingen. In zijn eenvoudigste vorm neemt de functie solve de vergelijking tussen aanhalingstekens als argument.

Laten we bijvoorbeeld x oplossen in de vergelijking x-5 =0

solve('x-5=0')

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans =
   5

Je kunt de oplosfunctie ook aanroepen als −

y = solve('x-5 = 0')

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

y =
   5

U mag zelfs de rechterkant van de vergelijking niet opnemen −

solve('x-5')

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans =
   5

Als de vergelijking meerdere symbolen bevat, gaat MATLAB er standaard van uit dat je oplost voor x, maar de functie voor oplossen heeft een andere vorm −

solve(equation, variable)

waar, kunt u ook de variabele vermelden.

Laten we bijvoorbeeld de vergelijking v – u – 3t 2 . oplossen =0, voor v. In dit geval moeten we −

. schrijven
solve('v-u-3*t^2=0', 'v')

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans =
   3*t^2 + u

Algebraïsche basisvergelijkingen oplossen in octaaf

De roots functie wordt gebruikt voor het oplossen van algebraïsche vergelijkingen in Octave en u kunt bovenstaande voorbeelden als volgt schrijven −

Laten we bijvoorbeeld x oplossen in de vergelijking x-5 =0

Live demo
roots([1, -5])

Octave zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans = 5

Je kunt de oplosfunctie ook aanroepen als −

Live demo
y = roots([1, -5])

Octave zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

y = 5

Kwadratische vergelijkingen oplossen in MATLAB

De oplossen functie kan ook hogere orde vergelijkingen oplossen. Het wordt vaak gebruikt om kwadratische vergelijkingen op te lossen. De functie retourneert de wortels van de vergelijking in een array.

Het volgende voorbeeld lost de kwadratische vergelijking x 2 . op -7x +12 =0. Maak een scriptbestand en typ de volgende code −

eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

The first root is: 
   3
The second root is: 
   4

Kwadratische vergelijkingen oplossen in octaaf

Het volgende voorbeeld lost de kwadratische vergelijking x 2 . op -7x +12 =0 in octaaf. Maak een scriptbestand en typ de volgende code −

Live demo
s = roots([1, -7, 12]);

disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

The first root is: 
   4
The second root is: 
   3

Hogere-ordevergelijkingen oplossen in MATLAB

De oplossen functie kan ook hogere orde vergelijkingen oplossen. Laten we bijvoorbeeld een derdegraadsvergelijking oplossen als (x-3) 2 (x-7) =0

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

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans =
   3
   3
   7

In het geval van vergelijkingen van hogere orde bevatten wortels lang veel termen. U kunt de numerieke waarde van dergelijke wortels krijgen door ze om te zetten in dubbel. Het volgende voorbeeld lost de vierde orde vergelijking x 4 . op − 7x 3 + 3x 2 − 5x + 9 =0.

Maak een scriptbestand en typ de volgende code −

eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

Wanneer u het bestand uitvoert, wordt het volgende resultaat geretourneerd −

The first root is: 
6.630396332390718431485053218985
 The second root is: 
1.0597804633025896291682772499885
 The third root is: 
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
 The fourth root is: 
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
   6.6304
Numeric value of second root
   1.0598
Numeric value of third root
   -0.3451 - 1.0778i
Numeric value of fourth root
   -0.3451 + 1.0778i

Houd er rekening mee dat de laatste twee wortels complexe getallen zijn.

Hogere-ordevergelijkingen oplossen in octaaf

Het volgende voorbeeld lost de vierde orde vergelijking x 4 . op − 7x 3 + 3x 2 − 5x + 9 =0.

Maak een scriptbestand en typ de volgende code −

Live demo
v = [1, -7,  3, -5, 9];
s = roots(v);

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

Wanneer u het bestand uitvoert, wordt het volgende resultaat geretourneerd −

Numeric value of first root
 6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
 1.0598

Systeem van vergelijkingen oplossen in MATLAB

De oplossen functie kan ook worden gebruikt om oplossingen te genereren van stelsels van vergelijkingen met meer dan één variabele. Laten we een eenvoudig voorbeeld nemen om dit gebruik te demonstreren.

Laten we de vergelijkingen oplossen −

5x + 9y =5

3x – 6j =4

Maak een scriptbestand en typ de volgende code −

s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =
   22/19
ans =
   -5/57

Op dezelfde manier kun je grotere lineaire systemen oplossen. Beschouw de volgende reeks vergelijkingen −

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4j + 3z =8

Systeem van vergelijkingen in octaaf oplossen

We hebben een iets andere benadering om een ​​stelsel van 'n' lineaire vergelijkingen in 'n' onbekenden op te lossen. Laten we een eenvoudig voorbeeld nemen om dit gebruik te demonstreren.

Laten we de vergelijkingen oplossen −

5x + 9y =5

3x – 6j =4

Een dergelijk systeem van lineaire vergelijkingen kan worden geschreven als de enkele matrixvergelijking Ax =b, waarbij A de coëfficiëntenmatrix is, b de kolomvector is die de rechterkant van de lineaire vergelijkingen bevat en x de kolomvector is die de oplossing voorstelt als getoond in het onderstaande programma −

Maak een scriptbestand en typ de volgende code −

Live demo
A = [5, 9; 3, -6];
b = [5;4];
A \ b

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =

   1.157895
  -0.087719

Op dezelfde manier kun je grotere lineaire systemen oplossen zoals hieronder aangegeven −

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4j + 3z =8

Vergelijkingen uitbreiden en verzamelen in MATLAB

De uitbreiden en de verzamel functie breidt uit en verzamelt respectievelijk een vergelijking. Het volgende voorbeeld demonstreert de concepten −

Als je met veel symbolische functies werkt, moet je aangeven dat je variabelen symbolisch zijn.

Maak een scriptbestand en typ de volgende code −

syms x   %symbolic variable x
syms y   %symbolic variable x
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
 
% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =
   x^2 + 4*x - 45
ans =
   x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
   2*cos(x)*sin(x)
ans =
   cos(x)*cos(y) - sin(x)*sin(y)
ans =
   x^4 - 7*x^3
ans =
   x^6 - 8*x^5 + 15*x^4

Vergelijkingen in octaaf uitbreiden en verzamelen

U moet symbolisch . hebben pakket, dat uitbreiden . biedt en de verzamel functie om respectievelijk een vergelijking uit te breiden en te verzamelen. Het volgende voorbeeld demonstreert de concepten −

Wanneer u met veel symbolische functies werkt, moet u aangeven dat uw variabelen symbolisch zijn, maar Octave heeft een andere benadering om symbolische variabelen te definiëren. Let op het gebruik van Sin en Kos , die ook worden gedefinieerd in een symbolisch pakket.

Maak een scriptbestand en typ de volgende code −

% first of all load the package, make sure its installed.
pkg load symbolic

% make symbols module available
symbols

% define symbolic variables
x = sym ('x');
y = sym ('y');
z = sym ('z');

% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
 
% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =

-45.0+x^2+(4.0)*x
ans =

210.0+x^4-(43.0)*x^2+x^3+(23.0)*x
ans =

sin((2.0)*x)
ans =

cos(y+x)
ans =

x^(3.0)*(-7.0+x)
ans =

(-3.0+x)*x^(4.0)*(-5.0+x)

Factorisatie en vereenvoudiging van algebraïsche uitdrukkingen

De factor functie ontbindt een uitdrukking en de simplify functie vereenvoudigt een uitdrukking. Het volgende voorbeeld demonstreert het concept −

Voorbeeld

Maak een scriptbestand en typ de volgende code −

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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =
   (x - y)*(x^2 + x*y + y^2)
ans =
   [ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
   x^2 + 4

MATLAB

  1. MATLAB - Overzicht
  2. MATLAB - Basissyntaxis
  3. MATLAB - Variabelen
  4. MATLAB - Opdrachten
  5. MATLAB - Gegevenstypen
  6. MATLAB - Operators
  7. MATLAB - Vectoren
  8. MATLAB - Matrix
  9. MATLAB - Arrays
  10. MATLAB - Dubbele puntnotatie
  11. MATLAB - Cijfers