Pengenalan Library SymPy

SymPy adalah library Python yang digunakan untuk melakukan perhitungan simbolik dalam matematika. Dengan SymPy, ekspresi matematis dapat direpresentasikan, disederhanakan, dievaluasi, dan dimanipulasi secara simbolis, bukan hanya secara numerik. Tujuan dari SymPy adalah untuk menyediakan alat-alat yang memungkinkan perhitungan matematika dilakukan dengan akurasi simbolik yang tinggi, sehingga perhitungan seperti aljabar, kalkulus, dan operasi matriks dapat diselesaikan secara analitis.

12.1. Cara Import SymPy

Untuk menggunakan modul SymPy, Anda harus melakukan import terlebih dahulu. Berikut adalah cara standar untuk mengimport library SymPy:

import sympy as sp

12.2. Pendefinisian Simbol

Langkah pertama dalam komputasi simbolik adalah mendefinisikan simbol menggunakan fungsi `symbols()`. Ini memungkinkan variabel diperlakukan sebagai entitas aljabar yang dapat dimanipulasi secara matematis.

1. Mendefinisikan satu simbol:

x = sp.symbols('x') x
x
Memuat penjelasan...

2. Mendefinisikan beberapa simbol:

a, b, c = sp.symbols("a b c") a + b + c
a + b + c
Memuat penjelasan...

3. Mendefinisikan simbol variabel dengan indeks:

x1, x2, x3 = sp.symbols("x1 x2 x3") x1 + x2 + x3
x1 + x2 + x3
Memuat penjelasan...

4. Mendefinisikan simbol dengan notasi range:

x_n = sp.symbols('x:5') x_n[0] + x_n[1] + x_n[2] + x_n[3] + x_n[4]
x0 + x1 + x2 + x3 + x4
Memuat penjelasan...

5. Mendefinisikan simbol Yunani:

alpha, beta, gamma = sp.symbols("alpha beta gamma") alpha + beta + gamma
α + β + γ
Memuat penjelasan...

12.3. Aljabar Dasar

SymPy memungkinkan Anda melakukan operasi aljabar dasar secara simbolik. Ini termasuk penjumlahan, pengurangan, perkalian, dan pembagian, serta fungsi yang lebih canggih seperti `expand()` dan `simplify()`.

1. Penjumlahan Simbolik:

x, y = sp.symbols('x y') addition = x + y addition
x + y
Memuat penjelasan...

2. Pengurangan Simbolik:

x, y = sp.symbols('x y') subtraction = x - y subtraction
x - y
Memuat penjelasan...

3. Perkalian Simbolik:

x, y = sp.symbols('x y') multiplication = x * y multiplication
x*y
Memuat penjelasan...

4. Pembagian Simbolik:

x, y = sp.symbols('x y') division = x / y division
x/y
Memuat penjelasan...

5. Mengembangkan Ekspresi dengan `expand()`:

expr = (x + y)**2 expanded_expr = expr.expand() expanded_expr
x**2 + 2*x*y + y**2
Memuat penjelasan...

6. Menyederhanakan Ekspresi dengan `simplify()`:

x = sp.symbols('x') simplified_expr = sp.simplify(sp.sin(x)**2 + sp.cos(x)**2) simplified_expr
1
Memuat penjelasan...

12.4. Kalkulus Dasar

SymPy sangat kuat untuk operasi kalkulus seperti diferensiasi, integrasi, dan limit. Ini memungkinkan penyelesaian analitis dari masalah kalkulus.

1. Diferensiasi dengan `.diff()`:

x = sp.symbols('x') f = x**3 + 2*x**2 + x f_prime = f.diff(x) f_prime
3*x**2 + 4*x + 1
Memuat penjelasan...

2. Pendefinisian Fungsi Trigonometri:

x = sp.symbols('x') f = sp.sin(x) f
sin(x)
Memuat penjelasan...

3. Integrasi Tak Tentu dengan `.integrate()`:

x = sp.symbols('x') f = sp.sin(x) f_integral_indef = sp.integrate(f, x) f_integral_indef
-cos(x)
Memuat penjelasan...

4. Integrasi Tentu dengan `.integrate()`:

x = sp.symbols('x') f = sp.sin(x) f_integral_def = sp.integrate(f, (x, 0, sp.pi)) f_integral_def
2
Memuat penjelasan...

5. Pendefinisian Fungsi untuk Limit:

x = sp.symbols('x') f = sp.sin(x) / x f
sin(x)/x
Memuat penjelasan...

6. Menghitung Limit dengan `.limit()`:

x = sp.symbols('x') f = sp.sin(x) / x f_limit = sp.limit(f, x, 0) f_limit
1
Memuat penjelasan...

