İçeriğe atla
Varlig Kılavuzu
Varlig ana sayfası

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

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

Argü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:

calc
# £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:

calc
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, 20 olan sum(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:

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

Bilinmeyen, 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:

calc
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:

calc
solve(x^2 + 1 = 0) sonucu Error: no real solution
solve(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 numerically
solve(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 numerically

Bilinmeyen, paydada veya üste de bulunamaz. Denklemde iki tanımsız ad varsa hangisinin yorumlanamadığı belirtilir:

calc
solve(1/x = 2) sonucu Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numerically
solve(2^x = 8) sonucu Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numerically
solve(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 numerically

Her değerin karşıladığı bir denklem, bir tane seçmek yerine bunu da söylüyor:

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

Bu 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.

calc
solve(x^2 = 2, x, 0, 2) sonucu 1.4142135624
solve(x^2 - 4, x, -3, 0) sonucu -2
solve(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 costs
solve(12*n = 2000 + 4*n, n, 0, 1000) sonucu 250

Argü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 - 4 her iki uçta da pozitiftir. 0 ve 3 gibi bir kökü çevreleyen sınırları kullanın.
  • x^2 = 0 gibi 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ın sqrt ile karekökünü almak hata oluşturur. Bunun yerine aralığı 0 değerinden başlatın.
  • 0 yakınındaki 1/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 nedenle solve burada 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:

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

Farklı değerlerle yeniden kullanmak için solvei kendi işlevinize sarabilirsiniz:

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

Birkaç 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:

calc
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:

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

Sembolik 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, ln ve sqrt iş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:

calc
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:

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

Bu 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:

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

Cevap, 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:

calc
derivative(x^3, x, 2) == 12 sonucu true
abs(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

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

Argü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:

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) sonucu 4
# Speed after 1 second, from the slope of the height
derivative(height(t), t, 1) sonucu 9.8
# Highest point, where the velocity is zero
peak = solve(velocity(t) = 0, t, 0, landing) sonucu 2
height(peak) sonucu 19.6
# Check: integrating the velocity up to the peak gives the same height
integrate(velocity(t), t, 0, peak) sonucu 19.6

Top 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.