Lewati ke konten
Panduan Varlig
Beranda Varlig

Penjumlahan, persamaan, dan kalkulus

Halaman ini menjelaskan penjumlahan dan perkalian deret suku, pencarian solusi persamaan, penurunan ekspresi secara simbolis maupun pada satu titik, serta perhitungan integral tentu. Gunakan saat soal memerlukan notasi Σ atau Π, persamaan sulit disusun ulang secara manual, atau Anda ingin memeriksa turunan maupun luas di bawah kurva untuk tugas belajar.

Semua fungsi ini mengambil nama variabel sebagai salah satu argumennya, seperti k dalam sum(k^2, k, 1, 10). Nama itu hanya ada di dalam panggilan, jadi itu tidak pernah mengubah nilai nama yang sama di tempat lain di catatan Anda.

Penjumlahan dan perkalian deret berhingga

calc
sum(k, k, 1, 100) menghasilkan 5,050
sum(k^2, k, 1, 10) menghasilkan 385
summation(2*k - 1, k, 1, 10) menghasilkan 100
product(k, k, 1, 5) menghasilkan 120

Argumennya adalah ekspresi, variabel, nilai awal, dan nilai akhir. Kedua batas disertakan, sehingga sum(k, k, 1, 100) menghitung 1 + 2 + … + 100. summation adalah nama lain untuk sum. Baris ketiga menunjukkan bahwa jumlah sepuluh bilangan ganjil pertama adalah 10², sedangkan baris terakhir menghitung 5 faktorial.

Penjumlahan juga mendukung uang dan satuan, sehingga cocok untuk menghitung tabungan berkala:

calc
# £1,200 paid in at the start of each year for 5 years, at 5%
sum(£1200 * 1.05^k, k, 1, 5) menghasilkan £6,962.30

Perkalian deret berguna untuk rangkaian probabilitas. Peluang setidaknya dua orang dalam kelompok berisi 23 orang memiliki tanggal ulang tahun yang sama adalah satu dikurangi peluang bahwa tanggal ulang tahun semua 23 orang berbeda:

calc
p = 1 - product((365 - k)/365, k, 0, 22)
(p as %) to 1 dp menghasilkan 50.7%

Beberapa detail:

  • Nilai pertama dan terakhir harus berupa bilangan bulat.
  • Jika nilai akhir lebih kecil daripada nilai awal, tidak ada suku yang dihitung: hasil penjumlahan adalah 0 dan hasil perkalian adalah 1.
  • Satu penjumlahan atau perkalian deret dibatasi hingga 10.000 suku.
  • Penjumlahan dapat bersarang, seperti sum(sum(j, j, 1, n), n, 1, 4), yang menghasilkan 20. Pemanggilan bersarang berbagi satu batas kerja keseluruhan.
  • Untuk menambahkan nilai yang sudah Anda miliki, gunakan daftar sebagai gantinya: sum([4, 8, 15]) Lihat Daftar dan statistik.

Menyelesaikan persamaan secara eksak

Diberikan persamaan dengan sendirinya, solve membaca koefisien dan mengerjakan jawabannya, seperti yang Anda lakukan di atas kertas:

calc
solve(2x + 6 = 10) menghasilkan 2
solve(x/3 + 1 = 4) menghasilkan 9
solve(5x + 3 = 2x - 9) menghasilkan -4
# Candles sell for 12, cost 4 each to make, on 2,000 of fixed costs
solve(12n = 2000 + 4n) menghasilkan 250

Variabel yang dicari adalah satu-satunya nama dalam persamaan yang belum memiliki nilai. Nama yang sudah Anda definisikan diganti dengan nilainya. Jika ruas kanan tidak ditulis, ekspresi dianggap sama dengan nol.

Persamaan linear menghasilkan satu angka. Persamaan kuadrat menghasilkan daftar akar real yang berbeda, diurutkan dari yang terkecil. Karena itu, akar kembar menghasilkan daftar berisi satu nilai:

