MATLAB - Aljabar

Sejauh ini, kita telah melihat bahwa semua contoh bekerja di MATLAB serta GNU-nya, atau disebut Oktaf. Tetapi untuk menyelesaikan persamaan aljabar dasar, MATLAB dan Oktaf sedikit berbeda, jadi kami akan mencoba untuk membahas MATLAB dan Oktaf dalam bagian yang terpisah.

Kami juga akan membahas faktorisasi dan penyederhanaan ekspresi aljabar.

Memecahkan Persamaan Aljabar Dasar di MATLAB

Itu solvefungsi digunakan untuk memecahkan persamaan aljabar. Dalam bentuknya yang paling sederhana, fungsi selesaikan menggunakan persamaan yang diapit tanda kutip sebagai argumen.

Sebagai contoh, mari kita selesaikan untuk x dalam persamaan x-5 = 0

solve('x-5=0')

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -

ans =
   5

Anda juga dapat memanggil fungsi penyelesaian sebagai -

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

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -

y =
   5

Anda bahkan mungkin tidak memasukkan ruas kanan persamaan -

solve('x-5')

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -

ans =
   5

Jika persamaan melibatkan banyak simbol, MATLAB secara default mengasumsikan bahwa Anda sedang menyelesaikan x, namun fungsi penyelesaian memiliki bentuk lain -

solve(equation, variable)

dimana, Anda juga bisa menyebutkan variabelnya.

Sebagai contoh, mari kita selesaikan persamaan v - u - 3t 2 = 0, untuk v. Dalam kasus ini, kita harus menulis -

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

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -

ans =
   3*t^2 + u

Memecahkan Persamaan Aljabar Dasar dalam Oktaf

Itu roots fungsi digunakan untuk menyelesaikan persamaan aljabar dalam Oktaf dan Anda dapat menulis contoh di atas sebagai berikut -

Sebagai contoh, mari kita selesaikan untuk x dalam persamaan x-5 = 0

roots([1, -5])

Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -

ans = 5

Anda juga dapat memanggil fungsi penyelesaian sebagai -

y = roots([1, -5])

Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -

y = 5

Memecahkan Persamaan Kuadrat di MATLAB

Itu solvefungsi juga dapat memecahkan persamaan orde tinggi. Ini sering digunakan untuk menyelesaikan persamaan kuadrat. Fungsi mengembalikan akar persamaan dalam larik.

Contoh berikut menyelesaikan persamaan kuadrat x 2 -7x +12 = 0. Buat file script dan ketikkan kode berikut -

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));

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

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

Memecahkan Persamaan Kuadrat dalam Oktaf

Contoh berikut menyelesaikan persamaan kuadrat x 2 -7x +12 = 0 dalam Oktaf. Buat file script dan ketikkan kode berikut -

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

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

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

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

Memecahkan Persamaan Orde Tinggi di MATLAB

Itu solvefungsi juga dapat memecahkan persamaan orde tinggi. Misalnya, mari kita selesaikan persamaan kubik sebagai (x-3) 2 (x-7) = 0

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

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -

ans =
   3
   3
   7

Dalam kasus persamaan orde tinggi, akar panjang mengandung banyak suku. Anda bisa mendapatkan nilai numerik dari akar tersebut dengan mengubahnya menjadi dua kali lipat. Contoh berikut menyelesaikan persamaan orde empat x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.

Buat file script dan ketik kode berikut -

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)));

Saat Anda menjalankan file, ia mengembalikan hasil berikut -

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

Harap diperhatikan bahwa dua akar terakhir adalah bilangan kompleks.

Memecahkan Persamaan Orde Tinggi dalam Oktaf

Contoh berikut menyelesaikan persamaan orde empat x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.

Buat file script dan ketik kode berikut -

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)));

Saat Anda menjalankan file, ia mengembalikan hasil berikut -

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

Menyelesaikan Sistem Persamaan di MATLAB

Itu solvefungsi juga dapat digunakan untuk menghasilkan solusi sistem persamaan yang melibatkan lebih dari satu variabel. Mari kita ambil contoh sederhana untuk mendemonstrasikan penggunaan ini.

Mari kita selesaikan persamaan -

5x + 9y = 5

3x - 6y = 4

Buat file script dan ketik kode berikut -

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

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

ans =
   22/19
ans =
   -5/57

Dengan cara yang sama, Anda dapat menyelesaikan sistem linier yang lebih besar. Pertimbangkan kumpulan persamaan berikut -

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Menyelesaikan Sistem Persamaan dalam Oktaf

Kami memiliki pendekatan yang sedikit berbeda untuk menyelesaikan sistem persamaan linier 'n' dalam 'n' yang tidak diketahui. Mari kita ambil contoh sederhana untuk mendemonstrasikan penggunaan ini.

Mari kita selesaikan persamaan -

5x + 9y = 5

3x - 6y = 4

Sistem persamaan linier seperti itu dapat dituliskan sebagai persamaan matriks tunggal Ax = b, di mana A adalah matriks koefisien, b adalah vektor kolom yang memuat ruas kanan persamaan linier dan x adalah vektor kolom yang mewakili solusi sebagai ditampilkan pada program di bawah ini -

Buat file script dan ketik kode berikut -

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

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

ans =

   1.157895
  -0.087719

Dengan cara yang sama, Anda dapat menyelesaikan sistem linier yang lebih besar seperti yang diberikan di bawah ini -

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Memperluas dan Mengumpulkan Persamaan di MATLAB

Itu expand dan collectfungsi memperluas dan mengumpulkan persamaan masing-masing. Contoh berikut menunjukkan konsep -

Saat Anda bekerja dengan banyak fungsi simbolik, Anda harus menyatakan bahwa variabel Anda adalah simbolik.

Buat file script dan ketik kode berikut -

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))

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

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

Memperluas dan Mengumpulkan Persamaan dalam Oktaf

Anda harus memiliki symbolic paket, yang menyediakan expand dan collectberfungsi untuk memperluas dan mengumpulkan persamaan. Contoh berikut menunjukkan konsep -

Saat Anda bekerja dengan banyak fungsi simbolik, Anda harus menyatakan bahwa variabel Anda simbolis tetapi Oktaf memiliki pendekatan yang berbeda untuk mendefinisikan variabel simbolik. Perhatikan penggunaanSin dan Cos, yang juga didefinisikan dalam paket simbolik.

Buat file script dan ketik kode berikut -

% 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)

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

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)

Faktorisasi dan Penyederhanaan Ekspresi Aljabar

Itu factor fungsi memfaktorkan ekspresi dan simplifyfungsi menyederhanakan ekspresi. Contoh berikut menunjukkan konsep -

Contoh

Buat file script dan ketik kode berikut -

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))

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

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