Toplamlar, denklem çözme ve kalkülüs
Bu sayfa; bir dizi terimi toplamayı veya çarpmayı, bir denklemi sağlayan değerleri bulmayı, bir ifadenin türevini formül olarak veya tek bir noktada hesaplamayı ve belirli integralleri ele alır. Σ veya Π gösterimi gereken problemlerde, denklemi elle kolayca düzenleyemediğinizde ya da dersinizdeki bir türevi veya eğri altında kalan alanı kontrol etmek istediğinizde bu araçları kullanabilirsiniz.
Tüm bu fonksiyonlar, sum(k^2, k, 1, 10) içindeki k gibi argümanlarından biri olarak bir değişken adı alır. Bu isim yalnızca çağrının içinde bulunur, bu nedenle notunuzun başka bir yerinde aynı ismin değerini asla değiştirmez.
Sonlu toplamlar ve çarpımlar
sum(k, k, 1, 100) sonucu 5,050sum(k^2, k, 1, 10) sonucu 385summation(2*k - 1, k, 1, 10) sonucu 100product(k, k, 1, 5) sonucu 120Argümanlar ifade, değişken, ilk değer ve son değerdir. Her iki uç da dahildir, bu nedenle sum(k, k, 1, 100) 1 + 2 + ... + 100 ekler. summation, sum için başka bir isimdir. Üçüncü satır, ilk on tek sayının toplamının 10² olduğunu ve sonuncusunun 5 faktöriyel olduğunu gösterir.
Toplamlar, para ve ölçü birimleriyle de çalışır; düzenli tasarruf hesapları için kullanışlıdır:
# £1,200 paid in at the start of each year for 5 years, at 5%sum(£1200 * 1.05^k, k, 1, 5) sonucu £6,962.30Çarpım, art arda gelen olasılıkları hesaplamak için kullanışlıdır. 23 kişilik bir grupta en az iki kişinin doğum gününün aynı olması olasılığı, 1'den 23 doğum gününün de farklı olması olasılığının çıkarılmasıyla bulunur:
p = 1 - product((365 - k)/365, k, 0, 22)(p as %) to 1 dp sonucu 50.7%Bazı ayrıntılar:
- İlk ve son değerler tam sayılar olmalıdır.
- Son değer ilkin altındaysa, terimler yoktur: toplam 0 ve çarpım 1'dir.
- Tek bir toplam veya çarpım en fazla 10.000 terim içerebilir.
- Toplamlar,
20olansum(sum(j, j, 1, n), n, 1, 4)'de olduğu gibi iç içe olabilir. İç içe çağrılar bir genel çalışma sınırını paylaşır. - Zaten sahip olduğunuz değerleri toplamak için bunun yerine bir liste kullanın:
sum([4, 8, 15]). Listeler ve istatistikler bölümüne bakın.
Bir denklemi tam olarak çözme
Kendi başına bir denklem verildiğinde, solve katsayıları okur ve cevabı kağıt üzerinde yaptığınız gibi çözer:
solve(2x + 6 = 10) sonucu 2solve(x/3 + 1 = 4) sonucu 9solve(5x + 3 = 2x - 9) sonucu -4# Candles sell for 12, cost 4 each to make, on 2,000 of fixed costssolve(12n = 2000 + 4n) sonucu 250Bilinmeyen, denklemde değeri henüz tanımlanmamış olan tek addır. Önceden tanımladığınız adlar kendi değerleriyle değerlendirilir. Sağ tarafı yazmazsanız ifade sıfıra eşit kabul edilir.
Birinci dereceden denklem, sonuç olarak tek bir sayı verir. İkinci dereceden denklem ise farklı gerçek köklerini küçükten büyüğe bir liste olarak verir. Çift katlı kök varsa listede tek eleman bulunur:
solve(x^2 - 5x + 6 = 0) sonucu [2, 3]solve(x^2 = 9) sonucu [-3, 3]solve(x^2 - 6x + 9 = 0) sonucu [3]solve(x^2 - 2 = 0) sonucu [-1.4142135624, 1.4142135624]Cevabın şekli, ortaya çıkan kökleri değil, yazdığınız denklemi takip eder: ikinci dereceden her zaman bir liste ile cevap verir.
Doğrusal denklemler ve diskriminantı tam kare olan ikinci dereceden denklemler, kesirlerle tam olarak çözülür. Bu nedenle solve(x^2 - 5x + 6 = 0) tam olarak 2 ve 3 köklerini verir. Diskriminant tam kare değilse kökler ondalık karekök hesaplamalarıyla bulunur. İki yaklaşık değer ekranda aynı görünse de tam olarak eşit olmayabilir: solve(x^2 - 2 = 0) ve sqrt(2), 1.4142135624 değerini gösterdikleri halde karşılaştırmada farklı kabul edilir.
Denklemler düz sayılar üzerinde çözülür. Birimler ve para, onları korumayacak bir yeniden düzenlemeden geçmek yerine reddedilir. Tüm kural için bkz. Motor ne garanti eder.
Çözüm verilemediğinde
Tahmin yapılmaz. Gerçek kökü olmayan denklem için karmaşık kök üretilmez; gerçek kök olmadığı bildirilir. İkinci dereceden yüksek denklemler de reddedilir ve alternatif olarak sayısal çözüm biçimi önerilir:
solve(x^2 + 1 = 0) sonucu Error: no real solutionsolve(x^3 - 1 = 0) sonucu 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) sonucu Unsupported: solve reads a polynomial in x of degree 1 or 2; write solve(expression,x,lower,upper) to search for one root numericallyBilinmeyen, paydada veya üste de bulunamaz. Denklemde iki tanımsız ad varsa hangisinin yorumlanamadığı belirtilir:
solve(1/x = 2) sonucu Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numericallysolve(2^x = 8) sonucu Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numericallysolve(x + y = 10) sonucu 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 numericallyHer değerin karşıladığı bir denklem, bir tane seçmek yerine bunu da söylüyor:
solve(x - x = 0) sonucu Unsupported: every value of x solves this equation, so it has no single answerBu reddetmelerin her biri, bir kökü sayısal olarak arayan ve ifadenin hangi şekil olduğunu umursamayan aşağıdaki dört argümanlı solvee işaret ediyor. Birkaç bilinmeyende birkaç doğrusal denklem için, Vektörler ve matrisler'den solve_system kullanın.
Sayısal bir kök bulma
Dört argümanla kullanıldığında solve farklı çalışır: verdiğiniz iki sınır arasında, denklemi sağlayan bir değişken değeri arar. Yukarıdaki tam çözüm biçimi bir denklemi kabul etmediğinde bunu kullanın.
solve(x^2 = 2, x, 0, 2) sonucu 1.4142135624solve(x^2 - 4, x, -3, 0) sonucu -2solve(cos(x) = x, x, 0, 1) sonucu 0.7390851332# How long does a stone take to fall 44.1 m?solve(4.9*t^2 = 44.1, t, 0, 10) sonucu 3# Candles sell for £12, cost £4 each to make, plus £2,000 of fixed costssolve(12*n = 2000 + 4*n, n, 0, 1000) sonucu 250Argümanlar denklem, değişken, alt sınır ve üst sınırdır. = ile bir denklem veya kendi başına bir ifade verebilirsiniz; solve bunu expression = 0 olarak kabul eder.
Sınırları seçme
solve fonksiyonunun denklemin iki tarafının sınırlarınız arasında hangisinin daha büyük olduğunu değiştirmesi gerekir. Başka bir deyişle, left - right bir sınırda pozitif, diğerinde negatif olmalıdır (veya bir sınırda tam olarak sıfır olmalıdır). Ardından kesişim noktasını bulana kadar aralığı daraltır.
Bunun birkaç sonucu var:
- Sınırlar arasında iki kök varsa, işaret genel olarak değişmeyebilir.
solve(x^2 - 4, x, -3, 3)başarısız olur, çünküx^2 - 4her iki uçta da pozitiftir.0ve3gibi bir kökü çevreleyen sınırları kullanın. x^2 = 0gibi eğrinin yalnızca sıfıra dokunduğu bir kök bu şekilde bulunamaz, çünkü işaret asla değişmez.- İfade tüm aralıkta tanımlı olmalıdır.
solve(sqrt(x) = 2, x, -1, 10)hata verir; çünkü negatif bir sayınınsqrtile karekökünü almak hata oluşturur. Bunun yerine aralığı0değerinden başlatın. 0yakınındaki1/xörneğinde olduğu gibi, sıfırın bir yanından diğerine süreksiz bir sıçrama kök değildir. Bu nedenlesolveburada sonuç yerine hata verir.- Alt sınır üst sınırdan daha küçük olmalı ve her ikisi de düz sayılar olmalıdır.
solve tek bir kök döndürür, asla hepsinin bir listesini döndürmez. Sadece düz sayılarla çalışır, bu nedenle birimleri denklemin dışında bırakın.
Yuvarlama ve yeniden kullanma
Sonuç, gerçek değere yakın sayısal bir yaklaşımdır; görüntülenen son basamakta hata olabilir. Düzenli bir gösterim için aynı satıra to 4 dp (veya istediğiniz basamak sayısını) ekleyin. Sonucu yeniden kullanacaksanız önce ona bir ad verin:
solve(sqrt(x) = 2, x, 0, 10) sonucu 4.0000000001solve(sqrt(x) = 2, x, 0, 10) to 4 dp sonucu 4side = solve(sqrt(x) = 2, x, 0, 10) sonucu 4.0000000001side * 3 to 2 dp sonucu 12Farklı değerlerle yeniden kullanmak için solvei kendi işlevinize sarabilirsiniz:
root(y) = solve(x^2 = y, x, 0, 10)root(9) sonucu 3Birkaç bilinmeyende birkaç doğrusal denklem için, Vektörler ve matrisler'den solve_system kullanın.
Sembolik türev
İki argümanla, differentiate (veya derivative) türevi bir formül olarak verir:
differentiate(sin(x), x) sonucu cos(x)derivative(x^3, x) sonucu (3*(x^(3-1)))derivative(x * sin(x), x) sonucu (sin(x)+(x*cos(x)))derivative(exp(2*x), x) sonucu (exp((2*x))*2)Sonuç basitleştirilmemiştir ve her adım parantez içindedir: (3*(x^(3-1))) 3x²'dir. İfadenizdeki ondalık sayılar kesirler olarak geri gelir, bu nedenle 19.6 (98/5) olarak görünür.
Sonuç metin, Varlig'in hesaplayabileceği bir şey değil. Kullanmak için formülü kendi işlevinize yazın:
slope(x) = 3*x^2slope(2) sonucu 12Sembolik türev almanın desteklediği işlemler:
- toplam, çarpım, bölüm, kuvvet ve zincir kurallarıyla
+,-,*,/ve üs alma sin,cos,tan,sinh,cosh,exp,lnvesqrtişlevleri- Sabit olarak kabul edilen ve sonuçta isim olarak kalan diğer isimler
Bir adın notta tanımlanmış bir değeri olması gerekmez. Bu nedenle semboller içeren bir formülün türevini alabilirsiniz:
derivative(a*x^2, x) sonucu (a*(2*(x^(2-1))))abs, log veya kendiniz tanımladığınız fonksiyonlar gibi diğer fonksiyonlar hata verir. Bunlar için aşağıdaki sayısal biçimi kullanın. Üretilen formül, başlangıçtaki ifadenin tanım kümesi kısıtlarını ayrıca belirtmez. sqrt(x) ifadesinin türevi, (1/(2*sqrt(x))) bağımsız bir formül gibi görünse de yalnızca asıl sqrt(x) ifadesinin geçerli olduğu yerlerde kullanılmalıdır.
Sayısal türev
Üçüncü bir argümanla, derivative o noktadaki eğimi sayısal bir değer olarak verir:
derivative(x^3, x, 2) sonucu 12differentiate(sin(x), x, 0) sonucu 1derivative(sqrt(x), x, 4) sonucu 0.25height(t) = 20*t - 4.9*t^2derivative(height(t), t, 1) sonucu 10.2Bu form, sembolik formun yapamayacağı yukarıdaki height gibi notta tanımladığınız işlevlerle çalışır. Sayısal bir değer olduğu için, ifadedeki diğer her ismin bir değere ihtiyacı vardır. Aynısı sum, product, solve ve integrate için de geçerlidir:
derivative(a*x^2, x, 2) sonucu Unsupported: Unknown name: aa = 3derivative(a*x^2, x, 2) sonucu 12Cevap, noktanın her iki tarafındaki yakın değerlerden bir tahmindir. Gerçek eğim düzenli bir sayı olduğunda, Varlig bu sayıyı saklar, bu yüzden tam olarak karşılaştırmak işe yarar. exp(x) eğimi gibi irrasyonel eğimler, tüm rakamlarını tutar, bu nedenle bunları bir tolerans dahilinde karşılaştırın:
derivative(x^3, x, 2) == 12 sonucu trueabs(derivative(exp(x), x, 1) - e) < 1e-6 sonucu trueİfadenin noktanın etrafındaki alanda köşeler veya boşluklar olmadan pürüzsüz olması gerekir. derivative(abs(x), x, 0) bir hatadır çünkü abs sıfırda bir köşeye sahiptir ve derivative(sqrt(x), x, 0) bir hatadır çünkü sqrt sıfırın solunda tanımlanmamıştır.
Belirli integral
integrate(x^2, x, 0, 3) sonucu 9integrate(sin(x), x, 0, pi) sonucu 2integrate(x^2, x, 3, 0) sonucu -9integrate(4/(1 + x^2), x, 0, 1) sonucu 3.1415926536# Distance fallen in 3 s: integrate the speed, 9.8t m/sintegrate(9.8*t, t, 0, 3) sonucu 44.1Argümanlar, sum ile aynı sırada ifade, değişken, alt sınır ve üst sınırdır. Sonuç, sınırlar arasında eğrinin altında kalan işaretli alandır. Sınırların yerini değiştirmek işareti tersine çevirir; eşit sınırlar sıfır verir. Notunuzda tanımlı fonksiyonların integralini de alabilirsiniz; örneğin integrate(power(t), t, 0, 4).
integrate sayısal olarak çalışır, bu nedenle birkaç şey ulaşılamaz:
- Belirsiz integral hesaplanmaz: sonuç her zaman bir sayıdır, formül değildir.
- Her iki sınır da sonlu sayı olmalıdır; sonsuza uzanan integral hesaplanamaz.
- İfade tüm aralık boyunca tanımlanmalıdır.
integrate(1/sqrt(x), x, 0, 1)bir hatadır, çünkü1/sqrt(0), alanın kendisi sonlu olsa bile sıfıra bölünür. - Sıçrama, sivri tepe veya çok hızlı salınım içeren ifadeler, hatalı sonuçlara ya da hata mesajına yol açabilir.
- Birimler kabul edilmez, bu nedenle son örnekte olduğu gibi bunları bir yorumda bırakın.
Algoritmalar ve yakınsama
Günlük kullanımda bu ayrıntılara ihtiyacınız yoktur. Ancak sonuç yanlış görünüyorsa veya bir satır hata veriyorsa yararlı olabilirler.
solve ikiye bölme yöntemini kullanır: aralığı tekrar tekrar yarıya böler ve işaret değiştiği noktadaki yarıyı korur. left - right değerinin sıfıra 10⁻¹⁰ içinde olduğu ve aralığın yeterince dar olduğu durumda durur ve 128 yarılamadan sonra hata ile pes eder.
Sembolik derivative, basitleştirmeden standart kuralları adım adım uygular. Sonuç en fazla 8.192 karakter uzunluğunda olabilir. Bu, tam bir bilgisayar cebir sistemi değildir.
Sayısal derivative, daralan adımlar boyunca merkezi farkları karşılaştırır ve eğimi her iki taraftan ayrı ayrı kontrol eder. Eğer bunlar uyuşmazsa veya noktaya yakın bir değer tanımsızsa, bir tahmin yerine bir hata elde edersiniz.
integrate, uyarlamalı 7 ve 15 noktalı Gauss–Kronrod kurallarını kullanır. Aralığın her parçasında iki tahmini karşılaştırır ve tahmini hatası en büyük parçayı böler. Toplam tahmini hata 10⁻⁹ × max(1, |sonuç|) değerinin altına inene kadar devam eder. En fazla 2.048 bölmeye, 20 bölme düzeyine ve ortak 100.000 adımlık işlem sınırına izin verilir. Örnekleme noktaları eşit aralıklı değildir. Bu nedenle 0 ile 1 arasında cos(128*pi*x) gibi hızlı bir salınım, sabit sanılmak yerine doğru biçimde yaklaşık sıfır integral verir. Hata tahmini yine de sezgisel bir yöntemdir; tekillik veya süreksizlik içeren ifadelerin sonuçlarını dikkatle değerlendirin.
Kuralların tamamı ileri matematik referansı'dedir.
Hepsini bir araya getirme
Bir fizik ödevini kontrol edelim: başlangıç hızı 19,6 m/s olacak şekilde dikey olarak yukarı atılan bir top ve 9,8 m/s² yerçekimi ivmesi:
# 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) sonucu 4# Speed after 1 second, from the slope of the heightderivative(height(t), t, 1) sonucu 9.8# Highest point, where the velocity is zeropeak = solve(velocity(t) = 0, t, 0, landing) sonucu 2height(peak) sonucu 19.6# Check: integrating the velocity up to the peak gives the same heightintegrate(velocity(t), t, 0, peak) sonucu 19.6Top 4 saniye sonra yere iner ve 2. saniyede 19,6 m yüksekliğe ulaşır. landing satırındaki alt sınırın 1 olması, solve fonksiyonunun t = 0 kökünü seçmesini önler. Son satır, hızın integralini alarak yüksekliği ikinci bir yoldan doğrular.