calc
solve(x^2 - 5x + 6 = 0) menghasilkan [2, 3]
solve(x^2 = 9) menghasilkan [-3, 3]
solve(x^2 - 6x + 9 = 0) menghasilkan [3]
solve(x^2 - 2 = 0) menghasilkan [-1.4142135624, 1.4142135624]

Bentuk hasil mengikuti jenis persamaan yang Anda tulis, bukan jumlah akar yang ditemukan: persamaan kuadrat selalu menghasilkan daftar.

Persamaan linear dan persamaan kuadrat yang diskriminannya merupakan kuadrat sempurna dihitung dengan pecahan eksak, sehingga solve(x^2 - 5x + 6 = 0) benar-benar menghasilkan 2 dan 3. Jika diskriminannya bukan kuadrat sempurna, kedua akar dihitung sebagai akar kuadrat desimal. Dua nilai pendekatan tidak selalu sama saat dibandingkan, meskipun tampilannya sama: solve(x^2 - 2 = 0) dan sqrt(2) sama-sama menampilkan 1.4142135624, tetapi dianggap berbeda dalam perbandingan.

Persamaan diselesaikan dengan angka biasa. Unit dan uang ditolak daripada dibawa melalui penataan ulang yang tidak akan melestarikannya. Untuk keseluruhan aturan, lihat Apa yang dijamin oleh mesin.

Saat persamaan ditolak

Tidak ada tebakan. Jika persamaan tidak memiliki akar real, Varlig menyatakannya alih-alih mencari akar kompleks. Persamaan berderajat lebih tinggi dari kuadrat ditolak, dengan bentuk numerik ditawarkan sebagai alternatif:

calc
solve(x^2 + 1 = 0) menghasilkan Error: no real solution
solve(x^3 - 1 = 0) menghasilkan Unsupported: solve reads equations of degree 1 and 2; this one has degree 3: write solve(expression,x,lower,upper) to search for one root numerically
solve(sin(x) = 0) menghasilkan Unsupported: solve reads a polynomial in x of degree 1 or 2; write solve(expression,x,lower,upper) to search for one root numerically

Variabel yang dicari juga tidak boleh berada di penyebut atau pangkat. Jika persamaan memuat dua nama yang belum didefinisikan, pesan kesalahan menunjukkan nama yang tidak dapat ditafsirkan:

calc
solve(1/x = 2) menghasilkan Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numerically
solve(2^x = 8) menghasilkan Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numerically
solve(x + y = 10) menghasilkan Unsupported: solve reads one unknown, and y holds no value either; give y a value, or write solve(expression,x,lower,upper) to search for one root numerically

Jika persamaan dipenuhi oleh semua nilai, Varlig juga menyatakannya alih-alih memilih satu nilai:

calc
solve(x - x = 0) menghasilkan Unsupported: every value of x solves this equation, so it has no single answer

Semua penolakan tersebut mengarahkan Anda ke solve dengan empat argumen di bawah, yang mencari satu akar secara numerik tanpa mensyaratkan bentuk ekspresi tertentu. Untuk sistem persamaan linear dengan beberapa variabel, gunakan solve_system dari Vektor dan matriks.

Temukan satu akar numerik

Dengan empat argumen, solve memiliki fungsi berbeda: mencari nilai variabel yang memenuhi persamaan di antara dua batas yang Anda tentukan. Gunakan bentuk ini jika bentuk eksak di atas menolak persamaannya.

calc
solve(x^2 = 2, x, 0, 2) menghasilkan 1.4142135624
solve(x^2 - 4, x, -3, 0) menghasilkan -2
solve(cos(x) = x, x, 0, 1) menghasilkan 0.7390851332
# How long does a stone take to fall 44.1 m?
solve(4.9*t^2 = 44.1, t, 0, 10) menghasilkan 3
# Candles sell for £12, cost £4 each to make, plus £2,000 of fixed costs
solve(12*n = 2000 + 4*n, n, 0, 1000) menghasilkan 250

