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
sum(k, k, 1, 100) menghasilkan 5,050sum(k^2, k, 1, 10) menghasilkan 385summation(2*k - 1, k, 1, 10) menghasilkan 100product(k, k, 1, 5) menghasilkan 120Argumennya 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:
# £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.30Perkalian 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:
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 menghasilkan20. 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:
solve(2x + 6 = 10) menghasilkan 2solve(x/3 + 1 = 4) menghasilkan 9solve(5x + 3 = 2x - 9) menghasilkan -4# Candles sell for 12, cost 4 each to make, on 2,000 of fixed costssolve(12n = 2000 + 4n) menghasilkan 250Variabel 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:
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:
solve(x^2 + 1 = 0) menghasilkan Error: no real solutionsolve(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 numericallysolve(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 numericallyVariabel 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:
solve(1/x = 2) menghasilkan Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numericallysolve(2^x = 8) menghasilkan Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numericallysolve(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 numericallyJika persamaan dipenuhi oleh semua nilai, Varlig juga menyatakannya alih-alih memilih satu nilai:
solve(x - x = 0) menghasilkan Unsupported: every value of x solves this equation, so it has no single answerSemua 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.
solve(x^2 = 2, x, 0, 2) menghasilkan 1.4142135624solve(x^2 - 4, x, -3, 0) menghasilkan -2solve(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 costssolve(12*n = 2000 + 4*n, n, 0, 1000) menghasilkan 250Argumennya 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, karenax^2 - 4positif di kedua ujungnya. Gunakan batas yang mengelilingi satu akar, seperti0dan3. - 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 karenasqrtdari nilai numerik negatif adalah kesalahan. Mulai rentang pada0sebagai gantinya. - Lompatan melintasi nol, seperti pada
1/xmendekati0, bukanlah akar, jadisolvememberikan 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:
solve(sqrt(x) = 2, x, 0, 10) menghasilkan 4.0000000001solve(sqrt(x) = 2, x, 0, 10) to 4 dp menghasilkan 4side = solve(sqrt(x) = 2, x, 0, 10) menghasilkan 4.0000000001side * 3 to 2 dp menghasilkan 12Anda dapat membungkus solve dalam fungsi Anda sendiri untuk menggunakannya kembali dengan nilai yang berbeda:
root(y) = solve(x^2 = y, x, 0, 10)root(9) menghasilkan 3Untuk 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:
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:
slope(x) = 3*x^2slope(2) menghasilkan 12Apa yang ditangani oleh diferensiasi simbolis:
+,-,*,/, dan pangkat, dengan aturan penjumlahan, perkalian, pembagian, pangkat, serta aturan rantai- Fungsi
sin,cos,tan,sinh,cosh,exp,lndansqrt - 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:
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:
derivative(x^3, x, 2) menghasilkan 12differentiate(sin(x), x, 0) menghasilkan 1derivative(sqrt(x), x, 4) menghasilkan 0.25height(t) = 20*t - 4.9*t^2derivative(height(t), t, 1) menghasilkan 10.2Bentuk 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 :
derivative(a*x^2, x, 2) menghasilkan Unsupported: Unknown name: aa = 3derivative(a*x^2, x, 2) menghasilkan 12Hasilnya 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:
derivative(x^3, x, 2) == 12 menghasilkan trueabs(derivative(exp(x), x, 1) - e) < 1e-6 menghasilkan trueEkspresi 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
integrate(x^2, x, 0, 3) menghasilkan 9integrate(sin(x), x, 0, pi) menghasilkan 2integrate(x^2, x, 3, 0) menghasilkan -9integrate(4/(1 + x^2), x, 0, 1) menghasilkan 3.1415926536# Distance fallen in 3 s: integrate the speed, 9.8t m/sintegrate(9.8*t, t, 0, 3) menghasilkan 44.1Argumennya 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, karena1/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²:
# Height in metres after t secondsheight(t) = 19.6*t - 4.9*t^2velocity(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 heightderivative(height(t), t, 1) menghasilkan 9.8# Highest point, where the velocity is zeropeak = solve(velocity(t) = 0, t, 0, landing) menghasilkan 2height(peak) menghasilkan 19.6# Check: integrating the velocity up to the peak gives the same heightintegrate(velocity(t), t, 0, peak) menghasilkan 19.6Bola 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.