7. Derivatif Orde Tinggi (`.diff()`):

x = sp.symbols('x') f = x**4 f_second_derivative = f.diff(x, 2) f_second_derivative
12*x**2
Memuat penjelasan...

12.5. Penyelesaian Persamaan Simbolik

Menyelesaikan persamaan adalah salah satu fitur inti SymPy. `solve()` digunakan untuk persamaan aljabar, dan `dsolve()` untuk persamaan diferensial.

1. Mendefinisikan Persamaan Simbolik (`sp.Eq()`):

x = sp.symbols('x') equation = sp.Eq(x**2 - 4, 0) equation
x**2 - 4 == 0
Memuat penjelasan...

2. Mendefinisikan Persamaan dengan Beberapa Variabel (`sp.Eq()`):

x, y = sp.symbols('x y') equation = sp.Eq(x**3 - 2, y - 2 + 3*x) equation
x**3 - 2 == 3*x + y - 2
Memuat penjelasan...

3. Menyelesaikan Persamaan Aljabar (`sp.solve()`):

x = sp.symbols('x') equation = sp.Eq(x**2 - 4, 0) solution = sp.solve(equation, x) solution
[-2, 2]
Memuat penjelasan...

4. Menyelesaikan Sistem Persamaan Aljabar (`sp.solve()`):

x, y = sp.symbols('x y') eq1 = sp.Eq(x + y, 5) eq2 = sp.Eq(x - y, 1) solution = sp.solve([eq1, eq2], (x, y)) solution
{x: 3, y: 2}
Memuat penjelasan...

5. Menyelesaikan Persamaan Diferensial Biasa (`sp.dsolve()`):

t = sp.symbols('t') y = sp.Function('y')(t) equation = sp.Eq(y.diff(t) + y, 0) solution = sp.dsolve(equation, y) solution
Eq(y(t), C1*exp(-t))
Memuat penjelasan...

6. Menyelesaikan Persamaan Diferensial Orde Tinggi (`sp.dsolve()`):

t = sp.symbols('t') y = sp.Function('y')(t) equation = sp.Eq(y.diff(t, t) + y, 0) solution = sp.dsolve(equation, y) solution
Eq(y(t), C1*sin(t) + C2*cos(t))
Memuat penjelasan...

12.6. Manipulasi Matriks

SymPy menyediakan berbagai alat untuk manipulasi matriks, yang mencakup pendefinisian matriks, operasi determinan, operasi invers, dan perkalian matriks.

1. Pendefinisian Matriks 2x2 (`sp.Matrix()`):

A = sp.Matrix([[1, 2], [3, 4]]) A
Matrix([[1, 2], [3, 4]])
Memuat penjelasan...

2. Pendefinisian Matriks Nol 3x3 (`sp.zeros()`):

A = sp.zeros(3) A
Matrix([[0, 0, 0], [0, 0, 0], [0, 0, 0]])
Memuat penjelasan...

3. Pendefinisian Matriks Identitas 3x3 (`sp.eye()`):

A = sp.eye(3) A
Matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
Memuat penjelasan...

4. Menghitung Determinan Matriks (`.det()`):

A = sp.Matrix([[1, 2], [3, 4]]) det_A = A.det() det_A
-2
Memuat penjelasan...

5. Menghitung Invers Matriks (`.inv()`):

A = sp.Matrix([[1, 2], [3, 4]]) inv_A = A.inv() inv_A
Matrix([[-2, 1], [3/2, -1/2]])
Memuat penjelasan...

6. Perkalian Matriks:

A = sp.Matrix([[1, 2], [3, 4]]) B = sp.Matrix([[5, 6], [7, 8]]) mat_mul = A * B mat_mul
Matrix([[19, 22], [43, 50]])
Memuat penjelasan...

7. Transpose Matriks (`.T`):

A = sp.Matrix([[1, 2, 3], [4, 5, 6]]) A_transpose = A.T A_transpose
Matrix([[1, 4], [2, 5], [3, 6]])
Memuat penjelasan...

8. Reshape Matriks (`.reshape()`):

vec = sp.Matrix([1, 2, 3, 4, 5, 6]) reshaped_matrix = vec.reshape(2, 3) reshaped_matrix
Matrix([[1, 2, 3], [4, 5, 6]])
Memuat penjelasan...

12.7. Soal Latihan

Uji pemahaman Anda dengan menyelesaikan soal-soal latihan berikut menggunakan SymPy.

A. Mencari Akar Persamaan