Argumennya adalah persamaan, variabel, batas bawah, dan batas atas. Anda dapat memasukkan persamaan dengan =, atau hanya ekspresi, yang dianggap oleh solve sebagai expression = 0.

Memilih batas

solve membutuhkan dua sisi persamaan untuk menukar mana yang lebih besar di suatu tempat di antara batas Anda. Dengan kata lain, left - right harus positif pada satu batas dan negatif pada batas lainnya (atau tepat nol pada batas). Kemudian mempersempit jangkauan ke bawah sampai menemukan titik persimpangan.

Ini memiliki beberapa konsekuensi:

  • Jika ada dua akar di antara batas, tandanya mungkin tidak berubah secara keseluruhan. solve(x^2 - 4, x, -3, 3) gagal, karena x^2 - 4 positif di kedua ujungnya. Gunakan batas yang mengelilingi satu akar, seperti 0 dan 3.
  • Akar di mana kurva hanya menyentuh nol, seperti x^2 = 0, tidak dapat ditemukan dengan cara ini, karena tandanya tidak pernah berubah.
  • Ekspresi harus didefinisikan di seluruh rentang. solve(sqrt(x) = 2, x, -1, 10) gagal karena sqrt dari nilai numerik negatif adalah kesalahan. Mulai rentang pada 0 sebagai gantinya.
  • Lompatan melintasi nol, seperti pada 1/x mendekati 0, bukanlah akar, jadi solve memberikan kesalahan di sana daripada jawaban.
  • Batas bawah harus lebih kecil dari batas atas, dan keduanya harus berupa angka biasa.

solve mengembalikan satu akar, tidak pernah daftar semuanya. Ini hanya bekerja dengan angka biasa, jadi tinggalkan unit dari persamaan.

Pembulatan dan penggunaan kembali

Hasilnya merupakan pendekatan numerik yang mendekati nilai sebenarnya, tetapi digit terakhir yang ditampilkan bisa berbeda. Tambahkan to 4 dp (atau jumlah tempat desimal lain) pada baris yang sama untuk membulatkan tampilannya, atau beri nama hasil terlebih dahulu jika ingin menggunakannya kembali:

calc
solve(sqrt(x) = 2, x, 0, 10) menghasilkan 4.0000000001
solve(sqrt(x) = 2, x, 0, 10) to 4 dp menghasilkan 4
side = solve(sqrt(x) = 2, x, 0, 10) menghasilkan 4.0000000001
side * 3 to 2 dp menghasilkan 12

Anda dapat membungkus solve dalam fungsi Anda sendiri untuk menggunakannya kembali dengan nilai yang berbeda:

calc
root(y) = solve(x^2 = y, x, 0, 10)
root(9) menghasilkan 3

Untuk sistem persamaan linear dengan beberapa variabel, gunakan solve_system dari Vektor dan matriks.

Penurunan simbolis

Dengan dua argumen, differentiate (atau derivative ) memberikan turunan sebagai rumus:

calc
differentiate(sin(x), x) menghasilkan cos(x)
derivative(x^3, x) menghasilkan (3*(x^(3-1)))
derivative(x * sin(x), x) menghasilkan (sin(x)+(x*cos(x)))
derivative(exp(2*x), x) menghasilkan (exp((2*x))*2)

Hasilnya tidak disederhanakan, dan setiap langkah dikurung: (3*(x^(3-1))) adalah 3x². Desimal dalam ekspresi Anda kembali sebagai pecahan, jadi 19.6 muncul sebagai (98/5).

Hasilnya adalah teks, bukan sesuatu yang dapat dihitung oleh Varlig. Untuk menggunakannya, ketik rumus ke dalam fungsi Anda sendiri:

calc
slope(x) = 3*x^2
slope(2) menghasilkan 12

Apa yang ditangani oleh diferensiasi simbolis:

  • +, -, *, /, dan pangkat, dengan aturan penjumlahan, perkalian, pembagian, pangkat, serta aturan rantai
  • Fungsi sin, cos, tan, sinh, cosh, exp, ln dan sqrt
  • Nama-nama lain, yang diperlakukan sebagai konstanta dan tetap sebagai nama dalam hasilnya

Nama variabel tidak harus memiliki nilai di dalam catatan, sehingga Anda dapat menurunkan rumus yang memuat simbol:

calc
derivative(a*x^2, x) menghasilkan (a*(2*(x^(2-1))))

Fungsi lain, seperti abs, log, atau fungsi buatan Anda, menghasilkan kesalahan. Untuk fungsi tersebut, gunakan bentuk numerik di bawah. Rumus hasil juga tidak menyertakan pembatasan dari ekspresi asli: turunan sqrt(x) hanya berlaku pada domain yang mengizinkan sqrt(x), meskipun (1/(2*sqrt(x))) tampak sebagai rumus tersendiri.

Penurunan numerik

Dengan argumen ketiga, derivative memberikan kemiringan pada titik itu sebagai nilai numerik:

calc
derivative(x^3, x, 2) menghasilkan 12
differentiate(sin(x), x, 0) menghasilkan 1
derivative(sqrt(x), x, 4) menghasilkan 0.25
height(t) = 20*t - 4.9*t^2
derivative(height(t), t, 1) menghasilkan 10.2

Bentuk ini berfungsi dengan fungsi yang telah Anda definisikan dalam catatan, seperti height di atas, yang tidak dapat digunakan dalam bentuk simbolis. Karena itu menghasilkan nilai numerik, setiap nama lain dalam ekspresi membutuhkan nilai. Hal yang sama berlaku untuk sum, product, solve dan integrate :

calc
derivative(a*x^2, x, 2) menghasilkan Unsupported: Unknown name: a
a = 3
derivative(a*x^2, x, 2) menghasilkan 12

Hasilnya diperkirakan dari nilai-nilai di dekat titik tersebut pada kedua sisinya. Jika kemiringan sebenarnya merupakan angka sederhana, Varlig menyimpan angka itu sehingga perbandingan kesamaan eksak dapat digunakan. Kemiringan irasional, seperti kemiringan exp(x), tetap menyimpan seluruh digit hasil perhitungan; bandingkan dengan menggunakan toleransi:

calc
derivative(x^3, x, 2) == 12 menghasilkan true
abs(derivative(exp(x), x, 1) - e) < 1e-6 menghasilkan true

Ekspresi harus halus, tanpa sudut atau celah, di area sekitar titik. derivative(abs(x), x, 0) adalah kesalahan karena abs memiliki sudut pada nol, dan derivative(sqrt(x), x, 0) adalah kesalahan karena sqrt tidak didefinisikan di sebelah kiri nol.

Integral tentu

calc
integrate(x^2, x, 0, 3) menghasilkan 9
integrate(sin(x), x, 0, pi) menghasilkan 2
integrate(x^2, x, 3, 0) menghasilkan -9
integrate(4/(1 + x^2), x, 0, 1) menghasilkan 3.1415926536
# Distance fallen in 3 s: integrate the speed, 9.8t m/s
integrate(9.8*t, t, 0, 3) menghasilkan 44.1

Argumennya adalah ekspresi, variabel, batas bawah, dan batas atas, sama seperti urutan pada sum. Hasilnya adalah luas bertanda di bawah kurva antara kedua batas. Menukar batas membalik tanda hasil, sedangkan batas yang sama menghasilkan nol. Anda juga dapat mengintegralkan fungsi yang didefinisikan dalam catatan, misalnya integrate(power(t), t, 0, 4).