Carilah akar-akar dari persamaan berikut (jika akar-akarnya imajiner atau tidak ada, tuliskan output apa yang muncul di layar):

  • x - 2 = 0
  • x^2 - 3x - 4 = 0
  • x^2 - 6x + 9 = 0
  • x^2 - x - 1 = 0
  • x^3 - 6x^2 + 11x - 6 = 0
  • x^3 - 7x^2 + 15x - 9 = 0
  • x^5 + 7x^4 - 9x^2 + 15x + 2 = 0
  • x^5 + 9x^2 + 2 = 0

Solusi untuk x - 2 = 0:

x = sp.symbols('x') sp.solve(x - 2, x)
[2]
Memuat penjelasan...

Solusi untuk x^2 - 3x - 4 = 0:

x = sp.symbols('x') sp.solve(x**2 - 3*x - 4, x)
[-1, 4]
Memuat penjelasan...

Solusi untuk x^2 - 6x + 9 = 0:

x = sp.symbols('x') sp.solve(x**2 - 6*x + 9, x)
[3]
Memuat penjelasan...

Solusi untuk x^2 - x - 1 = 0:

x = sp.symbols('x') sp.solve(x**2 - x - 1, x)
[1/2 - sqrt(5)/2, 1/2 + sqrt(5)/2]
Memuat penjelasan...

Solusi untuk x^3 - 6x^2 + 11x - 6 = 0:

x = sp.symbols('x') sp.solve(x**3 - 6*x**2 + 11*x - 6, x)
[1, 2, 3]
Memuat penjelasan...

Solusi untuk x^3 - 7x^2 + 15x - 9 = 0:

x = sp.symbols('x') sp.solve(x**3 - 7*x**2 + 15*x - 9, x)
[1, 3]
Memuat penjelasan...

Solusi untuk x^5 + 7x^4 - 9x^2 + 15x + 2 = 0:

x = sp.symbols('x') sp.solve(x**5 + 7*x**4 - 9*x**2 + 15*x + 2, x)
[RootOf(x**5 + 7*x**4 - 9*x**2 + 15*x + 2, 0), RootOf(x**5 + 7*x**4 - 9*x**2 + 15*x + 2, 1), RootOf(x**5 + 7*x**4 - 9*x**2 + 15*x + 2, 2), RootOf(x**5 + 7*x**4 - 9*x**2 + 15*x + 2, 3), RootOf(x**5 + 7*x**4 - 9*x**2 + 15*x + 2, 4)]
Memuat penjelasan...

Solusi untuk x^5 + 9x^2 + 2 = 0:

x = sp.symbols('x') sp.solve(x**5 + 9*x**2 + 2, x)
[RootOf(x**5 + 9*x**2 + 2, 0), RootOf(x**5 + 9*x**2 + 2, 1), RootOf(x**5 + 9*x**2 + 2, 2), RootOf(x**5 + 9*x**2 + 2, 3), RootOf(x**5 + 9*x**2 + 2, 4)]
Memuat penjelasan...

B. Mencari Turunan

Carilah turunan pertama (dy/dx) dari:

  • y = x^3 + 3x^2 + 6x
  • y = x^5 + x^4
  • y = (3x + 5)^3
  • y = (3 - 5x)^5
  • y = sin(7x)
  • y = sin(x^3)
  • y = 1/(x - 1)
  • y = 3x/(1 - x)

Solusi untuk y = x^3 + 3x^2 + 6x:

x = sp.symbols('x') f = x**3 + 3*x**2 + 6*x f.diff(x)
3*x**2 + 6*x + 6
Memuat penjelasan...

Solusi untuk y = x^5 + x^4:

x = sp.symbols('x') f = x**5 + x**4 f.diff(x)
5*x**4 + 4*x**3
Memuat penjelasan...

Solusi untuk y = (3x + 5)^3:

x = sp.symbols('x') f = (3*x + 5)**3 f.diff(x)
9*(3*x + 5)**2
Memuat penjelasan...

Solusi untuk y = (3 - 5x)^5:

x = sp.symbols('x') f = (3 - 5*x)**5 f.diff(x)
-25*(3 - 5*x)**4
Memuat penjelasan...

Solusi untuk y = sin(7x):

x = sp.symbols('x') f = sp.sin(7*x) f.diff(x)
7*cos(7*x)
Memuat penjelasan...

Solusi untuk y = sin(x^3):

x = sp.symbols('x') f = sp.sin(x**3) f.diff(x)
3*x**2*cos(x**3)
Memuat penjelasan...

Solusi untuk y = 1/(x - 1):

x = sp.symbols('x') f = 1/(x - 1) f.diff(x)
-1/(x - 1)**2
Memuat penjelasan...

Solusi untuk y = 3x/(1 - x):

x = sp.symbols('x') f = 3*x/(1 - x) f.diff(x)
3/(1 - x)**2
Memuat penjelasan...

C. Mencari Integral Tentu