integrate menghitung secara numerik, sehingga memiliki beberapa keterbatasan:

  • Integral tak tentu tidak didukung: hasil selalu berupa angka, bukan rumus.
  • Kedua batas tersebut harus berupa bilangan yang terbatas; tidak ada cara untuk mengintegrasikan hingga tak terhingga.
  • Ekspresi harus didefinisikan di seluruh rentang. integrate(1/sqrt(x), x, 0, 1) adalah kesalahan, karena 1/sqrt(0) dibagi nol, meskipun area itu sendiri terbatas.
  • Ekspresi dengan lompatan, lonjakan tajam, atau osilasi sangat cepat dapat menghasilkan jawaban yang tidak akurat atau kesalahan.
  • Unit tidak diterima, jadi tinggalkan di komentar, seperti pada contoh terakhir.

Algoritma dan konvergensi

Detail ini tidak diperlukan untuk penggunaan sehari-hari, tetapi membantu saat hasil tampak keliru atau suatu baris menghasilkan kesalahan.

solve menggunakan metode bagi dua: rentang terus dibagi menjadi dua, lalu bagian yang mengalami perubahan tanda dipertahankan. Proses berhenti ketika selisih left - right terhadap nol tidak melebihi 10⁻¹⁰ dan rentangnya cukup sempit. Jika belum berhasil setelah 128 pembagian, fungsi menghasilkan kesalahan.

derivative simbolis menerapkan aturan standar langkah demi langkah tanpa penyederhanaan. Panjang hasil dibatasi hingga 8.192 karakter. Ini bukan sistem aljabar komputer yang lengkap.

derivative numerik membandingkan beda pusat dengan ukuran langkah yang makin kecil, lalu memeriksa kemiringan dari masing-masing sisi secara terpisah. Jika hasilnya tidak cocok, atau nilai di dekat titik tersebut tidak terdefinisi, fungsi menghasilkan kesalahan alih-alih menebak.

integrate menggunakan aturan Gauss–Kronrod adaptif dengan 7 dan 15 titik. Dua estimasi pada setiap bagian rentang dibandingkan, lalu bagian dengan estimasi galat terbesar dibagi lagi sampai total estimasi galat berada di bawah 10⁻⁹ × max(1, |answer|). Batasnya adalah 2.048 pembagian, 20 tingkat pembagian, dan jatah bersama 100.000 langkah. Titik sampel tidak berjarak seragam, sehingga osilasi cepat seperti cos(128*pi*x) dari 0 hingga 1 diintegralkan dengan benar menjadi sekitar nol, bukan keliru dianggap konstan. Estimasi galat tetap bersifat heuristik, jadi hasil untuk ekspresi dengan singularitas atau diskontinuitas perlu ditafsirkan dengan hati-hati.

Aturan lengkap tersedia dalam referensi matematika lanjutan.

Menggabungkan semuanya

Berikut adalah pemeriksaan pada masalah pekerjaan rumah fisika: sebuah bola dilemparkan lurus ke atas pada 19,6 m/s, mengambil gravitasi sebagai 9,8 m/s²:

calc
# Height in metres after t seconds
height(t) = 19.6*t - 4.9*t^2
velocity(t) = 19.6 - 9.8*t
# Lands when the height is back to zero (skip t = 0)
landing = solve(height(t) = 0, t, 1, 10) menghasilkan 4
# Speed after 1 second, from the slope of the height
derivative(height(t), t, 1) menghasilkan 9.8
# Highest point, where the velocity is zero
peak = solve(velocity(t) = 0, t, 0, landing) menghasilkan 2
height(peak) menghasilkan 19.6
# Check: integrating the velocity up to the peak gives the same height
integrate(velocity(t), t, 0, peak) menghasilkan 19.6

Bola mendarat setelah 4 detik dan mencapai 19,6 m dalam 2 detik. Batas bawah 1 di garis landing menjauhkan solve dari akar lainnya pada t = 0. Baris terakhir mengkonfirmasi ketinggian dengan cara kedua, dengan mengintegrasikan kecepatan.