Carilah integral tentu (definite integral) dari:

  • Integral dari x^3 dari 0 sampai 2
  • Integral dari x^4 dari -1 sampai 2
  • Integral dari (3x^2 - 2x + 3) dari -1 sampai 2
  • Integral dari (4x^3 + 7) dari 1 sampai 2
  • Integral dari 1/w^2 dari 1 sampai 4
  • Integral dari 2/t^3 dari 1 sampai 3
  • Integral dari akar(t) dari 0 sampai 4
  • Integral dari akar pangkat 3 dari w dari 1 sampai 8
  • Integral dari (y^2 + 1/y^3) dari -4 sampai -2
  • Integral dari (s^4 - 8)/s^2 dari 1 sampai 4
  • Integral dari cos x dari 0 sampai pi/2
  • Integral dari 2 sin t dari pi/6 sampai pi/2
  • Integral dari (2x^4 - 3x^2 + 5) dari 0 sampai 1
  • Integral dari (x^(4/3) - 2x^(1/3)) dari 0 sampai 1

Solusi untuk Integral dari x^3 dari 0 sampai 2:

x = sp.symbols('x') sp.integrate(x**3, (x, 0, 2))
4
Memuat penjelasan...

Solusi untuk Integral dari x^4 dari -1 sampai 2:

x = sp.symbols('x') sp.integrate(x**4, (x, -1, 2))
33/5
Memuat penjelasan...

Solusi untuk Integral dari (3x^2 - 2x + 3) dari -1 sampai 2:

x = sp.symbols('x') sp.integrate(3*x**2 - 2*x + 3, (x, -1, 2))
18
Memuat penjelasan...

Solusi untuk Integral dari (4x^3 + 7) dari 1 sampai 2:

x = sp.symbols('x') sp.integrate(4*x**3 + 7, (x, 1, 2))
23
Memuat penjelasan...

Solusi untuk Integral dari 1/w^2 dari 1 sampai 4:

w = sp.symbols('w') sp.integrate(1/w**2, (w, 1, 4))
3/4
Memuat penjelasan...

Solusi untuk Integral dari 2/t^3 dari 1 sampai 3:

t = sp.symbols('t') sp.integrate(2/t**3, (t, 1, 3))
8/9
Memuat penjelasan...

Solusi untuk Integral dari akar(t) dari 0 sampai 4:

t = sp.symbols('t') sp.integrate(sp.sqrt(t), (t, 0, 4))
16/3
Memuat penjelasan...

Solusi untuk Integral dari akar pangkat 3 dari w dari 1 sampai 8:

w = sp.symbols('w') sp.integrate(w**(sp.Rational(1,3)), (w, 1, 8))
45/4
Memuat penjelasan...

Solusi untuk Integral dari (y^2 + 1/y^3) dari -4 sampai -2:

y = sp.symbols('y') sp.integrate(y**2 + 1/y**3, (y, -4, -2))
56/3 - 3/32
Memuat penjelasan...

Solusi untuk Integral dari (s^4 - 8)/s^2 dari 1 sampai 4:

s = sp.symbols('s') sp.integrate((s**4 - 8)/s**2, (s, 1, 4))
57/2
Memuat penjelasan...

Solusi untuk Integral dari cos x dari 0 sampai pi/2:

x = sp.symbols('x') sp.integrate(sp.cos(x), (x, 0, sp.pi/2))
1
Memuat penjelasan...

Solusi untuk Integral dari 2 sin t dari pi/6 sampai pi/2:

t = sp.symbols('t') sp.integrate(2*sp.sin(t), (t, sp.pi/6, sp.pi/2))
1
Memuat penjelasan...

Solusi untuk Integral dari (2x^4 - 3x^2 + 5) dari 0 sampai 1:

x = sp.symbols('x') sp.integrate(2*x**4 - 3*x**2 + 5, (x, 0, 1))
22/5
Memuat penjelasan...

Solusi untuk Integral dari (x^(4/3) - 2x^(1/3)) dari 0 sampai 1:

x = sp.symbols('x') sp.integrate(x**(sp.Rational(4,3)) - 2*x**(sp.Rational(1,3)), (x, 0, 1))
-19/21
Memuat penjelasan...

D. Mencari Determinan Matriks

Diberikan matriks A sebagai berikut. Dengan menggunakan library Sympy, carilah determinan dari matriks A.

A = sp.Matrix([[1, 0, 0, -1], [3, 1, 2, 2], [1, 0, -2, 1], [2, 0, 0, 1]])

Solusi untuk determinan matriks A:

A = sp.Matrix([[1, 0, 0, -1], [3, 1, 2, 2], [1, 0, -2, 1], [2, 0, 0, 1]]) det_A = A.det() det_A
-8
Memuat penjelasan...