0% found this document useful (0 votes)
61 views97 pages

Maple

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views97 pages

Maple

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

See discussions, stats, and author profiles for this publication at: [Link]

net/publication/290394433

Bir Bilgisayar Cebiri Sistemi ile Çeşitli Yüksek Matematik Kavramları

Book · January 2008

CITATIONS READS

0 4,608

1 author:

Tolga Kabaca
Pamukkale University
42 PUBLICATIONS 189 CITATIONS

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Matematik Eğitiminde Teoriler View project

Pre-Service Lower Secondary School Mathematics Teachers’ Ability of Drawing the Symmetry of a Figure according to a Line View project

All content following this page was uploaded by Tolga Kabaca on 13 January 2016.

The user has requested enhancement of the downloaded file.


2.2.2 Karmaşık Sayı Dizileri............................................................63
İÇİNDEKİLER 2.3 FONKSİYON SERİLERİNİN İNCELENMESİ.................................69
2.4 KUTUPSAL KOORDİNATLARI ANLAYALIM ................................78
2.5 DİFERANSİYEL NE ANLAMA GELİR? .........................................89
İÇİNDEKİLER..............................................................................................I 2.6 BİR YÜZEY NASIL OLUŞUR? ......................................................95
ÖNSÖZ .....................................................................................................III 2.7 YÜZEY DENKLEMLERİNİ KULLANARAK BİR HACİM HESABI. 108
KİTAPTAN YARARLANIRKEN DİKKAT EDİLMESİ GEREKEN TEMEL 2.8 BİR UZAY EĞRİSİNE BİR NOKTADA ÇİZİLEN NORMAL,
HUSUSLAR............................................................................................... V BİNORMAL VE TEĞET VEKTÖRLERİ ............................................. 113
BÖLÜM – 1 ................................................................................................1 BÖLÜM – 3 ............................................................................................ 117
MAPLE ÖĞRENİYORUZ ...........................................................................2 3.1 KRİTİK NOKTA HESABI.............................................................. 118
1.1 MAPLE ARAYÜZÜ ..........................................................................2 3.2 DÖNEL CİSMİN HACMİNİ HESAPLAMA–1................................ 121
1.2 MAPLE VE MATEMATİK.................................................................4 3.3 DÖNEL CİSMİN HACMİNİ HESAPLAMA–2................................ 122
1.2.1 Komut Satırını Çalıştırmak.......................................................5 3.4 KÜRENİN HACİM FORMÜLÜNÜ BULMA................................... 124
1.2.2 Maple Komutları.......................................................................5 3.5 HELİS DENKLEMİNİ BULMA VE GRAFİĞİNİ ÇİZME................. 124
1.2.3 Özel Maple Komutları ..............................................................6 3.6 METAL PLAKA ÜZERİNDEKİ SICAKLIK .................................... 128
1.2.4 Matematik Sabitleri ve Bazı Bilinen Fonksiyonlar ....................7 3.7 BİR KUM YIĞINININ HACMİ ....................................................... 132
1.2.5 Maple’da Atama Yapma ve Fonksiyon Tanımlama..................9 3.8 ÜÇ KATLI İNTEGRAL İLE HACİM............................................... 134
1.2.6 Tanımlanan İfadede Değişken Yerine Bir Değer Yazma........10 3.9 BİR VEKTÖRÜN UZUNLUĞU VE TÜREVİ ................................. 137
1.2.7 Maple’da Matematiksel Fonksiyonlar Tanımlamak ................10 3.10 TARLADA OTLAYAN BİR EŞEK...............................................139
1.2.8 Grafik çizme...........................................................................11 BÖLÜM – 4 ............................................................................................ 142
1.3 MAPLE’IN YARDIM MENÜSÜNÜ KULLANMAK...........................13 MAPLE İLE PROGRAMLAMA ÖĞRENİYORUM.................................. 141
1.4 MAPLE BİLGİMİZİ GELİŞTİRİYORUZ ..........................................14 4.1 MAPLE PROGRAMLARI HAKKINDA GENEL BİLGİ .................. 141
1.4.1 Fonksiyon Tanımlama............................................................14 4.2 ÖRNEK MAPLE PROGRAMLARI ...............................................146
1.4.2 Çarpanlara Ayırma.................................................................15 4.2.1 Çift Sayıların Toplamı .......................................................... 146
1.4.3 Denklem ve Eşitsizlik Çözme.................................................16 4.2.2 Asal Sayıların Miktarı ........................................................... 147
[Link] Denklem sistemleri.........................................................17 4.2.3 Listedeki Çift Sayıların Toplamı ........................................... 148
[Link] Eşitsizlikler .....................................................................19 4.2.4 Listedeki Çift Sayıların Ortalaması....................................... 149
1.4.4 Grafik çizme...........................................................................19 4.2.5 Bir sayının Faktöriyeli........................................................... 150
[Link] “plot” komutu ..................................................................19 4.2.6 Listedeki Sayıların Faktöriyellerinin Listesi .......................... 151
[Link] “implicitplot” komutu .......................................................24 4.2.7 Bir Eğrinin Belli Bir Noktasındaki Teğeti............................... 152
[Link] “polarplot” komutu ..........................................................27 4.2.8 Fibonacci Dizisinin Elemanları ............................................. 153
[Link] “plot3d” komutu ..............................................................28 4.2.9 Bir Fonksiyonun Kritik Noktaları........................................... 154
[Link] “display” komutu.............................................................29 4.2.10 Taylor Serisi Açılımı ........................................................... 156
[Link] “spacecurve” komutu......................................................30 4.2.11 Serinin Karakteri ................................................................ 159
1.4.5 Animasyonlar Üretme ............................................................31 4.2.12 Kümelerin Bileşimi ............................................................. 161
1.4.6 Limit Hesaplama ....................................................................33 4.2.13 Kümelerin Arakesiti ............................................................ 162
1.4.7 Türev Hesaplama ..................................................................35 4.2.14 İki Kümenin Farkı ............................................................... 162
1.4.8 İntegral Hesaplama................................................................37 4.2.15 Binom Açılımı.....................................................................163
1.4.9 Dizi ve Seri Tanımlama..........................................................38 4.3 PROGRAMLAMA İLE PROBLEM ÇÖZÜMLERİ ......................... 165
1.4.10 Diferansiyel Denklem Çözme...............................................40 4.3.1 Bir Sayı Problemi ................................................................. 165
1.4.11 Matris İşlemleri.....................................................................42 4.3.2 Yarışmacıya Danışmanlık Yapalım ...................................... 167
1.5 ÖRNEK HATA MESAJLARI ..........................................................43
4.3.3 Pisagor Üçgenleri ................................................................ 174
BÖLÜM – 2 ..............................................................................................49
2.1 FONKSİYONLARIN LİMİTLERİNİ ARAŞTIRALIM ........................50 MAPLE SÖZLÜĞÜ ................................................................................ 176
2.1.1 Limitin İnformal Tanımı ..........................................................50 DİZİN ......................................................................................................179
2.1.2 Limitin Formal Tanımı ............................................................54
2.2 BİR SAYI DİZİSİNİN LİMİTİ VE YIĞILMA NOKTASI ARASINDAKİ
FARKI İNCELEYELİM .........................................................................59
2.2.1 Reel Sayı Dizileri ...................................................................59

I II
sadece ilgili okuyucuları Maple programından daha ileri düzeyde
ÖNSÖZ faydalanabilir hale getirmek hedeflenmiştir.

Ele alınan matematik kavramları, üniversitelerimizin sayısal


Matematiği bir araç olarak kullanan bilim dallarının işlerini ağırlıklı hemen her bölümünde okutulan ve Analiz, Genel
kolaylaştırmak için üretilen ve her türlü matematiksel hesaplamayı Matematik, İleri Analiz veya Calculus adları ile anılan derslerden
yapabilen, 2 veya 3 boyutlu grafikler çizebilen programların genel seçilmiştir. Bu kavramların bir bütünlük oluşturması
adı “Bilgisayar Cebiri Sistemleri” dir. hedeflenmemiştir. Bilgisayarın sunduğu imkânlar sayesinde bir
matematik kavramına bakış açımızı nasıl zenginleştireceğimize
Halen piyasa da bulunan Bilgisayar Cebiri Sistemleri arasında dair örneklendirmeler yapılması hedeflenmiştir.
Maple, Mathematica, Matlab ve Derive gibi programlar sayılabilir.
Bu programlar, temel özellikleri açısından birbirlerine benzer Kitaptaki uygulamalar çoğu zaman kesin ve net açıklamalar ile
programlardır. sonlandırılmamış, okuyucunun, bilgisayarın sunduğu imkânlar
sayesinde kendi bilgisini kendisinin kontrol etmesi ve üzerinde
Bu programların, bir hesap makinesinden farklı olarak türev ve derinlemesine muhakemeler yapmasına fırsat sağlamak
integral gibi matematiksel hesaplamaları da hem sayısal hem hedeflenmiştir.
sembolik olarak gerçekleştirebilme, 2 ya da 3 boyutlu ve
gerektiğinde hareketli grafikler de üretebilme gibi kapasitelerinden Kitap, bütün matematik ve bilgisayar sevenleri hedef kitle olarak
yararlanarak etkinliği oldukça yüksek öğretim etkinlikleri görmekle beraber, sadece belli bir derse hitap etmemesi özelliği ile
planlanabilir. Ayrıca, Matematik öğrenirken ele aldığımız kavramlar yukarıda adı geçen dersleri bir miktar da olsa almış ve
hakkında araştırmalar organize edilebilir. üniversitelerimizin 2. veya 3. sınıflarında okuyan öğrencilerimize
öncelikle tavsiye edilebilir. Ayrıca, Eğitim Fakültelerimizde
Matematik öğrenirken bilgisayardan faydalanmanın en önemli okutulmakta olan “Matematik Eğitimi” dersleri için, bilgisayar
dezavantajlarından birisi kullandığımız programa tam hâkim destekli matematik öğretimini konu alan, kaynak bir kitap olarak da
olamamanın bir sonucu olarak öğrenmeye çalıştığımız kavramdan değerlendirilebilir.
çok, bilgisayar programına vakit harcamaktır.
Kitapta örnekleri sergilenen uygulamaların benzerlerinin
Bugüne kadar üretilen Bilgisayar Cebiri Sistemlerinin hepsinin kullanıldığı, bir kavramı ilk kez öğrenmekte olan öğrencilere yönelik
İngilizce tabanlı olarak üretilmesi ve bu programları anlatan yeterli etkinlikler de düzenlenebilir. Ancak, kavramı ilk kez öğrenecek
miktarda Türkçe kaynak bulunmaması, bu tarz bir kitap öğrencilere yönelik etkinlikler bütün pedagojik faktör göz önüne
hazırlanması fikrinin temel kaynağı olmuştur. alınarak üretilmelidir.
Bu kitapta Bilgisayar Cebiri Sistemleri arasında özel olarak Kitabın içinde yer alan uygulamalardan esinlenerek, sizlerin de
Maple programı ele alınmıştır. kendinize ait “öğrenme”, “öğretme” ve “araştırma” etkinliklerinizi,
Maple ya da bir başka Bilgisayar Cebiri Sistemi yardımı ile
Kitabın temel hedefi Matematik öğrenirken Maple programından üretebilecek seviyeye gelmeniz en büyük dileğimdir.
nasıl yararlanılacağına dair örnek uygulamalar sunmaktır. Bu amaç
doğrultusunda öncelikle birinci bölüm olarak Maple programını Dr. Tolga KABACA
genel hatları ile öğrenebileceğiniz bir bölüme yer verilmiştir.

Maple programını bir süt çanağına benzetirseniz, bu kitaptaki


Maple ile ilgili bilgileri de bu sütün üzerinde yer alan kaymak gibi
düşünebilirsiniz. Bütün programın anlatılması hedeflenmemiş,

III IV
• Kavramların işlendiği bölümler içindeki komutlar canlı ve
KİTAPTAN YARARLANIRKEN DİKKAT EDİLMESİ birbirine bağlı olduğu için çalışmanız sırasında Maple’ı kapatır ve
GEREKEN TEMEL HUSUSLAR daha sonra kaldığınız yerden devam etmek isterseniz çalışmakta
olduğunuz Maple sayfasını kaydedip kapatabilirsiniz. Fakat tekrar
açtığınızda çalışma sayfasının sorunsuz çalışması için sayfadaki
BAŞLAMADAN ÖNCE LÜTFEN OKUYUNUZ ! bütün komut satırlarını tekrar çalıştırmalısınız.

Kitaptaki Maple komutlarından yararlanma konusunda daha az


Kitaptan yararlanırken karşınızda Maple programının kurulu sorun yaşamanız için, her bölümde komutları bir dosya olarak o
olduğu bir bilgisayar olmasında yarar vardır. Kitap 4 ana bölümden bölüme ait bir isimle kaydetmeniz tavsiye edilir. Bu sayede, o
oluşmaktadır. bölümü tekrar çalışma istediğinizde sadece ilgili dosyayı açıp
komutları tekrar çalıştırmanız yeterli olacaktır.
1. bölümde Maple programı hakkında temel seviyede bilgi
verilmekte ve Maple ile matematiksel işlemlerin nasıl yapılacağı • Kitapta geçen bütün komutlar “>” işareti ile başlar ve “:” veya
genel olarak tanıtılmaktadır. “;” işareti ile biter.

2. bölüm bazı yüksek matematik kavramlarının, Maple “>” işareti Maple’ın etkileşimli arayüzünde zaten bulunmakta
programının sunduğu görsel ve cebirsel imkânlar yardımı ile olduğundan komutları yazarken bu işareti kullanmamalısınız.
incelenmesini içermektedir.
“:” veya “;” işaretleri ise bir komut satırının bitirildiğini ve
3. bölümde, Maple programından yararlanarak bazı matematik çalıştırılmaya hazır hale geldiğini gösterir. Her komut satırı
problemlerinin nasıl çözülebileceğine dair örnekler sunulmuştur. muhakkak bu işaretlerden biri ile bitirilmelidir. İki işaretin birbirleri
yerine kullanılabileceği durumlar olduğu gibi aynı anlama gelmediği
4. bölüm ise Maple’ın ileri seviye bir özelliği olan Maple ile durumlar da vardır.
programlamayı konu almaktadır. Öncelikle Maple’a has
programlama dilinin temel özellikleri tanıtılmıştır. Daha sonra, Bu işaretlerin doğru kullanımları için 1. bölümü inceleyiniz.
Matematik çalışırken Maple yardımı ile üretilen programlardan
nasıl yararlanılabileceğine dair örnekler verilmiştir. • Maple programının 9. sürüm ve sonraki sürümlerinde iki farklı
çalışma sayfası tasarlanmıştır. Bunlardan birisi “Maple X”, diğeri
2, 3 ve 4. bölümlerde kullanılan Maple komutlarından en verimli “Classic Worksheet Maple X” isimli ikonlar tarafından temsil
şekilde yararlanabilmek için 1. bölüm mutlaka işlenmelidir. Bu edilmektedir.
bölümlerde yer alan Maple komutlarını, Maple programının çalışma
sayfasına yazıp çalıştırdığınızda komutun üretmiş olduğu cebirsel Bu kitapta örnek alınan çalışma sayfaları Maple’ın klasik
ya da grafiksel sonuçları ekranda görebileceksiniz. Bu komutları çalışma sayfasına aittir. Diğer çalışma sayfası, daha ileri düzey
kullanırken dikkat etmeniz gereken bazı noktalar aşağıda Maple uygulamaları için tasarlandığından evlerimizde kullandığımız
sıralanmıştır; kapasitedeki bilgisayarlarımızın çoğunda istenilen performansta
çalışmayabilmektedir.
• Kavramlar hakkındaki uygulamalar sırasında kullanılan Maple
komutları birbirine bağlıdır. Bu komutları Maple’a aktarırken çok Maple ile çalışmak istediğinizde, “Classic Worksheet Maple X”
dikkatli olmanız gerekmektedir. Kullanıcı olarak komutların hangi isimli ikonu kullanarak programı çalıştırınız. Eğer daha önce
kısımlarına müdahale edip değiştirebileceğinize dikkat ediniz. kaydettiğiniz bir dosyayı açmak istediğinizde bu dosyanın üzerine
çift tıklarsanız, Maple varsayılan olarak klasik çalışma sayfası

V VI
yerine diğer çalışma sayfasını açacaktır. Bu durumu engellemek
için bir defaya mahsus olmak üzere aşağıdaki uygulamayı yapınız.

→ Dosyanın üzerinde, farenizin sağ tuşuna tıklayın,


→ Açılan menüden “birlikte aç” sekmesine tıklayın,
→ Eğer açılan programlar listesinde varsa “cwmaple_x”
programını seçin.
→ Eğer listede “cwmaple_x” programı yoksa “Gözat” ya
da “Browse” düğmesine tıklayın.
→ Gerekli programı “Program files>Maple_X>[Link]”
klasör dizininin altında bulabilirsiniz.
→ Son olarak, “Tamam” düğmesine tıklamadan önce “Bu
tür dosyaları açmak için her zaman seçili programı
kullan” kutucuğunu işaretleyiniz.

• Maple programına yeterli derecede hâkim olana kadar sinir


BÖLÜM – 1
bozucu ve bu kitapta çözümünü bulamayacağınız sorunlarla
karşılaşabilirsiniz ☺. Kitabın daha sonra gelen bölümlerinde kullanılan Maple
kodlarının kullanımına aşina olmanız amacı ile bu bölüm
• Bu kitabın bir Maple kitabı olmadığını unutmayın. Maple’da tasarlanmıştır.
tanımlı birçok matematik komutunun kullanımından ve Maple
özelliklerinin birçoğundan bahsedilmemiştir. Bu bölümü, Maple’ı bütün hatları ile anlatan bir kaynak olarak
düşünmemelisiniz. Maple programının en sık kullanılan yönleri ile
Bu tarz durumlarda [Link] internet tanışmanız ve bu sayede Maple okur-yazarı olmanız
adresindeki forum veya tolgakabaca@[Link] elektronik hedeflenmiştir.
posta adresi aracılığı ile yardım talep edebilirsiniz.

Asla yılmayın! Sorunlarınızı çözme sürecinde hem Maple hem


de Matematik öğreneceksiniz, üstelik benzersiz tecrübeler
yaşayarak!

Dr. Tolga KABACA

VII 1
MAPLE ÖĞRENİYORUZ
Son hareketleri geri veya ileri alır.
Maple, bir bilimsel hesap makinesinin yapabildiği her işlemi
yapmanın yanında, 2 ya da 3 boyutlu grafik çizme, sembolik
hesaplamalar yapabilme ve özel cebirsel operatörlerin işlemlerini Bu üç buton Maple için geçerli fonksiyonlardır.
uygulayabilme kapasitesine sahip bir paket programdır. Maple ve Sigma, standart modu gösterir. Bunun anlamı,
benzeri programlara “Bilgisayar Cebiri Sistemleri” denir. Maple metin bölgesine işletilmeyen standart matematik
programı uygun şekilde kullanıldığında, birçok matematiksel sembolleri yerleştirir. T ye tıklandığında, Maple
kavramı anlamanızı kolaylaştırabilir. Bunun için profesyonel bir kilitlenir ve metin moduna geçilir. Burada metin
Maple kullanıcısı olmanız gerekmez. üzerinde Word’de olduğu gibi yazım değişiklikleri
yapmak mümkündür. Tekrar matematik moduna
dönmek için [> butonu tıklanır.
1.1 MAPLE ARAYÜZÜ
Bu iki buton, seçilen bölüm için alt klasör kapatma
Maple, Windows ortamında kullanmaya alışık olduğunuz birçok ve alt klasör açma işlevini gerçekleştirir.
programa benzer bir arayüze sahiptir. Bu arayüz, iki ana bölümden
oluşur; Sıradaki buton Stop işaretidir. “Panik” butonu
olarak kullanılır. Çalışmakta olan hesaplamayı
I. Bölüm: Menü ve bazı özel durdurmak için kullanılır. (Ctrl+C de aynı işi
görevleri olan düğmelerin yapar.)
bulunduğu araç çubuğu.

Bu üç buton büyütme miktarını kontrol eder.

II. Bölüm: Bir kelime işlemci Çalışma sayfasındaki gösterilmeyen karakterleri


veya cebirsel editör olarak (örneğin; kelime aralarındaki boşluk miktarını)
kullanılabilen bölüm.
gösterir.

Aktif çalışma sayfasını mevcut boyutuna genişletir.

Birinci bölüm olarak adlandırdığımız bölüm, Word veya Excel


gibi programlardan tanıdık olduğumuz bir işleve sahiptir. Zaten, Son buton, değişkenlerin değerlerini sıfırlar yani ilk
kaydet, yeni belge aç, kes, kopyala, yapıştır gibi görevleri olan haline getirir. Maple komutu olarak kullanımı
düğmelerin görünümleri de alışık olduğunuz gibidir. Diğer düğmeler restart; şeklinde kullanılır.
aşağıda kısaca açıklanmıştır. İşlevlerini, Maple’ı kullandıkça daha
iyi kavrayacaksınız.
İkinci bölüm olarak adlandırdığımız bölümün adı KERNEL’dır.
Aşağıda, standart araç çubuğundaki düğmelerin işlevleri kısaca Bu bölüm, Maple ile etkileşim içinde olacağımız bölümdür.
açıklanmıştır. Matematik adına yapılmasını istediğimiz işlemleri birer komut
olarak buraya yazarız. Bu komutları yazarken dikkat etmemiz
gereken noktaları açıklamadan önce Kernel’ı yakından tanıyalım;

Kernel da kendi arasında ikiye ayrılır;

2 3
Birincisi, cebirsel editör görevi yapan bölge: Bu bölge, [> 1.2.1 Komut Satırını Çalıştırmak
işareti ile başlayan satırdır. Bu satıra yazdığınız her şey özel bir
yazı stili ile kırmızı renkte görünür. Bu bölgeye kurallarına uygun Her komut ; işareti ile bitirilip [Enter] tuşuna basıldığında, eğer
bir Maple komutu yazıp [Enter] tuşuna bastığınızda komutu komutta bir söz dizimi hatası yoksa çalıştırılır ve komutun sonucu
çalıştırmış olursunuz ve hemen alt satırda mavi renk ile komutun bir alt satırda mavi renk ile çıktı olarak görünür.
tanımladığı işlemin sonucu görünür. Bu bölgeye komut satırı da
diyebilirsiniz. Bu satır interaktiftir. Eğer komut ; işareti yerine : işareti ile bitirilip [Enter] tuşuna
basılırsa komut çalıştırılır ve hesaplama yapılır ancak sonuç
İkincisi kelime işlemci olarak kullanılabilen bölge: Maple ekrana yazılmaz, daha ilerideki hesaplamalarda kullanılmak üzere
açıldığında, varsayılan olarak kernel cebirsel editör olarak açılır. hafızada tutulur.
Eğer bir komut değil de açıklama tarzında bir yazı yazmak
1.2.2 Maple Komutları
istiyorsanız araç çubuğundaki düğmesine tıklayarak komut
satırını kapatırsınız. Artık satır [ işareti ile başlar ve bu satıra aynı
Maple’dan istekleriniz dört işlem olabileceği gibi özel
bir kelime işlemcide (Word) olduğu gibi yazılar yazabilirsiniz. Bu
matematiksel operatörler de olabilir. Maple, yapmış olduğu
satır interaktif değildir. Tekrar interaktif komut satırını açmak için
hesaplamaların sonuçlarını sizin alışık olduğunuz tarzda, yani
araç çubuğundaki düğmesine tıklar veya Ctrl-J tuş matematiksel dile uygun bir şekilde ekranda gösterir. Bu kısım
kombinasyonunu kullanırsınız. daha önce de belirttiğimiz gibi mavi renklidir. Mavi renkli bölgeye
müdahale edemezsiniz.

Bir hesap makinesinin vermiş olduğu sonucu bazen anlamakta


güçlük çekebilirsiniz. Çünkü, en kapsamlı hesap makinesinde bile
ekran ancak 4-5 satırdan ibarettir. Fakat Maple’ın mavi renkli
cevabı aynen defterinize yazdığınız veya kitaplarda görmeye alışık
Cebirsel editörlük yapan komut satırı
olduğunuz tarzdadır.
Kelime işlemci olarak kullanılan metin
satırı
Bunun yanında, komutları yazarken bazı kurallara dikkat etmek
zorundasınız. Aksi takdirde Maple sizin ne sormak istediğinizi
anlamaz, ya da yanlış anlar. Ve istediğiniz cevabı alamazsınız.

Bu kuralların birincisi, komutların ; işareti ile bitirilmesi


Cebirsel editör olarak kullanılan etkileşimli komut satırının gerektiğidir.
kullanımı için daha fazla vakit ayırmamız gerekiyor. Çünkü
Maple’dan faydalanacağımız kısım burası. Matematiksel bir yazımın bilgisayara aktarılmasına ait yazım
şekli, genelde her program için aynıdır. Aşağıdaki tablo, temel
matematiksel operatörlerin bilgisayara nasıl yazılacağını
1.2 MAPLE VE MATEMATİK göstermektedir.
Maple sizinle etkileşim içinde olan bir programdır. Maple’ın dilini
kullanarak sorduğunuz matematik ile ilgili hemen hemen her
sorunun cevabını öğrenebilirsiniz. Tabii ki bu cevapları
yorumlamak sizin işiniz olacaktır.

4 5
Maple’da Komutların adı genelde matematiksel operatörün İngilizce
Matematiksel Maple sonucu olarak
yazım tarzı karşılığının kısaltılmış halinden oluşur.
İşlem ekranda görülen çıktı
örnekleri
evalf komutu;
Toplama, 2+4; 6
çıkarma 5-7; -2 Maple, hesap makinesinden farklı olarak bir hesaplamanın
sonucunu sembolik olarak da verebilir. Sonucun sayısal karşılığını
56 görmek istiyorsanız evalf komutunu aşağıdaki gibi kullanabilirsiniz;
7*8; 7
Çarpma, bölme 7/8; evalf( F,m)
8
Bir sayının F = hesaplanacak ifade
kuvveti 2^5 32
25 m = ifadenin kaç basamağının hesaplanacağı

Karekök alma sqrt(15); 15 Eğer ifadenin kaç basamağının hesaplanacağı belirtilmezse,


veya bir sayının 15^(2/3); ( 2/3 ) Maple varsayılan olarak en fazla 10 basamak hesaplar.
reel kuvveti 15
Örnek:
Matematikte gruplandırma yapmak için parantezler > sqrt(2);
kullanmamız gerektiğinde bazen normal bazen köşeli parantez
kullanabiliyoruz ancak Maple programında gruplandırma yapmak
2
amacı ile parantez kullanacağımız zaman sadece normal parantez
kullanmamız gerekir. Köşeli parantez farklı anlamlara gelmektedir. > evalf(sqrt(2));
Ayrıca Maple, sadece sayılarla işlem yapmaz, değişkenler ile de
işlem yapabilirsiniz; 1.414213562

Örnek: > evalf(sqrt(2),20);

> (y+x)^2*(e-2/(r-t)); 1.4142135623730950488


( y + x ) 2 ⎛⎜⎜ e −
2 ⎞

⎝ r − t ⎟⎠ Bu yolla π sayısının ilk 1000 ya da daha fazla basamağını
görebilme heyecanını yaşayabilirsiniz.
1.2.3 Özel Maple Komutları
1.2.4 Matematik Sabitleri ve Bazı Bilinen Fonksiyonlar
Maple, sıradan matematiksel işlemler haricinde özel komutlar
içerir. Bu komutların sayısı 5000’in üzerindedir. Bu yüzden her Maple π ve doğal logaritma tabanı olan e sayısı gibi sabitleri de
birini tek tek açıklamak mümkün değildir. En sık kullanılanları sırası tanımaktadır. Ayrıca trigonometrik veya logaritmik fonksiyonlar da
geldikçe göreceğiz. yazılabilmektedir. Tabii ki bunları Maple’ın anlayabileceği gibi
yazmak şartı ile!
Bir Maple komutunun genel yapısı, Komutadı(……) şeklindedir.
Parantez içine, komutun ihtiyaç duyduğu elemanlar, aralarına
virgül (,) konarak yazılır. Bu elemanlara argüman adı verilir.

6 7
1.2.5 Maple’da Atama Yapma ve Fonksiyon Tanımlama

Sembol veya Maple’da yazılışı Maple’da kullanımı kolaylaştıran unsurlardan biri de, bir
Uyarılar
fonksiyon ve kullanımı değişkeni sabit bir sayıya ya da bir fonksiyona atayabilmektir.
>Pi; Pi yazarken p harfi Atama kavramını isimlendirme gibi düşünebilirsiniz. Atama yapmak
π büyük, i harfi küçük için önce sayı, fonksiyon ya da ifadeye hangi ismi verecekseniz
π sayısı >evalf(Pi); onu yazarsınız daha sonra := işaretinden sonra sayı, fonksiyon ya
yazılmalı. pi, Pİ, pİ gibi
3.141592654 yazımlar doğru değildir. da ifadeyi yazarsınız.
>exp(1); exp(m) = em anlamına Bir atama yaptıktan sonra, bir harf ile atadığınız
e gelmektedir. e sayısını (isimlendirdiğiniz) ifade yerine o harfi kullanabilirsiniz.
e sayısı >evalf(exp(1)); belirtmenin tek yolu
2.718281828 exp(1) yazmaktır. Örnek:
Maple trigonometrik
>sin(2); ifadeleri hesaplarken > b:=3;
sin( 2 ) bağımsız değişkeni, b := 3
>evalf(sin(2)); varsayılan olarak radyan
0.9092974268 cinsinden kabul eder. Bundan sonra Maple, “b” yazıldığında 3 değerini algılayacaktır.
Çünkü derslerimizde de
>tan(Pi/3);
öğrendiğimiz gibi radyan, > 5^b;
Trigonometrik 3 açı ölçüsü ile sıradan bir 125
fonksiyonlar >cot(Pi/2); reel sayının buluştuğu
0 yerdir. Yani hem > a:=x^2;
>cos(Pi/6); trigonometrik oranın
içinde hem de dışında
a := x 2
3
aynı değişkeni
2 kullanıyorsanız radyan Bundan sonra Maple, “a” yazıldığında x2 değişkenini
olmalıdır. algılayacaktır.
Maple, log ile doğal
>log(10); logaritma olan ln > a/7;
ln( 10 ) yazımını aynı anlamda x2
>ln(exp(1)); varsayar. logab yazmak 7
Logaritmik 1 istiyorsanız log[a](b)
fonksiyon >log[2](10); veya taban değiştirme Not: Bir Maple dosyasında çeşitli atamalar yapıp bu sayfayı
ln( 10 ) kuralını kullanarak daha sonra kullanmak üzere kaydedip kapatsanız bile tekrar
ln( 2 ) ln(a ) açtığınızda bu atamaların hiçbiri hafızada kalmaz. Bütün atama
yazabilirsiniz.
ln(b) satırlarını tekrar çalıştırarak (satırın üzerine gelip [Enter] tuşuna
basmak) atamaları yenilemelisiniz.
Bu fonksiyonlar ve semboller arttırılabilir. Burada en sık
Bir çalışma sayfasındaki atamaları sayfayı kapatmadan
kullanılanların tanıtılması ile yetinilmiştir.
sıfırlamak istiyorsanız bir komut satırına restart; komutu yazıp
çalıştırmalı veya araç çubuğundaki düğmesini tıklamalısınız.

8 9
1.2.6 Tanımlanan İfadede Değişken Yerine Bir Değer Yazma 1.2.8 Grafik çizme

Burada yeni bir komut daha öğreneceğiz! “subs” komutu; Maple programı her türlü fonksiyonun grafiğini hem 2 boyutlu
hem de 3 boyutlu çizebilme kapasitesine sahiptir. Şimdilik sadece
Komutun kullanımı: subs(x=a,f) f isimli ifadede x değişkeni 2 boyutlu grafik çizmekten bahsedeceğiz.
yerine a değerini koy anlamına gelir.
Grafik çizmek için plot komutunu kullanırız. Bir fonksiyonun
Örnek: grafiğini çizmek için en azından fonksiyonu ve çizimin yapılacağı
tanım aralığını yazmalıyız;
> f:=3*x^2-(x-2)/(x+5);
x−2 > plot(x^2+3*x-1,x=-10..10);
f := 3 x 2 −
x+5

> subs(x=2,f);
12

> subs(x=e,f);
e−2
3 e2 −
e+5

1.2.7 Maple’da Matematiksel Fonksiyonlar Tanımlamak

“subs” komutunu kullanmak her zaman kullanışlı olmayabilir.


Bu gibi durumlarda aşağıdaki gibi fonksiyon tanımlanırsa değişken
yerine bir değer vermek daha hızlı ve pratik olur.

> f:=x->sin(x)+x^2;
f := x → sin( x ) + x 2

> f(Pi/3);
3 π2
+
2 9 “plot” komutunun minimum kullanımı
plot(fonksiyon,bağımsız değişken aralığı)
f:=x->sin(x)+x^2 yazımı matematiksel olarak f(x) = sinx +
x2 anlamına gelir. Bu sayede f(a); yazarak x yerine a yazmış şeklinde olmakla beraber,
oluruz. plot(fonksiyon,bağımsız değişken aralığı,bağımlı değişken
aralığı,renk)

gibi ekstra özellikler de kullanılabilir;

10 11
> plot(tan(x),x=-Pi/2..Pi/2,y=-10..10, 1.3 MAPLE’IN YARDIM MENÜSÜNÜ KULLANMAK
color=black);
Bu kullanım kılavuzu ile Maple’ın bütün özellikleri
anlatılmamıştır. Sizin eğitiminiz boyunca Maple’ı kullanabilmeniz ve
çalışmalarımız sırasında Maple ile ilgili göreceğiniz yeni özellikleri
anlayacak kadar Maple bilgisine sahip olmanız hedeflenmiştir.

Maple’ın yardım menüsü oldukça kullanışlıdır. Maple ile ilgili bir


özellik kullanmak istediğinizde kullanımını merak ettiğiniz
matematiksel operatörün İngilizcesini öğrenin (veya bulun) ve
komut satırına ? işaretinden sonra kelimeyi yazıp [Enter] tuşuna
basın. Bir yardım sayfası açılacaktır.

Bu yardım sayfası da İngilizcedir. Anlamayabilirsiniz, ancak


açılan yardım sayfasında, hakkında yardım istediğiniz
matematiksel operatörün kullanım örnekleri vardır. Bu örnekleri
Maple çalışma sayfasına yapıştırarak kullanım özelliklerini
inceleyebilirsiniz.

Örnek:
Ayrıca, aşağıdaki gibi aynı koordinat sistemi üzerinde birden
fazla fonksiyonun da grafiği çizilebilir. Bir fonksiyonun limitini bulmaya yarayan komutu merak ettiğinizi
düşünelim. Limit zaten İngilizce bir kelimedir.
> plot([sin(x),ln(x)],x=0..2*Pi,y=-1..1,
color=[black,blue]); > ?limit

yazıp [Enter] tuşuna bastığınızda açılacak olan yardım


sayfasındaki örnekleri bulun. Bu örnekler sizi yönlendirecektir.

12 13
1.4 MAPLE BİLGİMİZİ GELİŞTİRİYORUZ İkinci fonksiyon ise f olarak isimlendirilmiş olsa da t
değişkeninin hangi kurala göre işlendiği tanımlanarak verildiği için f
Önceki bölümde Maple okur-yazarı olmayı hedeflemiştik. Bu adı ile çağrılan bizim fonksiyonumuz değildir. Bu tanımlamaya göre
bölümde ise Maple bilgilerimizi biraz daha geliştirmeyi hedefliyoruz. fonksiyonumuz f(t)’dir.
Maple yardımı ile yapabileceklerimizi bazı seçme başlıklar altında
tanıtmaya çalışacağız. Tabii ki f(t) tanımlaması, fonksiyonun sadece kuralıdır.
Fonksiyonun özelliğine göre bağımsız değişken uygun şekilde
1.4.1 Fonksiyon Tanımlama atanmalıdır;

Maple arayüzünde matematiksel işlemlerimizi belli bir düzen > f(2);


içinde yapabilmemiz kullanacağımız fonksiyonları doğru ve etkili bir 1
sin( 2 )
şekilde tanımlamaya bağlıdır. 2
Aşağıda en iki farklı fonksiyon tanımlama örneği verilmiştir; > f(1.2);
-0.6283628833 − 0.4565323577 I
> A:=sin(x)/x;
sin( x ) f(t) kuralı negatif bir sayının üssünü içermektedir. Bağımsız
A :=
x değişken olarak 1,2 kullanılınca sonuç karmaşık sayı olarak
çıkmıştır. Eğer reel sayılar üzerinde çalışacaksak böyle bir durum
> f:=t->(-1)^t*sin(t)/t; hata mesajları ile karşılaşmamıza sebep olabilir.
( -1 ) t sin( t )
f := t → Gördüğünüz gibi fonksiyonumuzu f(t) formatına uygun bir
t şekilde tanımlarsak t=a değişkeni için değerini hesaplamak aynı
matematik derslerimizdeki gibi f(a) yazarak mümkündür.
Bu iki tanımlamanın farkı, fonksiyonları tekrar çağırdığımız
zaman anlaşılmaktadır; Eğer yukarıdaki A ifadesine göre bir değişkenin değerini
hesaplamak için ise subs komutunu kullanmamız gerekir;
> A;
sin( x ) > subs(x=Pi/2,A);
π
2 sin⎛⎜⎜ ⎞⎟⎟
x
⎝2⎠
> f; π
f
1.4.2 Çarpanlara Ayırma
> f(t);
t
( -1 ) sin( t ) Maple uygulamaları sırasında karşılaştığınız ifadelerin
t çarpanlarını görmek isteyebilirsiniz. Böyle bir durumda “factor”
komutunu aşağıdaki gibi kullanmanız yeterli olacaktır.
Görüldüğü gibi birinci fonksiyon A olarak isimlendirilmiş ve A
adı ile çağrıldığında görüntülenmiştir. > A:=x^3*sin(x)-4*x^2*sin(x)+4*x*sin(x);
A := x 3 sin( x ) − 4 x 2 sin( x ) + 4 x sin( x )

14 15
> factor(A); > solve(A,x);
( x − 2 ) 2 x sin( x ) −y 2 + 5 , − −y 2 + 5
“factor” komutunun tam tersi bir işlem ise “expand” komutu ile
gerçekleştirilebilir; Yukarıda A adı ile kapalı bir fonksiyon olan çember denklemi
tanımlanmış ve solve(A,x) komutu ile A denkleminde x’in y
> B:=(x-2)^2*x*sin(x); cinsinden yazılması sağlanmıştır.
B := ( x − 2 ) 2 x sin( x )
Örneklerin çıktı satırlarından da anlaşılabileceği gibi çözülen
denklemin iki farklı sonucu varsa bu sonuçlar aralarına virgül
> expand(B); konularak görüntülenmektedir.
x 3 sin( x ) − 4 x 2 sin( x ) + 4 x sin( x )
Maple bu sonuçları sıralı n’li olarak algılamaktadır. Eğer
çözümün yapıldığı komut satırını aşağıdaki gibi isimlendirirsek
1.4.3 Denklem ve Eşitsizlik Çözme sonuçları kullanma şansımız olur;
Uygulamalarımız sırasında bazı denklemleri veya eşitsizlikleri
> B:=solve(A,x);
çözmek zorunda kalabiliriz. Bu durumda “solve” komutundan
yararlanırız. Bu komutun çalışma prensibi aşağıda B := −y 2 + 5 , − −y 2 + 5
örneklendirilmiştir.
B[k] yazımı, B adı verilen sıralı n’linin k. elemanı anlamına
> B:=x^2-2*x+5=0; gelmektedir.
B := x − 2 x + 5 = 0
2

> B[1];
> solve(B); −y 2 + 5
1 + 2 I, 1 − 2 I

Yukarıda x2 – 2x + 5 = 0 denklemine B adı verilmiş ve solve(B) > B[2];


komutu ile çözdürülmüştür. Gördüğünüz gibi solve komutu
karmaşık kökleri de bulabilmektedir. − −y 2 + 5

Yukarıdaki gibi denklemleri bir ad ile tanımlamak yerine direk [Link] Denklem sistemleri
olarak solve komutunun içine de yazabilirsiniz;
“solve” komutunu kullanarak denklem sistemlerini de
> solve(x^2-2*x+5=0); çözebiliriz. Öncelikle, aşağıdaki gibi bir denklem sistemi
1 + 2 I, 1 − 2 I tanımlayalım;

> A:=x+2*y=1;
Bu komut çok farklı kullanım özellikleri ile de karşımıza çıkabilir.
B:=-x+3*y=3;
Aşağıdaki örneği inceleyiniz;
A := x + 2 y = 1
> A:=x^2+y^2=5; B := −x + 3 y = 3
A := x 2 + y 2 = 5

16 17
> solve({A,B}); Gördüğünüz gibi Maple aynı denklemin (-30,-20) aralığındaki
4 -3 kökünü hesapladı.
{y = , x = }
5 5
[Link] Eşitsizlikler

Eğer verilen denklem sisteminin reel kökü yok ise veya Maple Eşitsizlikler veya eşitsizlik sistemlerini de “solve” komutu ile
analitik yöntemler ile çözemiyorsa aşağıdaki gibi bir sonuç verir; çözebilirsiniz;

> A:=x^2-2*x=1; > A:=abs(x-2)<5;


B:=x-2*y=0; A := x − 2 < 5
A := x 2 − 2 x = 1
> B:=x>0;
B := x − 2 y = 0
B := 0 < x
> solve({A,B});
1 > solve(A);
{ x = RootOf ( _Z 2 − 2 _Z − 1, label = _L1 ), y = RootOf ( _Z 2 − 2 _Z − 1, label = _L1 ) }
2 RealRange( Open( -3 ), Open( 7 ) )

Bu sonuç (-3,7) aralığı anlamına gelmektedir.


Bu durumda denklem çözümünde sayısal yöntemlere başvuran
“fsolve” komutundan yararlanabiliriz;
> solve({A,B});
> fsolve({A,B}); { 0 < x, x < 7 }
{ x = 2.414213562, y = 1.207106781 }
Denklem ve eşitsizlik çözümleri ile ilgili daha fazla bilgi için;
fsolve komutu tek denklemler için de kullanılabilir; > ?solve;

> ?fsolve;

> f:=sin(x)-exp(x)=0:
solve(f); 1.4.4 Grafik çizme
RootOf( _Z − ln( sin( _Z ) ) )
Maple matematiksel kavramları çok farklı şekillerde
görselleştirme yeteneğine sahiptir.
> fsolve(f);
-12.56636713 En basit grafik çizme işlemi için “plot” komutu ile tanışacağız;

Denklemlerin sayısal çözüm yöntemleri, denklemin bir tek [Link] “plot” komutu
kökünü bulmaya elverişlidir. Eğer başka kökler varsa kök için aralık
belirterek araştırılabilir; Tek değişkenli fonksiyonların grafiklerini çizmek için en sık
kullanacağımız komuttur. Fonksiyonu ve bağımsız değişkenin
> fsolve(f,x=-30..-20); aralığını girdi olarak tanımlamamız yeterlidir.
-25.13274123

18 19
> f:=exp(x)+sin(x);
f := e x + sin( x ) Çizilen grafiğin görüntü aralığını değiştirmek için, değişken
isminden bağımsız olarak, görünün anlamına gelen view
> plot(f,x=-10..10); kelimesi kullanılmaktadır.

Gördüğünüz gibi ilk çizilen eğride görüntülenemediği halde


görüntü kümesi üzerinde yaptığımız yeni düzenleme sayesinde
eğrinin x-eksenini kestiği noktalar olduğunu farkettik.

Birden fazla eğriyi aynı koordinat sistemi üzerinde


görüntülemek isteyebiliriz;

> f:=exp(x)+sin(x);
f := e x + sin( x )

> g:=sin(2*x);
g := sin( 2 x )

“plot” komutu bağımsız değişkenin aralığını tanımlamamızı > plot([f,g],x=-10..10,view=-2..2);


bizden beklerken görüntü kümesi için kendisi bir aralık belirler.
Fakat bu aralık her zaman anlamlı olmayabilir.

Yukarıda elde ettiğimiz grafiğin görüntü kümesi aralığı çok


yüksek değerler olarak belirlendiği için x-ekseninin yakınlarında
eğrinin davranışı gözlemlenememektedir. Böyle bir durumda
görüntü kümesi aralığını gözlemlemek istediğimiz bölgeyi içine
alacak şekilde belirleyebiliriz. Bu sayede belirlediğimiz aralıkta eğri
büyütülmüş olur;

> plot(f,x=-10..10,view=-5..5);

plot komutu içinde fonksiyonu tanımladığımız kısıma köşeli


parantez içinde [f,g] şeklinde birden çok grafik yazdığımızda
grafikler aynı koordinat sisteminde görüntülenir.

20 21
Görüntüyü daha anlaşılır hale getirmek için Maple birçok
avantaj sunar.

Yukarıdaki örnekte hangi grafiğin hangi fonksiyona ait olduğunu


seçtiğimiz örnek fonksiyonları tanıdığımız için anlayabiliyoruz.
Fakat bunu belirlemenin daha etkili bir yolu renk tanımlamaktır. Biz
herhangi bir ren tanımlamadığımız için Maple varsayılan renklerini
kullanmıştır.

> plot([f,g],x=-10..10,view=-2..2,
color=[black,red]);

Grafik çizimi ile ilgili eğri stili, eğrinin kalınlığı gibi daha fazla
opsiyon belirleyebilirsiniz. Daha fazla bilgi için;

> ?plot[options]

Her türlü grafiği çizebiliriz yeter ki tanımlamayı bilelim. Grafik


çizdikten sonar gözlemlediklerimizi analiz etmemiz bile Maple bize
ne kadar çok şey öğretebileceğini anlamamız için yeterlidir.

Aşağıdaki örneğe bir göz atın!


f ve g fonksiyonları sırasıyla siyah ve kırmızı renkler ile
tanımlanmıştır. Bir fonksiyon tanımlıyoruz;

Bu grafikte bir başka görüntü bozukluğu daha göze


çarpmaktadır. Siyah grafik biraz köşeli hatlara sahiptir. Bu durum > f:=x->x^3+4*x^2+x-5;
koordinat sisteminde birim alan başına düşen nokta miktarının f := x → x 3 + 4 x 2 + x − 5
sınırlı olmasından kaynaklanmaktadır.

Aşağıda sırasıyla y = f ( x) , y = f ( x) , y = f(x) ve


plot komutunun içinde kullanacağımız “numpoints” opsiyonu
ile birim alan başına düşen nokta sayısını belirlemek mümkündür. y = f ( x ) fonksiyonlarının grafikleri aynı koordinat sistemine
> plot([f,g],x=-10..10,view=-2..2, çizdirilmiştir.
color=[black,red],numpoints=200);
Aşağıdaki komut satırında kullanılan abs(…) ifadesi
“mutlak değer” kavramının İngilizce karşılığı olan
“absolute value” kavramının kısaltmasıdır. İçine
yazılan ifadenin mutlak değerini alır.

22 23
> plot([f(x),abs(f(x)),abs(f(abs(x))),f(abs(x))], Denklemini ele alalım. A denklemi x ve y değişkenlerinin bir
x=-5..5,view=-20..20, arada sunulduğu birinin cinsinden diğerinin nasıl ifade edildiğinin
color=[red,black,blue,yellow], tam olarak tanımlandığı bir denklemdir. Böyle bir denklemin ifade
thickness=[1,2,4,6],linestyle=[1,2,3,1]); ettiği eğriyi çizdirelim;

Bu aşamada Maple’ın karakteristik bir özelliğinden


bahsetmemiz gerekiyor!

Maple’da sıklıkla kullanılan komutlar program açılır


açılmaz kullanılabilir durumdadır. Bazı özel komutlar
ise paketler halinde sınıflandırılmıştır.

Kapalı fonksiyonların grafiklerini çizmemizi sağlayan


“implicitplot” komutu da çizim paketinin içinde
bulunmaktadır. Bu paketi aktif hale getirmeden
çalışmayacaktır.

Herhangi bir paketi aktif hale getirmenin yolu ise

> with(paket_adı);

Komutunu çalıştırmaktır.

thickness ve linestyle, çizim komutu içinde > with(plots);


kullanılabilen, sırasıyla eğrinin kalınlığını ve stilini
belirleyen opsiyonlardır.
[ animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d,
conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d,
[Link] “implicitplot” komutu cylinderplot , densityplot, display, display3d, fieldplot , fieldplot3d , gradplot,
gradplot3d, graphplot3d, implicitplot, implicitplot3d, inequal, interactive ,
Yukarıda öğrendiğimiz plot komutu y = f(x) şeklinde açık olarak listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d, loglogplot, logplot,
tanımlanan fonksiyonların grafiklerinin çizimi içindir. Dikkat
ederseniz plot komutunda fonksiyonun bağımlı değişken Paketi açma komutunu çalıştırdığınızda paketin içerisinde yer
yazılmamaktadır. alan bütün komutların adı listelenir. Eğer çalışma sayfasında
görüntü kirliliği olmasını istemiyorsanız. Komutu ; işareti yerine :
Bazen kapalı tanımlı fonksiyonlar ile çalışmamız gerekebilir. Bu işareti ile bitirin.
durumda bağımlı ve bağımsız değişkenin bir arada kullanıldığı
“implicitplot” komutundan yararlanırız. Bu komut ile kapalı bir fonksiyonun grafiği çizilmek
istendiğinden Maple sizden her iki değişken için de aralık tayin
> A:=(x-1)^2+y^2=2*2; etmenizi isteyecektir.
A := ( x − 1 ) 2 + y 2 = 4

24 25
> implicitplot(A,x=-2..3,y=-2..2);

Şimdi mavi ve kırmızı renkli eğriler birer fonksiyon ifade edebilir


öyle değil mi?

[Link] “polarplot” komutu


Maple bir bilgisayar cebiri sistemi olduğu için bazen sadece Kutupsal koordinatlar ile tanımlı fonksiyonların grafiğini çizmek
çalışma özelliği sayesinde size bazı matematiksel gerçekleri için kullanacağımız komut “polarplot” komutudur.
hatırlatır ☺
> with(plots):
Yukarıdaki eğriye dikkat ederseniz bir bağımsız değişken için iki polarplot(1+cos(theta),theta=0..2*Pi);
adet bağımlı değişken elde edilebilmektedir. Yani matematiksel
anlamda bir fonksiyon değildir.

Bu tarz bir eğriyi plot komutunu kullanarak nasıl çizebiliriz?


Tabii ki öncelikle y=f(x) ifadesini elde etmeliyiz.

> B:=solve(A,y);
B := −x 2 + 2 x + 3 , − −x 2 + 2 x + 3

A ifadesinde y değerini x cinsinden çözdüğümüzde iki farklı


sonuç elde edilmiştir. Her iki sonucu da koordinat sistemi üzerinde
farklı renklerde çizdirelim;

> plot([B[1],B[2]],x=-1..3,color=[red,blue]);

26 27
[Link] “plot3d” komutu Üç boyutlu grafikleri daha farklı açılardan da
inceleyebilirsiniz;
Maple iki değişkenli fonksiyonların grafiklerini çizmek için plot3d
komutundan yararlanır. Grafiğin üzerine tıkladığınızda araç çubuğunun hemen
altındaki “context bar” ın grafiğe ait özellikleri
Öncelikle iki değişkenli bir fonksiyon tanımlayalım; yönetebileceğiniz şekilde değiştiğini göreceksiniz.

> f:=(x,y)->abs(x^3+y^3);
f := ( x, y ) → x 3 + y 3
Context bar sayesinde dikey ve yatay döndürme
açılarını, yüzeyin görüntü özelliklerini ve koordinat
Fonksiyonumuz iki değişkenli olduğundan hem x hem de y sisteminin görünümünü yönetebilirsiniz.
değişkenlerinin aralıklarını tanımlamamız gerekmektedir.
Not: Context bar her türlü grafik için, o grafiğe ait özelliklere
> plot3d(f(x,y),x=-10..10,y=-10..10, göre aktif hale gelecektir.
numpoints=5000);

[Link] “display” komutu

Birden fazla grafiği aynı koordinat sistemi üzerinde


görüntülemenin yolundan bahsetmiştik. Grafiği çizdirilecek
fonksiyon yerine [f1,f2,f3, . . .fn] şeklinde çizdirmek istediğiniz bütün
fonksiyonları sıralıyorsunuz. Ancak bu kullanımdaki fonksiyonların
hepsi aynı özellikte olmalıdır. Yani hepsi kartezyen tanımlı, hepsi
kapalı fonksiyon ya da hepsi kutupsal tanımlı olmalıdır.

“display” komutu sayesinde ise aynı boyutta olmak şartı ile


farklı özelliklere sahip grafikleri de aynı koordinat sistemi üzerinde
çizdirebilirsiniz.

Öncelikle çizim paketini açalım;

> with(plots):

Çizilen her bir grafiği isimlendirelim ve çizim ile ilgili gerekli


hesaplamaların yapılıp ekrana aktarılmaması için komutları : işareti
ile sonlandıralım;

> A:=polarplot(1+cos(theta),theta=0..2*Pi,
numpoints=5000,color=black):
B:=implicitplot((x-1)^2+y^2=1,x=-2..3,
y=-2..2,color=blue):

28 29
Son olarak aşağıdaki gibi A ve B olarak isimlendirdiğimiz iki
grafiği aşağıdaki gibi görüntüleyebiliriz;

> display(A,B);

Daha farklı grafikler de çizmek mümkündür. İleriki bölümlerde


bazı farklı grafik çizimleri kullanılacaktır. Komutların nasıl
kullanıldığını inceleyerek siz de kendi grafiklerinizi çizebilirsiniz.

[Link] “spacecurve” komutu Daha fazla bilgi için;

Biraz İngilizce bilen arkadaşlar bu kelimenin uzay eğrisi > ?plot


anlamına geldiğini anlayacaklardır.

3 boyutlu öklid uzayında bir eğriye ait noktaları sıralı üçlü 1.4.5 Animasyonlar Üretme
şeklinde olacaktır. Aşağıdaki gibi parametrik olarak tanımlanan bir
eğriyi sıralı üçlü olarak yazalım; Maple ile sizin belirleyeceğiniz bir kurala göre hareket eden
grafikler de üretebilirsiniz. "animate” komutunu aşağıdaki gibi
x = cos(2t), y = sin(2t), z = t/2 [cos(2t),sin(2t),t/2] kullanarak hareketli grafikler üretebilirsiniz.

> with(plots): animate(çizim komutu,[çizim komutunun girdileri],hareketin


bağlı olduğu parametrenin aralığı, diğer opsiyonlar)
> spacecurve([cos(2*t),sin(2*t),t/2],t=0..4*Pi,
color=black,numpoints=5000,thickness=3); Örnek:

Aşağıdaki komut sayesinde t değeri [0,4] aralığında değişirken


elde edilen cos(tx) fonksiyonlarının x ∈ [-π,π] aralığı için sırayla
çizimi canlandırılacaktır.

30 31
İleriki bölümlerde matematiksel kavramların analizi amacı ile
> with(plots): farklı özelliklere sahip animasyonlar üretilmiştir. Komutların nasıl
kullanıldığını ayrıntılı olarak inceleyebilirsiniz.
> animate(plot,[cos(t*x),x=-Pi..Pi],t=0..4);
Daha fazla bilgi için;

> ?animate

1.4.6 Limit Hesaplama

Aşağıdaki komut yardımı ile fonksiyonu ve limit alınacak noktayı


belirleyerek her türlü fonksiyonun limitini hesaplayabilirsiniz;

> f:=x->(x-Pi/2)*tan(x);
π
f := x → ⎛⎜⎜ x − ⎟⎟⎞ tan ( x )
⎝ 2⎠

> limit((x-Pi/2)*tan(x),x=Pi/2);
-1

Limitin olmadığı durumlarda ise Maple aşağıdaki gibi bir sonuç


verecektir;

> limit(tan(x),x=Pi/2);
undefined
Yukarıda animasyon sırasında t=1 için elde edilen grafik
görülmektedir.
Verilen noktada limiti olmayan fonksiyonlar için Maple tanımsız
“undefined” tanımlaması yapmaktadır. Limiti olmayan fonksiyonlar
Üretilen animasyonlu grafiğin üzerinde tıklandığında “Context
için sağdan ve soldan limitlerinin aynı olmadığı sonucunu
Bar” ın bir CD çalar’ın fonksiyonlarını yansıtan düğmelerden
çıkarabilir ve bunu Maple ile kontrol edebiliriz.
oluştuğunu göreceksiniz. Aşağıdaki şekilde animasyonlu bir grafiğe
ait “Context Bar” ın fonksiyonları açıklanmaya çalışılmıştır. > limit(tan(x),x=Pi/2,left);

sonraki oynatma oynatma
sürekli
kare yönü (ileri) hızını arttır
durdur oynat > limit(tan(x),x=Pi/2,right);
−∞

Yukarıda elde edilen sonucun görsel olarak ne anlama geldiğini


de Maple’dan öğrenme fırsatını değerlendirebiliriz;
oynatma oynatma bir kez
oynat
yönü (geri) hızını azalt oynat > plot(tan(x),x=0..Pi,view=-50..50);

32 33
1.4.7 Türev Hesaplama

Verilen fonksiyonların türevlerini hesaplama da Maple ile kesin


ve hatasız olarak yapabileceğimiz bir işlemdir. Türev almak için
kullanacağımız komut diff(fonksiyon,türev değişkeni) dir.

Öncelikle sıradan bir tek değişkenli fonksiyonun türevini alalım;

> f:=x->ln(sqrt(x))+exp(sin(x))+arctan(x);
sin( x )
f := x → ln( x ) + e + arctan ( x )

> A:=diff(f(x),x);
1 sin( x ) 1
A := + cos( x ) e +
2x 1 + x2

> simplify(A);
sin( x ) sin( x )
Grafikte gördüğünüz x=π/2 noktasındaki dikey doğru dikey 1 1 + x 2 + 2 cos( x ) e x + 2 cos( x ) e x3 + 2 x
asimptottur. Maple, grafikte varsa dikey asimptotları varsayılan 2 x ( 1 + x2 )
olarak, grafik ile aynı renkte çizer. Bunu engellemenin yolu plot
komutu içinde opsiyonel olarak kullanılabilen discont=true simplify kelimesi “sadeleştir” kelimesinin İngilizce
argümanından yararlanmaktır. karşılığıdır ve Maple çalışma sayfasında bir
ifadenin sadeleştirilmesi için kullanılır.
> plot(tan(x),x=0..Pi,view=-50..50,discont=true);
Yukarıdaki ifade sadeleştirilince daha uzamış
görünmektedir ☺

Bunun da sebebi komutun çalışma prensibinde


yatmaktadır.

simplify(A) komutu kullanılınca Maple toplam


şeklindeki ifadeyi çarpmış ve tek paydaya sahip
olacak şekilde yazmıştır.

Bir fonksiyonun türevinin belli bir a noktasındaki değerini


arıyorsak;

> subs(x=1,A);

sin( 1 )
1 + cos ( 1 ) e

34 35
Türevin x=1 noktasındaki değeri sembolik olarak elde edilmiştir. Burada elde ettiğiniz sonuç tam olarak iki fonksiyonun
Bu değerin sayısal karşılığı için evalf(…) komutu kullanılabilir; çarpımının türevi öyle değil mi!
> evalf(%); > diff(f(x)/g(x),x);
2.253380768
f( x ) f( x ) ⎛⎜⎜ g( x ) ⎞⎟⎟
d d
dx
− ⎝ dx ⎠
% işareti bir önceki çıktıyı (mavi renkli satır) işaretin g( x ) g( x ) 2
kullanıldığı komutun girdisi olarak kullanılmasını sağlar!
Bu sonuç da iki fonksiyonun bölümünün türevi olsa gerek ama
Çok değişkenli fonksiyonların kısmi türevlerini de şekil olarak benzemiyor! Sadeleştirelim;
hesaplayabiliriz;
> simplify(%);
> f:=(x,y)->x^2*y+sin(x*y)/ln(x); ⎛ d f( x ) ⎞ g( x ) − f( x ) ⎛ d g( x ) ⎞
sin( x y ) ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
f := ( x, y ) → x 2 y + ⎝ dx ⎠ ⎝ dx ⎠
ln( x ) g( x ) 2

Evet! Şimdi tam olarak alışık olduğumuz bölümün türevi


> diff(f(x,y),x); kuralına ulaştık öyle değil mi! ☺
1.4.8 İntegral Hesaplama
cos( x y ) y sin( x y )
2xy+ −
ln( x ) ln( x ) 2 x Çoğu zaman matematik derslerimizdeki problemlerimizi çözmek
için kurduğumuz integralleri hesaplama güçlüğü ile karşı karşıya
> diff(f(x,y),y); gelebiliriz.
cos( x y ) x
x2 + Maple sayesinde bu hesaplamaları bilgisayara havale edip
ln( x )
düşünmeye ve üretmeye daha fazla zaman ayırabilirsiniz.

Yukarıda, iki değişkenli bir fonksiyonun önce x’e gore sonra da İntegral alma için kullanacağımız komut
y’ye gore türevleri hesaplanmıştır. int(fonksiyon,itegrasyon değişkeni veya aralığı) dır.

Aşağıdaki örnekleri inceleyiniz;


Şimdi de Maple’ın sembolik hesaplamalar yapabilme
özelliğinden yararlanalım; > f:=x->sin(x)*cos(x);
f := x → sin( x ) cos( x )
> restart;
> int(f(x),x);
> diff(f(x)*g(x),x);
1
⎛ d f( x ) ⎞ g( x ) + f( x ) ⎛ d g( x ) ⎞ sin( x ) 2
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ 2
⎝ dx ⎠ ⎝ dx ⎠

36 37
Yukarıda, fonksiyonun x’e gore belirsiz integrali hesaplanmıştır. > a:=n->n/(n+1);
Eğer x için belli bir aralık aşağıdaki gibi tayin edilirse belirli integral n
a := n →
hesabı da yapılabilir; n+1
> a(25);
> int(f(x),x=1..2); 25
1 1 26
− sin( 1 ) 2 + sin( 2 ) 2
2 2
> evalf(%); Bu tanımlama sayesinde dizinin istediğimiz indisli elemanını
0.0593741960 bulma fırsatını elde etmiş olduk. Dizinin limitini hesaplayalım;

1.4.9 Dizi ve Seri Tanımlama > limit(a(n),n=infinity);


1
Bir sayı dizisi veya serisi tanımlama ihtiyacı ile karşı kaşıya
kaldığımız durumlar olacaktır. Bu ihtiyacımızı nasıl Zaten yukarıda tanımlı dizinin limitinin 1 olduğunu analiz
karşılayacağımızı aşağıdaki örneklerde inceleyelim. bilgilerimizden biliyoruz. ☺

Dizi anlamına gelen sequence kelimesinin kısaltılmışı olan


infinity, sonsuz anlamına gelen bir kelimedir.
seq(….) komutu ile sayı dizileri tanımlayabiliriz.
Maple’da da aynı kelimeyi sonsuz anlamında
kullanırız!

> a:=seq(n^2,n=1..10);
a := 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 Toplam anlamına gelen sum kelimesinden üretilen sum(….)
komutunu kullanarak seriler tanımlayabiliriz.
2
Yukarıda an = n dizisinin ilk 10 elemanını yazdırdık.
> sum(sin(n)/n,n=1..infinity);

Tanımlanan dizinin 2. elemanını aşağıdaki gibi başka

sin( n )
komutların içinde kullanabiliriz; n
n=1
> a[2];
a[2]^2; Yukarıda tanımladığımız serinin kısmi toplam dizisini bir A(k)
4 fonksiyonu olarak aşağıdaki gibi tanımlayabiliriz.
16
> A:=k->sum(sin(n)/n,n=1..k);
k
sin( n )
seq(...) komutu yardımı ile ancak sonlu elemanlı diziler
tanımlayabileceğinize dikkat ediniz.
A := k → ∑ n
n=1

Eğer matematiksel anlamda gerçek bir dizi tanımlamak > limit(A(k),k=infinity);


istiyorsanız dizinin doğal sayılardan reel sayılara tanımlı bir k

fonksiyon olduğundan yola çıkarak aşağıdaki gibi bir tanımlama da sin( n )
lim
yapabilirsiniz; k→∞ n=1 n

38 39
Kısmi toplam dizisinin limitini almak istediğimizde Maple bize Normal denklemleri çözerken kullandığımız solve(…) komutuna
yukarıdaki sonucu vermiştir. Bu durum, Maple’da tanımlanmış
analitik limit alma yöntemlerinin bu fonksiyon için sonuç vermediği benzer olarak diferansiyel denklem çözmemizi sağlayan komut
anlamına gelmektedir. dsolve(…..) komutudur.

Grafik çizerek, sayısal bir yaklaşım ile serinin karakteri > dsolve(A);
hakkında fikir sahibi olabiliriz. 1 2
f( x ) = x − 2 x + _C1
2
> plot(A(k),k=1..10000);

Fonksiyonun türevi alınınca sabitin türevi sıfır olduğundan


çözüm olarak bulunan fonksiyonun sonuna bir _C1 sabiti
eklenmiştir.

Biraz daha karmaşık bir fonksiyonun tanımlandığı bir örnek


daha görelim;

> B:= diff(y(x),x)-y(x)+y(x)+sin(x)-cos(x)=x;


B := ⎛⎜⎜ y( x ) ⎞⎟⎟ + sin( x ) − cos( x ) = x
d
⎝ dx ⎠
Kısmi toplam dizisinin ilk 10000 elemanının davranışını gördük. > dsolve(B);
Buna göre serinin 1,05 ile 1,1 arasındaki sayıya yakınsadığını x2
söyleyebiliriz. y( x ) = cos( x ) + sin( x ) + + _C1
2
1.4.10 Diferansiyel Denklem Çözme
Başlangıç değeri atayarak da özel çözümler elde edebiliriz;
Diferansiyel denklem tanımlamak için Maple’da türevin
sembolik olarak ifade edilebilmesinden faydalanacağız; > dsolve({B,y(0)=1});
x2
> A:=diff(f(x),x)+2=x; y( x ) = cos( x ) + sin( x ) +
2

A := ⎛⎜⎜ f( x ) ⎞⎟⎟ + 2 = x
d Yukarıda B diferansiyel denkleminin, y(0)=1 başlangıç değeri
⎝ dx ⎠ için özel çözümü elde edilmiştir. Bu çözümde bir _C1 sabitinin
olmaması gayet doğal öyle değil mi?
Bildiğiniz gibi en basit anlamda, bir f(x) fonksiyonunun Maple yardımı ile çok farklı diferansiyel denklemlerin cinslerini
türevlerinden oluşan denkleme diferansiyel denklem denir. Bu tarz belirleyebilir ve buna bağlı olarak çözümün hangi yöntemle
denklemleri çözümünü aramak demek f(x) fonksiyonunu bulmak çözülmesi gerektiğini Maple’ın tavsiye etmesini sağlayabilirsiniz.
demektir. Yukarıda bu tanıma uygun olarak çok basit bir Denklemlerin sayısal çözümlerini de araştırabilirsiniz.
diferansiyel denklem tanımlanmıştır.

40 41
Daha ayrıntılı bilgi için; > B:=MatrixInverse(A);

> ?dsolve
⎡ -3 5 -1 ⎤
1.4.11 Matris İşlemleri ⎢ ⎥
⎢ 4 4 4 ⎥
⎢ ⎥
⎢ ⎥
Maple, matris tanımlayıp bu matris üzerinde determinant bulma ⎢ 3 -3 1 ⎥
B := ⎢⎢ ⎥

veya satır sütun işlemlerini uygulama gibi hesaplamalar da ⎢ 4 4 4 ⎥
yapabilme imkânı sunar. ⎢ ⎥
⎢ 1 1 ⎥
⎢ ⎥
⎢ -1 ⎥
Matrisin nasıl tanımlanacağını açıklayıp ön bilgi niteliğinde bazı ⎣ 2 2 ⎦
matris işlemlerinin nasıl yapılacağını açıklayalım;
A matrisinin tersi alınmış ve B adı verilmiştir.
> with(LinearAlgebra):
> MatrixMatrixMultiply(A,B);
Lineer cebir işlemleri de “LinearAlgebra” paketinin içine
yerleştirilmiştir. Yukarıdaki komut ile Lineer Cebir paketi aktif hale ⎡1 0 0⎤
getirilmiştir. ⎢ ⎥
⎢0 1 0⎥⎥

⎢⎢ ⎥
> A:=<<1,2,3>|<3,2,1>|<-1,0,3>>; ⎣0 0 1⎥⎦
⎡1 3 -1⎤
⎢ ⎥
A := ⎢⎢2 2 0⎥⎥ A ve B matrisleri birbiri ile çarpılmıştır. Matrislerdeki çarpma
⎢⎢ ⎥ işlemi özel bir çarpma işlemi olduğundan “MatrixMatrixMultiply”
⎣3 1 3⎥⎦ komutu ile tanımlanmıştır.

Yukarıda bir matris tanımlanmıştır. Maple yardımı ile birkaç Daha fazla bilgi için;
farklı şekilde matris tanımlanabilmektedir. Yukarıda bunlar
arasında bütün matris işlemlerinde sorunsuz kullanılabilen bir > ?LinearAlgebra
versiyon tercih edilmiştir.

1.5 ÖRNEK HATA MESAJLARI


Matrisin nasıl tanımlandığını kısaca açıklayalım;

<<1. sütun>|<2. sütun>| . . . |<n. sütun>> Maple programını kullanırken programın karakteristik
özelliklenden dolayı bazen çeşitli hata mesajları ile
Her bir sütun arasındaki | işareti “AltGr+<>” tuş karşılaşabilirsiniz.
kombinasyonu ile elde edilmektedir.
Bu mesajlar çoğu zaman komutlara ait (syntax) söz dizimi
hatalarından kaynaklanır.
> Determinant(A);
-8 Bu mesajlarla daha az karşılaşmak için bu kitaptan
yararlanmaya başlamadan önce Maple ile ilgili genel bilgiler veren
A matrisinin determinantı alınmıştır. bu bölümü dikkatle incelemenizde fayda vardır.

42 43
Bütün dikkatinize rağmen hata mesajları yakanızı Örnek durum–3:
bırakmayabilir. Bu durumun çalışma azminizi azaltmasına
müsaade etmeyin. Maple programının özelliklerine hâkim olmaya > with(plots):
başladığınızda daha az hata mesajı ile karşılaşacaksınız. Warning, the name changecoords has been redefined

Bir kullanıcı olarak sıklıkla karşılaşabileceğiniz hatalar ve Bu bir hata mesajı değildir! Aldırmayın ☺
çözüm önerileri bu başlık altında derlenmiştir.
> implicitplot(x^2*y,x=-2..2);
Örnek durum–1: Error, (in ProcessOptions) ArgList must have at
least 3 entries, but only has 2
> diff(sin(x),x)
Warning, premature end of input Kullanılan komutun en az üç girdisi olması gerektiği ama
sadece iki girdi tanımlandığı bildirilmiştir.
Komut satırının eksik olduğu bildirilmektedir. Komut satırının :
veya ; işaretleri ile bitirilmesi eksik bırakılmıştır. Bu örnekte ele alınan kapalı fonksiyonların grafiklerinin
çizilebilmesi için fonksiyon, 1. değişkenin sınırları ve 2. değişkenin
> diff(sin(x),x); sınırları olmak üzere en az üç girdi tanımlanmalıdır.
cos( x )
> implicitplot(x^2*y,x=-2..2,y=-2..2);

Örnek durum–2:

> diff(sin(x),x=2);
Error, wrong number (or type) of parameters in
function diff

Komut içinde hatalı bir kullanım olduğu bildirilmektedir. Bu


mesaj ile karşılaştığınızda komutun kullanım özelliğini inceleyiniz
ve matematiksel anlamını hatırlamaya çalışınız.

Bu örnekte türev alınmaya çalışılmaktadır. Maple bu tanımlama


ile x=2 sabit noktasındaki türevi direk olarak bulamaz. Önce türev
alınmalı daha sonra x=2 noktasındaki değer hesaplanmalıdır.

Zaten bilgisayar kullanmadığımız zamanlarda da bu tarz


hesaplamaları nasıl yaptığımızı hatırlayın!

> diff(sin(x),x); Örnek durum–4:


cos( x )
> implicitplot(x^2*y,x=-2..2,y=-2..2);
> subs(x=2,%);
cos( 2 ) implicitplot( x 2 y, x = -2 .. 2, y = -2 .. 2 )

44 45
Yukarıdaki grafiği çizdirmek için kullandığımız komut bu sefer > a:=2;
farklı bir sonuç vermiştir. Bu mesaj tam olarak bir hata değildir. a := 2
Komutun yazımında hiçbir hata olmadığı durumlarda ya > f:=x->x^2;
yukarıdaki gibi komut aynen “çıktı” olarak görüntülenir ya da Maple f := x → x 2
hiçbir sonuç vermez. Bu durumun çeşitli sebepleri vardır. Bazıları;
> plot(f(x),x=b..a);
Ancak bir paketin aktif edilmesi ile çalışır duruma gelebilecek
Error, (in plot) range values must be real
komutları paketi aktif hale getirmeden kullanmaya çalışmak.
constants
! Çalışma sayfası içinde with(paket_adı) komutu
Bu veya benzeri mesajlarla kitabın ilerleyen bölümlerinde sıkça
çalıştırılmış ve bu çalışma sayfası kaydedilerek kapatıldıktan karşılaşabilirsiniz.
sonra tekrar açılmış ise with(paket_adı) komutunu tekrar
çalıştırmak gerekir. 2. ve 3. bölümlerde, bazı komutlarda kullanılan değişken ve
fonksiyonlar daha önce tanımlanmış ve komutun içinde
! Çalışmanız sırasında restart komutunu kullanarak değişkenlerin sayısal değerleri yerine tanımlamada kullanılan
çalışma sayfasında yapılan bütün işlemleri sıfırlamış isimleri kullanılmıştır (yukarıdaki örnekte olduğu gibi!).
olabilirsiniz. Bu durumda da with(paket_adı) komutunu
tekrar çalıştırmak gerekir. Özellikle, bazı komutların ileri düzey ve karmaşık
kullanımlarından etkilenmemeniz ve komutun ürettiği sonuçları
Kullandığınız matematiksel operatörün sonucunun olmaması. sadece tanımlanan değişkenleri ve fonksiyonları değiştirerek
gözlemleyebilmeniz için bu tarz bir uygulamaya gidilmiştir.
! Örneğin, bir denklem çözmeye çalışıyorsunuz ve bu
denklemin çözümü yok ise komut satırının aynısını elde Ancak, herhangi bir bölüm üzerinde çalışırken Maple’ı kapatıp
edebilirsiniz. tekrar açtıktan sonra, kaldığınız yerden çalışmaya devam etmek
isterseniz, yukarıdaki gibi bir hata mesajı ile karşılaşabilirsiniz.
! Maple bir bilgisayar cebiridir ve matematiksel operatörlerin
nasıl işleme alınacağı çeşitli yöntemler ile programlanmıştır. Böyle bir durumda o bölüme ait çalışma sayfasındaki bütün
Maple istediğiniz işlemi bazen yapamayabilir yani komut satırlarını tekrar çalıştırmanız yeterlidir.
programlanmış tüm alternatifler çözüm için uygun olmayabilir.
Örnek durum–6:
! Örneğin, bir integrali Maple hesaplayamayabilir. Bu
“Maple’da programlanan hiçbir integrasyon yöntemi verilen > B:=plot(sin(x),x=0..1);
integrali çözmeye yeterli değildir” anlamına gelir. Bu
durumda yine Maple’dan yararlanmaya devam etmek
mümkündür. Fonksiyonun grafiği incelenip yine Maple yardımı B := PLOT ( CURVES( [ [ 0., 0. ], [ 0.0217971541666666658 , 0.0217954281784747094 ],
ile sayısal yöntemler denenebilir. [ 0.0407627414583333348 , 0.0407514538268699476 ],
[ 0.0620915279166666667 , 0.0620516380971044765 ],
Örnek durum–5: [ 0.0835616954166666648 , 0.0834644836461559820 ],
[ 0.104929818958333324 , 0.104737374046848838 ],
> b:=1;
b := 1

46 47
Çizim elemanlarına isim verilmesi durumu, birden fazla çizim
elemanını display komutunu kullanarak aynı koordinat
sisteminde görüntülemek için kullanılmaktadır.

Çizim elemanlarına isim verildiğinde komut “;” işareti ile


bitirilirse yukarıdaki gibi bir sonuçla karşılaşırsınız. Bu tarz komutlar
“:” işareti ile sonlandırılmalıdır.

BÖLÜM – 2
Bu bölümde bazı Genel Matematik kavramlarının, Maple
programının sunduğu görsel ve cebirsel imkânlardan yararlanarak
kavramsal alt yapılarının nasıl incelenebileceğine dair öneriler
sunulmuştur.

Seçilen kavramlar belirgin bir matematik dersine ait değildir.


Maple programı ile neler yapılabileceğini öğrendikçe, burada
sunulan kavramlar hakkında daha farklı etkinlikler geliştirebilir ya
da burada göreceğiniz etkinlikleri daha farklı matematik
kavramlarına uyarlayabilirsiniz.

Ayrıca bu bölümde, çeşitli matematik kavramları ile ilgili


uygulamalar yürütürken Maple programını da öğrenmeye devam
edeceksiniz.

48 49
Yukarıda atanan a ve k değerleri sırasıyla x’in yaklaşacağı a
2.1 FONKSİYONLARIN LİMİTLERİNİ ARAŞTIRALIM değerini ve yaklaşımın a’ya kaç birim uzaktan başlayacağını
belirlemektedir. Bu değerleri istediğiniz gibi değiştirebilirsiniz. Fakat
“Bir fonksiyonun limiti kavramı” ortaöğretim yıllarımızdan aşağıdaki komut satırına müdahale etmemeniz daha iyi olur.
başlayarak yakamızı bırakmayan ve ileri matematik kavramlarının
birçoğunun temeli olan kavramlardan birisidir. > C:=plot(f(x),x=a-k..a+k):

Matematik kitaplarımızın, limit kavramına başlarken vermiş > animate(pointplot,[[[a-t*k,0], [a-t*k,f(a-


t*k)],[0,f(a-t*k)],[0,0],[a+t*k,0],
oldukları tanımları, çoğu zaman anlama gayreti içinde olmadan,
[a+t*k,f(a+t*k)],[0,f(a+t*k)]], color=blue,
örnek problemleri kolayca çözebilmemizi sağlayan pratik
style=line,linestyle=3],t=1..0.00000001,backgroun
bilgilerimiz üzerinde yoğunlaşırız.
d=C,frames=100);
Bu pratik bilgilerimiz de hemen hemen bütün limit sorularını bir
şekilde yapabilmemizi sağladığından temel bir kavram olan limitin,
aslında yüksek matematiğe ait birçok kavramın varlık sebebi
olduğunu gözden kaçırırız.

Özellikle bazı uygulamalarımızda, x a’ya yaklaşırken f(x)’in


limitini doğrudan f(a) şeklinde hesaplarken kimi zamanda farklı
uygulamalar yapmamız bazı kavram yanılgıları ile yetişmemize
sebep olabilir.

Bu uygulamada kavramın teorik alt yapısı üzerinde fazla


durmadan Maple yardımı ile düşünmeye sevk edici bazı etkinlikler
sunulmuştur.

2.1.1 Limitin İnformal Tanımı

> with(plots): with(plottools):

Aşağıda örnek bir fonksiyon seçilmiştir. Siz bu örneği


inceledikten sonra kendi belirlediğiniz fonksiyonlar üzerinde de
çalışabilirsiniz.
Animasyon sırasında, belirlenen aralıkta kaç kare
> f:=x->sin(x)/x; oynatılacağını belirleyen opsiyon frame’dir.
sin( x )
f := x →
x Yukarıdaki animasyonu inceledikten sonra aşağıdaki komutlar
yardımı ile a’ya yakın olan x değerlerinin görüntülerinin nasıl
> a:=0; davrandığını sayısal olarak inceleyebilirsiniz;
a := 0
Aşağıda belirlenen b ve m sayıları sırasıyla kaç adım yaklaşım
> k:=1; yapılacağını ve hesaplamanın ondalık duyarlılığını göstermektedir.
k := 1

50 51
> b:=10;
m:=10; Yukarıda elde edilen matrisin birinci sütunu a’ya (bu örnekte
b := 10 a=0) sol taraftan yaklaşan x değişkenlerini ikinci sütunu ise f(x)
m := 10 değerlerini göstermektedir.

> array( [seq([ evalf( a + 10^(-k), m), evalf(f( Hem grafik üzerindeki animasyonda hem de sayısal yaklaşımda
a + 10^(-k)), m)],k = 1..b)]); görülebildiği gibi a’ya çok yakın olan x değişkenlerinin görüntüleri
aynı sayıya (bu örnekte 1) yakın olmaktadır.
⎡ 0.1000000000 0.9983341665 ⎤
⎢ ⎥
⎢ 0.01000000000 0.9983341665 ⎥⎥
⎢ Burada bahsi geçen “çok yakın” tabirinin daha matematiksel
⎢ ⎥ karşılığı “sonsuz küçük kadar yakın” dır.
⎢ 0.001000000000 0.9983341665 ⎥⎥

⎢ 0.0001000000000 0.9983341665 ⎥⎥
⎢ Şimdi aşağıdaki hesaplamalara bir göz atın;
⎢ ⎥
⎢0.00001000000000 0.9983341665 ⎥⎥

⎢ ⎥ > f(a);
⎢ 0.1000000000 10 -5 0.9983341665 ⎥⎥
⎢ Error, (in f) numeric exception: division by zero
⎢ ⎥
⎢ 0.1000000000 10 -6 0.9983341665 ⎥⎥

⎢ ⎥
⎢ 0.1000000000 10 -7 0.9983341665 ⎥⎥ Bu mesaj bir hata mesajı olmakla beraber matematiksel

⎢ ⎥ bir gerçek konusunda bizi uyarmaktadır.
⎢ 0.1000000000 10 -8 0.9983341665 ⎥⎥

⎢ ⎥
⎢⎢ 0.1000000000 10 -9 0.9983341665 ⎥⎥⎦
a değişkeninin f kuralı altındaki değeri bir sıfır ile bölme
⎣ içermektedir dolayısı ile tanımsızdır.
Yukarıda elde edilen matrisin birinci sütunu a’ya (bu örnekte
a=0) sağ taraftan yaklaşan x değişkenlerini, ikinci sütunu ise f(x)
değerlerini göstermektedir. > limit(f(x),x=a);
1
> array( [seq([ evalf( a - 10^(-k), m), evalf(f(
a - 10^(-k)), m)],k = 1..b)]); f(x) fonksiyonu a noktasında tanımsız olmasına rağmen limiti 1
⎡ -0.1000000000 0.9983341665 ⎤ olarak elde edilmiştir.
⎢ ⎥
⎢ -0.01000000000 0.9999833334 ⎥⎥
⎢ Şimdi tamamen kendiniz belirlediği fonksiyon ve a değeri ile
⎢ ⎥
⎢ -0.001000000000 0.9999998333 ⎥⎥ denemeler yapın ve üzerinde şu noktalar üzerinde daha derin

⎢ -0.0001000000000 0.9999999983 ⎥⎥ düşünmeye çalışın;

⎢ ⎥
⎢-0.00001000000000 1.000000000 ⎥⎥
⎢ • Kendi kurduğunuz cümleler ile bir limit tanımı geliştirebilir
⎢ ⎥
⎢ -0.1000000000 10 -5 1.000000000 ⎥⎥ misiniz?

⎢ ⎥
⎢ -0.1000000000 10 -6 1.000000000 ⎥⎥
⎢ • f(a) değerinin tanımlı olmasına rağmen limitin olmadığı örnekler
⎢ ⎥
⎢ -0.1000000000 10 -7 1.000000000 ⎥⎥
için ne dersiniz? Böyle örnekler bulup gözlemleyin.

⎢ ⎥
⎢ -0.1000000000 10 -8 1.000000000 ⎥⎥

⎢ ⎥
⎢⎢ -0.1000000000 10 -9 1.000000000 ⎥⎥⎦

52 53
2.1.2 Limitin Formal Tanımı f := x → piecewise ( x < 1, e x , e x + 0.01 )
a := 1
Şimdi de anlamaya çoğunlukla pek çalışmadığımız limit
tanımını inceleyelim; L := e
ε := 1
Tanım: 1
δ :=
100
f(x), Reel sayıların bir alt kümesinde tanımlı ve xo
noktasında tanımlı olması gerekmeyen bir fonksiyon olsun; Yukarıda sırasıyla, bir fonksiyon, yaklaşılacak a değeri, Limit
değeri, epsilon ve delta değerleri tanımlanmıştır.
Her pozitif ε reel sayısına karşılık, ⏐f(x) – L⏐< ε eşitsizliğini
sağlayan x bağımsız değişkenleri için ⏐x – xo⏐< δ olacak Aşağıdaki komut topluluğunu çalıştırarak elde edeceğiniz grafiği
şekilde en az bir pozitif δ reel sayısı varsa, x xo’a yaklaşırken inceleyiniz.
f(x) fonksiyonunun limiti L’dir denir ve
> E:=plot([f(x),L-epsilon,L+epsilon],x=a-
lim = L 2*delta..a+2*delta,y=L-2*epsilon..L+2*epsilon,
x → xo thickness=[1,2,2],color=[blue,black,black],discon
t=true):
Şeklinde gösterilir.
> F:=implicitplot([x=a-delta,x=a+delta],x=a-
2*delta..a+2*delta,y=L-2*epsilon..L+2*epsilon,
Bu tanımın, bir fonksiyonun limitini nasıl ifade ettiğini thickness=3,color=red):
açıklayabilir misiniz?
> display(E,F);
Aşağıdaki etkinliği yeterli miktarda uygulayıp üzerinde
düşünerek tanımı anlamaya çalışınız.

> restart;
> with(plots): with(plottools):

> f:=x->piecewise(x<1,exp(x),exp(x)+0.01);
a:=1;
L:=exp(1);
epsilon:=1;
delta:=1/100;

piecewise(…) komutu parçalı fonksiyon tanımlamak


için kullanılmaktadır. Kullanım şekli aşağıdaki gibidir;

> piecewise(şart, şart doğru ise alınacak


değer, şart yanlış ise alınacak değer);

54 55
Aşağıdaki sorular ışığında düşünmeye ve formal tanımı aralık (e, f) olarak isimlendirilirse, δ’nın x0 − e veya x0 − f ’den
anlamaya çalışınız;
küçük olanı olarak belirlenmesi yeterli olacaktır.
Seçilen her ε için belli bir özelliği sağlayan bir δ aranıyor. Bu Yukarıdaki şekil üzerindeki ABCD dikdörtgeni Maple yardımı ile
özellik, yani ε ile δ arasındaki ilişki nedir? ürettiğimiz grafikteki kırmızı dikey doğrular ile siyah yatay
doğruların oluşturduğu dikdörtgeni temsil etmektedir.
Grafikteki siyah renkli doğruların oluşturduğu aralık ve kırmızı
renkli doğru aralıklar tanımda nasıl belirtilmiştir?
Verilen ε için belirlenen δ’nın uygunluğunun ancak eğrinin
dikdörtgen içine AD kenarından girip BC kenarından çıkması ile
Yukarıdaki örnekte verilen fonksiyon ve seçilen ε ile δ mümkün olduğuna dikkat ediniz.
değerleri tanımı sağlıyor mu?
Bir fonksiyonun formal limit tanımını sağlayıp sağlamadığını
ε değerini değiştirin ve belirlediğiniz her ε değeri için uygun δ cebirsel olarak nasıl kontrol edebiliriz? Yukarıda öğrendiklerimiz
belirlenip belirlenemeyeceğini araştırın. ışığında aşağıdaki cebirsel örneği inceleyiniz.
Şimdi bu etkinliği kendi belirlediğiniz fonksiyonlar için 1
tekrarlayın. Bu tanımla ilgili aşağıdaki açıklamalara en son Örnek: lim = 1 olduğunu gösteriniz.
x →1 x
başvurun.
1
Çözüm: ∀ ε > 0 için ⏐x – 1⏐< δ olacak şekilde ⏐ – 1⏐< ε
x
özelliğini sağlayan en az bir pozitif δ bulalım;

1 1 1− x
−1 < ε ⇒ − ε < −1 < ε ⇒ − ε < <ε
x x x

D C Biz, 1’in komşuluğundaki x’ler için çözüm aradığımızdan x > 0


L+ε
dır. Dolayısı ile eşitsizliği x ile genişletebiliriz.
L
L-ε A B −ε x < 1 − x < ε x I ve II eşitsizliklerini ayrı ayrı çözüp elde
ettiğimiz çözüm kümelerinin arakesitini
I II bulalım

1
−ε x < 1 − x ⇒ − ε x + x < 1 ⇒ x (1 − ε ) < 1 ⇒ x < ………….(I)
x xo+δ 1− ε
xo-δ
(ε çok küçük bir pozitif sayı olduğundan 1 - ε pozitiftir.)
1
1 − x < ε x ⇒ ε x + x > 1 ⇒ x (1 + ε ) > 1 ⇒ x > …………….(II)
1+ ε
Yukarıdaki şekilde (L-ε, L+ε) aralığı ⏐f(x) – L⏐< ε eşitsizliğinin
gösterimidir. Bu eşitsizliğin çözüm kümesi ise x-ekseni üzerinde
kırmızı ile belirlenen aralıktır. Ancak xo bu kırmızı aralığın içinde ise
xo’ın bir δ komşuluğu bu kırmızı aralık içine gömülebilir. Bu
komşuluk şekilde mavi ile gösterilmiştir. Görüldüğü gibi, kırmızı

56 57
I II
2.2 BİR SAYI DİZİSİNİN LİMİTİ VE YIĞILMA NOKTASI
ARASINDAKİ FARKI İNCELEYELİM
1 1 Sayı dizilerinin limiti ve yığılma noktası arasındaki fark ve
1+ ε 1− ε benzerliği ayırt etmeye çalışacağız.

(I) ve (II) numaralı çözüm kümelerinin arakesitini bulalım; 2.2.1 Reel Sayı Dizileri

⎛ 1 1 ⎞ İlk olarak reel sayı dizilerini ele alalım;


Buradan çözüm kümesinin ⎜ , ⎟ elde edildiği
⎝1+ ε 1− ε ⎠
Bildiğiniz gibi diziler doğal sayılardan reel sayılara tanımlı
görülmektedir.
fonksiyonlardır. Tanım kümesi doğal sayılardan oluştuğu için her
bir n bağımsız değişkeni için elde edilen görüntüyü dizinin n.
1 1 elemanı olarak adlandırmaktayız.
Pozitif ε sayısı için 1 − ε < 1 < 1 + ε ⇒ <1< olduğu, yâni
1+ ε 1− ε
⎛ 1 1 ⎞ Peki, bir dizinin limiti ile yığılma noktası ne anlama gelmektedir.
1∈ ⎜ , ⎟ olduğu görülmektedir. Bu sorunun cevabını vermeden önce aşağıdaki örnekleri
⎝ 1+ ε 1− ε ⎠
inceleyelim;
Bu durumda > with(plots): with(plottools):

⎧ 1 1 ⎫ ⎧ ε ε ⎫ ε Aşağıdaki gibi bir a(n) dizisi tanımlayalım;


δ ≤ min ⎨ 1 − , 1− ⎬ = min ⎨ , ⎬= olarak elde
⎩ 1+ ε 1− ε ⎭ ⎩1 + ε 1 − ε ⎭ 1 + ε
edilir. > a:=n->(n^2+1)/(n^2-3);
n2 + 1
a := n →
n2 − 3
DİKKAT! Bu etkinlik x değişkeninin sonlu bir sayıya yaklaştığı
ve limitin sonlu olduğu durumlar için üretilmiştir. Aksi durumlar için
etkinlik üzerinde düzenlemeler yapmak gerekir. Aşağıdaki komutlar sayesinde dizinin ilk k elemanının koordinat
düzlemi üzerinde işaretleyelim;

> k:=50:
B:=seq([n,a(n)],n=1..50):
pointplot([B]);

58 59
Görüldüğü gibi, n arttıkça a(n) elemanları 1’in yakınlarında
değerler almaktadır. k değeri arttırılarak gözleme devam edilebilir.

Şimdi örneği biraz değiştirelim ve diziyi b(n) olarak


adlandıralım;

> b:=n->(-1)^n*(n^2+1)/(n^2-3);
( -1 ) n ( n 2 + 1 )
b := n →
n2 − 3

> k:=50:
B:=seq([n,b(n)],n=1..50):
pointplot([B]); a(n) dizisinin elemanları ardışık olarak 1’in yakınlarında
oluşmaktadır.

> animate(pointplot,[[n,b(n)], thickness=5,


color=blue],n=1..50,frames=50);

Bu örnekte n arttıkça görüntü, yani b(n) elemanlarının bir kısmı


1 yakınlarında bir kısmı ise -1 yakınlarında değerler almaktadır.

Şimdi a(n) ve b(n) dizisinin elemanlarının nasıl oluştuğunu


canlandıralım;

> animate(pointplot,[[n,a(n)], thickness=5,


color=blue],n=1..k,frames=k); b(n) dizisinin elemanlarının oluşumunda ise bir farklılık göze
çarpmaktadır. Dizinin n. elemanı 1 yakınında ise (n+1). elemanı -1
yakınındadır. Animasyonun hızını iyice azaltarak izlerseniz bu
durumu daha net gözleyebilirsiniz!

60 61
> limit(a(n),n=infinity);
Bu gözlemlerimizden neler anlamalıyız? 1
Yığılma noktası için de limit için de bir sayı kümesinin Gözlemimiz neticesinde farkına vardığımız sonuç gibi, a(n)
elemanlarının sonsuz tanesinin belli bir sayı etrafında toplanması dizisinin limitinin 1 olduğunu hesapladık.
tanımını algılamaktayız.
> limit(b(n),n=infinity);
Tek başına bu tanım düşünüldüğünde yukarıdaki iki örnekte de
“limiti nedir?” ve “yığılma noktası nedir?” sorularına vereceğimiz -1 .. 1
cevaplar yanıltıcı olabilmektedir.
Bu sonuç ise n sonsuza doğru gittikçe, b(n) dizisinin
Tabii yukarıda bahsettiğimiz tanım yığılma noktası için doğru da elemanlarının 1 ile -1 arasında sürekli değiştiğini göstermektedir.
olsa limit için doğru değildir. Şimdi tanımları hatırlayalım; Bu durumu limitin olmadığı şeklinde anlamalıyız.
Limit: bir sayı dizisinin belli bir n. elemanından sonraki bütün
elemanlarının bir a reel sayısının pozitif komşuluğunda kalması Bu aşamada genel bir uyarıda bulunmak gereklidir.
durumuna dizinin limiti a’dır denir ve lim a( n ) = a şeklinde
n →∞
Bu etkinlikte olduğu gibi bir dizinin sonlu sayıda
gösterilir. elemanının davranışını incelemek, dizinin limiti ya da
elemanlarının genel davranışı hakkında kesin bir sonuç
Dizinin ilk sonlu elemanı hariç geride kalan bütün elemanlarının çıkartma hakkını bize sunmaz.
a’nın komşuluğunda toplanması olarak da tanımlanabilir.
Kitabın diğer bölümlerinde de rastlayacağınız bu gibi
Yığılma noktası: Bir a reel sayısının her pozitif komşuluğunda etkinlikler bize bir bakış açısı kazandırmak için
sayı kümesinin en az bir elemanı varsa a’ya kümenin yığılma tasarlanmıştır ve kesin bir hükme varmak için cebirsel
noktası denir. ispat teknikleri ile desteklenmelidir.
Kümenin sonsuz elemanın a’nın komşuluğunda toplanması Bu ispatları hatırlamanız ve burada karşılaştığımız
olarak da tanımlanabilir. görsel sonuçlarla sentezlemeniz önerilir.
Yukarıdaki birinci örnekte 1 hem yığılma noktası hem de dizinin
limitidir. İkinci örnekte ise 1 ve -1 yığılma noktasıdır fakat ikisi de
limit değildir. Çünkü canlandırmada da görüldüğü gibi ilk sonlu 2.2.2 Karmaşık Sayı Dizileri
sayıda elemanın haricinde kalanların ne 1’in ne de (-1)’in etrafında
toplandığı söylenemez. 1 ve (-1)’in etrafında sonsuz eleman Karmaşık sayı dizileri de, tanım kümesinin doğal sayılar olduğu
toplanmaktadır. Ancak elemanların oluşum sırasının canlandırıldığı bir fonksiyondur. Ancak görüntü kümesi karmaşık düzlem olduğu
animasyonlarda görülebileceği gibi bu toplanma n. ve (n+1). için karmaşık sayı dizilerinin elemanlarını karmaşık düzleme
Elemanların sırasıyla dağılması şeklindedir. işaretlediğimizde daha farklı bir görünüm elde ederiz.

Bu uygulamadan sonra yığılma noktasının birden fazla


olabileceği ama limitin bir tane olması gerektiğini de daha iyi
anlamış olmalısınız!

62 63
> A:=seq(z(n),n=1..10000):
pointplot([A],color=black);

IN
(Tanım kümesi)

Karmaşık düzlem
(Görüntü kümesi)

Bir karmaşık sayı dizisini sembolik olarak z(n) = a(n) + b(n)i


şeklinde ifade edebiliriz. Burada a(n) dizinin n. elemanının reel
kısmı, b(n) ise dizinin n. elemanının imajiner kısmıdır.

Reel sayı dizileri için üretilen etkinliğe benzer olarak, aşağıda


karmaşık sayılar için düzenlenen etkinliği inceleyiniz;

> restart:
Aşağıdaki komut yardımı ile dizinin elemanlarının nasıl
⎛ 1 ⎞ oluştuğunu inceleyin ve dizinin yığılma noktası ve limiti hakkında
z( n ) = ( −1)n + ⎜ ⎟ i dizisini Maple programında, aşağıdaki
⎝ n +1⎠ bir tahmin yürütün.
gibi n bağımsız değişkeninin bir sıralı ikili ile eşlenmesi şeklinde
> animate(pointplot,[[z(n)], thickness=5,
tanımlayalım;
color=blue],n=1..500,frames=500);
Bu sıralı ikilinin birinci elemanı dizinin elemanının reel kısmı,
ikinci elemanı ise imajiner kısmıdır. • Animasyonu Maple’de izleyebilirsiniz.
• Noktaların nasıl oluştuğunu daha iyi
> z:=n->[(-1)^n,1/(n+1)]; anlamak için yavaşlatmanız önerilir.

f := n → ⎡⎢⎢ ( -1 ) n,
1 ⎤
⎥ Aşağıdaki komutlar yardımı ile sırasıyla z(n) dizisi olarak
⎣ n + 1 ⎥⎦ tanımlanan sıralı ikilinin 1. ve 2. elemanlarının limitleri
hesaplanmıştır.
> with(plots): with(plottools):
> limit(z(n)[1],n=infinity);
Aşağıda z(n) dizisinin ilk 10000 elemanı bir dizi olarak limit(z(n)[2],n=infinity);
tanımlanmış ve bu diziye ait noktalar karmaşık düzlem olarak
anlamanız gereken koordinat sisteminde işaretlenmiştir; -1 .. 1
0

64 65
Şimdi dizinin limiti ve yığılma noktası ile ilgili neler
söyleyebilirsiniz? > limit(z(n)[1],n=infinity);
limit(z(n)[2],n=infinity);
Aşağıdaki örnekler, herhangi bir açıklama yapılmadan, sadece 1
Maple komutları ile verilmiştir. Yukarıdaki etkinliğe benzer bir 1
şekilde inceleyiniz.
Örnek–2:
Grafikleri incelemeniz sırasında kendinize şu soruları
sorabilirsiniz; > z:=n->[n*cos(n),sin(n)/(n)];
1- İncelediğim dizinin limiti nedir?
z := n → ⎡⎢⎢ n cos( n ),
2- İncelediğim dizinin yığılma noktası nedir? sin( n ) ⎤

⎣ n ⎥⎦
Örnek–1:
> A:=seq(z(n),n=2..1200):
> z:=n->[(n+1)/(n-1),sin(1/n)/(1/n)]; pointplot([A],color=black);
n+1
z := n → ⎡⎢⎢ , sin⎛⎜⎜ ⎟⎟⎞ n ⎤⎥⎥
1
⎣n−1 ⎝n⎠ ⎦
> A:=seq(z(n),n=2..10000):
pointplot([A],color=black);

> animate(pointplot,[[z(n)], thickness=5,


color=blue],n=2..100,frames=100);
> animate(pointplot,[[z(n)], thickness=5,
color=blue],n=1..500,frames=500);
Komut satırını çalıştırdığınızda Animasyonu görebileceksiniz!
Komut satırını çalıştırdığınızda Animasyonu görebileceksiniz!

66 67
> limit(z(n)[1],n=infinity);
limit(z(n)[2],n=infinity); 2.3 FONKSİYON SERİLERİNİN İNCELENMESİ
undefined
0 Hamurunda sonsuzluk olan her kavram gibi seriler de soyut ve
anlaşılması güç kavramlardır. Reel sayı serilerini bütün bu güçlüğe
Örnek–3: rağmen öğrendikten sonra karşılaştığımız fonksiyon serileri ise,
elemanlarının fonksiyonlar olmasından dolayı karşımıza ekstra bir
> z:=n->[n*cos(n),sin(n)]; güçlük çıkarmaktadır.

z := n → [ n cos( n ), sin( n ) ] Özel bir fonksiyon serisi olan kuvvet serileri ile ilgili bilgilerimizi
yoklayalım ve kendimize şu soruları soralım;
> A:=seq(z(n),n=2..1500):
pointplot([A],color=black); • Yakınsaklık yarıçapı nedir?
• Yakınsaklık aralığı nedir?
• Reel sayı serisinin yakınsak olmasının ne anlama
geldiğini anladık ama bir fonksiyon serisi yakınsak
olunca ne olur?

Aşağıda özel bir örnek üzerinde bir inceleme yapılmıştır.

Örnek:
( 2 x + 3)
n

∑k =1 4 n
serisini inceleyeniz.

Öncelikle Maple’a serimizi bir fonksiyon şeklinde tanıtalım;

> A:=k->sum((2*x+3)^n/(4^n),n=1..k);

( 2 x + 3 )n
k
A := k → ∑ 4n
n=1

Seriyi bu şekilde tanıtmamız sayesinde serinin k. elemanını


> animate(pointplot,[[z(n)], thickness=5, A(k) fonksiyonu ile elde edebileceğiz.
color=blue],n=1..1000,frames=1000);
Aşağıda serinin 5. elemanı elde edilmiştir.
Komut satırını çalıştırdığınızda Animasyonu görebileceksiniz!
> simplify(A(5));
> limit(z(n)[1],n=infinity);
limit(z(n)[2],n=infinity); 1909 2343 347 2 77 3 19 4 1 5
x+ + x + x + x + x
undefined 512 1024 128 64 64 32
-1 .. 1

68 69
Şimdi serinin elemanlarının birer fonksiyon olmasının da ne > plot([A(5),A(8)],x=-5..5,y=-5..5);
anlama geldiğini daha somut olarak görebiliyoruz.

Bu durumda serinin elemanlarını ancak bir koordinat sistemi


üzerinde grafiklerini çizerek görselleştirebiliriz;

> with(plots):

Aşağıda serinin 5. elemanın koordinat sistemi üzerinde


resmedilmiştir.

> plot(A(5),x=-5..5,y=-5..5,color=red);

> plot([A(5),A(8),A(12),A(20)],x=-5..5,y=-5..5);

Reel sayı serilerinin yakınsaklığı için ; “serinin elemanlarının


sonsuz tanesi sayı doğrusuna yerleştirildiğinde bu
elemanların sabit bir sayı etrafında toplanmasıdır.” şeklinde
kaba bir tanım verilebileceğini hatırlayarak, burada ele aldığımız
fonksiyon serisinin elemanlarının sayısını arttırarak grafiğini çizdirip
neler olacağını gözlemleyelim;

70 71
> plot([A(5),A(8),A(12),A(20), A(25),A(32),A(40), > limit(A(k),k=infinity);
A(50)],x=-5..5,y=-5..5); (k + 1)
4 ⎛⎜⎜ + ⎞⎟⎟ 4 ⎛⎜⎜ + ⎞⎟⎟
x 3 x 3
lim ⎝ 2 4⎠
− ⎝ 2 4⎠
k→∞ 2x−1 2x−1

Elde edilen ifadenin limiti x değişkenine bağlı olarak


değiştiğinden Maple tam sonuç vermek yerine yukarıdaki gibi bir
sonuç vermiştir.
Yukarıdaki limitin değerinin ne olduğunu bulmak için bizim
Maple’ın yapmayacağı bir değerlendirmeyi yapıp yardımcı olmamız
gerekiyor.
k +1
⎛ x 3⎞ ⎛ x 3⎞
4⎜ + ⎟ 4⎜ + ⎟
lim ⎝
2 4⎠
− ⎝
2 4⎠
k →∞ 2x −1 2x −1

x 3
İfadesinin limitinin sonlu olması için + < 1 olması gerekir.
2 4
Yukarıda sırayla, koordinat sistemi üzerinde gösterilen eleman
sayısı arttırılmıştır. Bu durumda limitin değeri şöyle hesaplanabilir;

Görüldüğü gibi eleman sayısı arttıkça elde edilen farklı Bu eşitsizliğin çözümü için yine Maple’dan yararlanabiliriz.
fonksiyonlar belli bir aralıkta birbirleri ile çakışmaktadır.
> solve(abs(1/2*x+3/4)<1);
Reel sayı serilerinin yakınsaklığı için zihnimizde yer alan tanımı
RealRange⎛⎜⎜ Open⎛⎜⎜ ⎟⎟⎞, Open⎜⎜⎛ ⎟⎟⎞ ⎟⎟⎞
fonksiyonlar için düşünüp, serinin elemanı olan fonksiyonların belli -7 1
bir fonksiyon etrafında yığılma göstermesini beklediğimizde, ⎝ ⎝2⎠ ⎝2⎠⎠
beklentimize tam olarak ulaşamıyoruz.
⎛ 7 1⎞
Bu yığılmayı ancak belli bir aralık için gözlemleyebiliyoruz. Bu durumda x ∈ ⎜ − , ⎟ için limitin değerinin aşağıdaki gibi
⎝ 2 2⎠
Şekil çizerek sonsuzda neler olup bittiğini tabii ki anlayamayız. hesaplanacağını söyleyebiliriz;
Sonsuzda neler olup bittiğini A(k) fonksiyonu olarak tanımladığımız
serinin k değişkeninin sonsuza giderkenki limitini alarak
k +1 k +1
incelemeye çalışalım; ⎛ x 3⎞ ⎛ x 3⎞ ⎛ x 3⎞ ⎛ x 3⎞ ⎛ x 3⎞
4⎜ + ⎟ 4⎜ + ⎟ 4⎜ + ⎟ 4⎜ + ⎟ 4⎜ + ⎟
lim ⎝
2 4⎠
− ⎝
2 4⎠
= lim ⎝
2 4⎠
− lim ⎝
2 4⎠
= 0− ⎝
2 4⎠
k →∞ 2x −1 2x −1 k →∞ 2x −1 k →∞ 2x −1 2x −1
0

72 73
Serimizin elemanlarının sonsuzdaki davranışı ile yukarıdaki Görüldüğü gibi serinin elemanı olan fonksiyonlar ve seriyi ifade
⎛ x 3⎞ eden serinin sonlu limiti olan fonksiyon belli bir aralıkta
4⎜ + ⎟ çakışmaktadır.
limitin değeri olan − ⎝
2 4⎠
fonksiyonu arasında nasıl bir ilişki
2x −1 Peki, bu çakışmanın olduğu aralık nedir?
olduğunu gözlemleyelim;
Tabii ki limitin sonlu olması için gerekli x aralığıdır.
Aşağıdaki bir dizi komut yardımı ile serinin elemanlarının bir
kısmı ile limitin değeri olan fonksiyonu aynı koordinat sisteminde Son çizdirdiğimiz grafiğe, hem bu aralığı ekleyerek, hem de
çizdirelim; tanım ve görüntü kümelerinin grafiklerini daha iyi
gözlemleyebileceğimiz şekilde belirleyerek tekrar çizelim;
> B:=plot([A(5),A(8),A(12),A(20), A(25),A(32),
A(40),A(50)],x=-10..10,y=-10..10): > B:=plot([A(5),A(8),A(12),A(20),
A(25),A(32),A(40),A(50)],x=-10..10,y=-10..10):
> C:=plot(-4*(1/2*x+3/4)/(2*x-1),x=-5..5,y=-
5..5,color=black,thickness=3,discont=true): > C:=plot(-4*(1/2*x+3/4)/(2*x-1),x=-5..5,y=-
5..5,color=black,thickness=3,discont=true):
> display(B,C);
> E:=implicitplot([x=-7/2,x=1/2],x=-4..1,view=-
10..10,color=blue,thickness=2):

> display(B,C,E);

Serinin limiti olan fonksiyon diğerlerinden daha kalın ve siyah


renkte çizilmiştir.

Neler görüyorsunuz?

74 75
Son olarak, reel sayı serilerinde yakınsamanın yani serinin x’in bu aralığı ise serinin kısmi toplam dizisini
elemanlarının belli bir noktadan sonra sabit bir sayının etrafında ifade eden fonksiyonun sonsuzdaki limitinin
yığılmaya başladığını düşünelim ve fonksiyon serimizin sonsuza sonlu çıkması için gerekli x değerlerinin
daha yakın elemanlarını görüntüleyelim; bulunduğu aralıktır.

> B:=plot([A(25),A(32), A(40),A(50)],x=-10..10, Yukarıda bahsedilen limit bilgisayar yardımı olmadan kolaylıkla
y=-10..10): hesaplanabilen bir limit değildir. Zaten yakınsaklık aralığının nasıl
hesaplandığına dair teorik bilgilerimiz bize bu konuda yardım
> C:=plot(-4*(1/2*x+3/4)/(2*x-1),x=-5..5,y=- etmektedir.
5..5,color=black,thickness=3,discont=true):
Ancak sadece bu bilgiler bize yukarıda kazandığımız kavrayışı
> E:=implicitplot([x=-7/2,x=1/2],x=-4..1,view=- kazandırma noktasında eksik kalabilmektedir.
10..10,color=blue,thickness=2):

> display(B,C,E);

Sonuç olarak fonksiyon serilerinin yakınsaklığı ile ilgili olarak şu


tanımlamayı yapabiliriz;

Fonksiyon serilerinin elemanları olan


fonksiyonların sonsuz tanesi çizildiğinde x’in
belli bir aralığı içinde bu serilerin çakıştığını
görürüz bu aralığı serinin yakınsaklık aralığı
denir.

76 77
Yukarıda önce y = 1 + sin(x) fonksiyonunun grafiği çizilmiş
2.4 KUTUPSAL KOORDİNATLARI ANLAYALIM sonra da benzer şekilde tanımlanan r = 1 + sin(θ) fonksiyonun
grafiği çizilmiştir.
Bu uygulamamızda, Kutupsal Koordinatlar kavramını kısmen de
olsa bildiğinizi varsayıyoruz. Hedefimiz, bu kavram ile ilgili Her iki grafikte oluşan eğrilerin, farklı şekillerde oluşmasının
bilgilerinizi gözden geçirmek ve biraz daha olgunlaştırmak. sebebini açıklayabilir misiniz?

Şimdi, sizi düşünmeniz gereken bir durumla karşı karşıya İki fonksiyon arasında, sadece bağımlı ve bağımsız
bırakmak istiyorum. y = 1 + sin(x) fonksiyonunun grafiğini iki farklı değişkenlerin isimlendirme farkı vardır. Tabii buna da fark demek
şekilde çizelim; doğru değil. Aşağıdaki çizime bakarsanız bunun bir fark olmadığını
daha iyi anlayabilirsiniz;
> with(plots):
> plot(1+sin(theta),theta=0..2*Pi);
> plot(1+sin(x),x=0..2*Pi);

> polarplot(1+sin(theta),theta=0..2*Pi); Gördüğünüz gibi r = 1 + sin(θ) fonksiyonunu da kullansak, y = 1


+ sin(x) fonksiyonu ile aynı grafiği elde edebiliyoruz.

O zaman Maple komutlarından kaynaklanan bir farklılık olsa


gerek. Birinci şekil “plot” ikinci şekil ise “polarpolat” komutları
yardımı ile çizdirilmiştir.

Bu komutların farkı nedir?

Tahmin edebileceğiniz gibi “plot” komutu kartezyen tanımlı bir


fonksiyon çiziyor. Yani fonksiyona ait noktaları kartezyen
tanımlamaya uygun olarak işaretliyor. Kullandığınız değişkenin
adını önemsemiyor.

“polarplot” komutu ise fonksiyona ait noktaları, kutupsal


tanımlamaya göre hesaplama yapıp buluyor ve bulduğu noktaları
koordinat düzleminde işaretliyor.

78 79
> A:=polarplot(1+sin(theta),theta=0..2*Pi):
Bu açıklamaları daha iyi anlamak için aşağıdaki Maple
komutlarını Maple çalışma sayfasına yazın ve elde edeceğiniz > animate(pointplot,[[[0,0],[1+sin(theta),theta]]
animasyonu çalıştırın. ,axes=normal,thickness=2,coords=polar,color=[blue
,red], style=line],theta=0..2*Pi,background=A,
> B:=plot(1+sin(x),x=0..2*Pi): frames=100);

> animate(pointplot,[[[x,0],[x,1+sin(x)],
[0,1+sin(x)]],axes=normal,thickness=2,color=[blue
,red],style=line],x=0..2*Pi,background=B,
frames=100);

Gördüğünüz gibi kutupsal fonksiyonlar ile kartezyen


fonksiyonlar eğrileri farklı şekilde tanımlamaktadır.

Yukarıdaki animasyonu çalıştırmak için şeklin üzerine Şimdi, önce şu soruyu cevaplamaya çalışın;
tıkladığınızda aktif hale gelen “Context Bar” üzerindeki işaretli
düğmeye tıklayarak animasyonu çalıştırabilirsiniz. “y = 1 + sin(x) fonksiyonu kartezyen tanımlı bir
fonksiyon ve “plot” komutu kartezyen
tanımlamaya göre grafik çizen bir komut.
Buraya tıklayınız
“polarplot” yani kutupsal tanımlamaya göre grafik
çizen komutu kullanarak “plot” komutunun çizdiği
grafiğin aynısını elde etmek için neler
Yukarıdaki animasyon dikkatle incelenirse kartezyen tanımlı bir yapmalısınız?”
fonksiyonun temsil ettiği eğrinin oluşumunun canlandırıldığı
anlaşılacaktır. Kutupsal koordinatlar ile kartezyen koordinatların birbirleri ile
bir ilişkisi vardır.
Benzer şekilde aşağıda da kutupsal tanımlı bir fonksiyonun
temsil ettiği eğrinin nasıl oluştuğu canlandırılmıştır. Bu ilişkiyi hatırlayalım;

80 81
A adı verilen yukarıdaki fonksiyon kartezyen olarak tanımlanan
y y = 1 + sin(x) fonksiyonunun kutupsal karşılığıdır. Bu fonksiyonun
Kutup Ekseni grafiğini tahtada ya da defterinizde çizmenizin ne kadar zor
olduğunu tahmin edersiniz.

Zaten, yukarıdaki A fonksiyonu kapalı olarak karşımıza


y (x,y)= (rcosθ, rsinθ) çıkmıştır. Bu fonksiyonu açık halde r = f(θ) olarak tanımlamanın
r dahi ne kadar zor olacağını düşünün. İsterseniz bunu “solve”
komutunu kullanarak Maple yardımı ile deneyelim;
θ
o x x > solve(A,r);
RootOf ( sin( θ ) _Z − cos( θ ) − cos( θ ) sin( _Z ) )
cos( θ )

Gördüğünüz gibi Maple bile bu fonksiyonun açık halini


bulamıyor ☺

Biz de “implicitplot” komutunu kullanarak kapalı hali ile bu


Yukarıdaki grafik bilgilerinizi hatırlatacaktır. Buna göre; fonksiyonu çizdirelim ve kartezyen olarak çizdirilen y = 1 + sin(x)
fonksiyonunun grafiği ile r sin (θ ) = 1 + sin ( r cos (θ ) ) kutupsal
ox oy fonksiyonunun grafiğini aynı koordinat sisteminde görüntüleyelim;
cos θ = , sin θ =
r r
> B:=plot(1+sin(t),t=-2..1,color=blue):
bağıntılarının gerçeklendiğini görebiliriz. Bu eşitlikleri C:=implicitplot(A,r=0..2,theta=0..2*Pi,
coords=polar,numpoints=1000,thickness=5,
düzenlediğimizde x = rcosθ ve y = rsinθ ilişkilerini elde edebiliriz.
color=red):
display(B,C);
Aşağıda (x,y) kartezyen koordinatlarının (θ,r) kutupsal
koordinatları cinsinden karşılıkları olan x = rcosθ ve y = rsinθ
eşitlikleri programa tanıtılarak gerekli dönüşümün Maple tarafından
yapılması sağlanmıştır.

> with(plots):

> y:=r*sin(theta);
y := r sin( θ )

> x:=r*cos(theta);
x := r cos( θ )

> A:=y=1+sin(x);
A := r sin( θ ) = 1 + sin( r cos( θ ) )

82 83
> with(plots):
Yukarıda, iki fonksiyonun da üst üste çakıştığını görebilirsiniz.
> B:=implicitplot(A,x=-2..2,y=-2..2,
Şimdi de “1+sin(θ)” fonksiyonunun kutupsal çiziminin numpoints=10000,color=black,thickness=2):
kartezyen karşılığını araştırılım.
> C:=polarplot(1+sin(t),t=0..2*Pi,thickness=5):
Öncelikle (θ,r) kutupsal koordinatlarının (x,y) kartezyen
koordinatları cinsinden tanımlanması araştırılmıştır. > display(B,C);

x x y y
r = x 2 + y 2 , cos θ = = ve sin θ = =
r x2 + y2 r x2 + y2

Eşitliklerinin doğrulukları rahatlıkla anlaşılabilir.

Aşağıdaki uygulamada, öncelikle “1+sin(θ)” fonksiyonunun


grafiği kutupsal olarak çizildikten sonra uygun dönüşümler ile elde
edilen kartezyen fonksiyonun grafiği çizdirilmiştir.

> restart:

> r:=sqrt(x^2+y^2);
r := x 2 + y 2

> cos(theta):=x/r;
x
cos( θ ) :=
x2 + y2 Yukarıda gözlemlendiği gibi uygun şekilde tanımlanınca eğriler
kutupsal tanımlama kullanılarak da çizilse kartezyen tanımlama
> sin(theta):=y/r; kullanılarak da çizilse çakışan grafikler elde edilmiştir.
y
sin( θ ) := Ancak sizin de görebildiğiniz gibi bir kardioidi kartezyen olarak
x2 + y2 tanımlamak ve bir sinüs eğrisini kutupsal olarak tanımlamak hiç de
kolay değil. İşte bu yüzden kartezyen fonksiyonların yeri ayrı,
> A:=r=1+sin(theta); kutupsal fonksiyonların yeri ayrıdır.
y
A := x 2 + y 2 = 1 +
x2 + y2 Son olarak, aşağıdaki iki çalışma sayfasını kullanarak kendi
belirlediğiniz kartezyen ve kutupsal tanımlı fonksiyonun
Bu sefer, A adını verdiğimiz fonksiyon “r = 1+sin(θ)” oluşumunu, hareketli olarak izleyin.
fonksiyonunun kartezyen karşılığıdır.
Bu çalışma sayfaları fonksiyonu ve çizim aralıklarını sizin tayin
Yine bu fonksiyonun açık olarak ifade edilme güçlüğü ile edebileceğiniz şekilde hazırlanmıştır.
karşılaştığımız için kapalı fonksiyon olarak grafiğini çizdirelim.

84 85
Özellikle kutupsal eğriler derslerimizde çok fazla çizilemediği bu
yüzden de birçok kutupsal eğrinin nasıl oluştuğunun tam olarak
anlaşılamadığı için tamamen kendinizi belirlediği kutupsal eğrilerin Çalışma sayfası–2
nasıl oluştuğunu görmek önemli ve eğlenceli bir tecrübe olacaktır;
Örnek olarak bir gül eğrisi seçilmiştir. Aşağıda seçilen gül
Çalışma sayfası–1: eğrisinin yapraklarının hangi sırada oluştuğunu biliyor musunuz?
Zihninizi biraz zorlayın.
> with(plots):
Bu animasyonlarda doğru sıralamayı göreceksiniz. Neden böyle
Aşağıdaki komut satırında parantez içindeki fonksiyonu olduğunu bulmaya çalışın.
istediğiniz gibi değiştirebilirsiniz.
> with(plots):
> f:=x->(1+sin(2*x));
Aşağıdaki komut satırında parantez içindeki fonksiyonu
f := x → 1 + sin( 2 x ) istediğiniz gibi değiştirebilirsiniz.

Grafiği çizdirmek ve canlandırmak istediğiniz x bağımsız > f:=theta->(sin(2*theta));


değişken aralığını “[a,b]” aşağıda değiştirebilirsiniz (sadece
parantez içlerini değiştirin). f := θ → sin( 2 θ )

> a:=(-2*Pi); b:=(2*Pi); Grafiği çizdirmek ve canlandırmak istediğiniz θ bağımsız


değişken aralığını “[a,b]” aşağıda değiştirebilirsiniz (sadece
a := −2 π parantez içlerini değiştirin).
b := 2 π
> a:=(0); b:=(2*Pi);
Aşağıdaki komut grubunu hiç bir değişiklik yapmadan çalıştırın
ve izleyin. a := 0
b := 2 π
> B:=plot(f(x),x=a..b):
Aşağıdaki komut grubunu hiç bir değişiklik yapmadan çalıştırın
> animate(pointplot,[[[x,0],[x,f(x)],[0,f(x)]], ve izleyin.
axes=normal,thickness=2,color=[blue,red],style=li
ne],x=a..b,background=B,frames=100); > A:=polarplot(f(theta),theta=a..b):

> animate(pointplot,[[[0,0],[f(theta),theta]],
axes=normal,thickness=2,coords=polar,color=[blue,
red],style=line],theta=a..b,
background=A,frames=100);

86 87
2.5 DİFERANSİYEL NE ANLAMA GELİR?

Bu örnek ilk bakışta yüksek matematik konularından,


diferansiyel denklemler derslerinin klasik bir sorusu olarak
görünmektedir. Gerçekten de çeşitli diferansiyel denklem çözüm
metotlarından birisi kullanılarak soru çözülebilmektedir.

Ancak burada sorunun çözümünde bilgisayardan faydalanarak,


diferansiyel kavramının aslında ne olduğunu anlamaya dair bir
öneri sunulmuştur.

Tavşanlar ve Tilkiler

Problem:
Dışarıdan gelecek etkilere kapalı bir çevrede tavşanlar ve tilkiler
yaşamaktadır. Tilkiler sadece tavşanlar ile tavşanlar da sadece bu
ortamda hiç tükenmeyen bir bitki ile beslenmektedir. Herhangi bir t
zamanındaki tavşanların nüfusu r(t), tilkilerin nüfusu ise f(t) ile
gösterilmek üzere tavşan ve tilkilerin nüfusunun zamana bağlı
diferansiyeli aşağıdaki gibi verilmiştir;

Bu şekilde mavi doğru parçası kutup eksenini temsil etmektedir. df (t ) ⎛ r (t ) 3 ⎞


Kutup ekseninin x ekseni ile yaptığı pozitif yönlü açı (θ) için kutup = f (t ) ⎜ − ⎟
dt ⎝ 4 4⎠
ekseninin boyu (r) elde edilerek eğrinin çizimi canlandırılmıştır.
dr (t ) ⎛ f (t ) ⎞
= r (t ) ⎜1 − ⎟
Canlandırmayı izlemeden önce yaprakların oluşum sırasını dt ⎝ 2 ⎠
tahmin etmeye çalışın.
Buna göre tavşan ve tilkilerin nüfuslarının zamana bağlı grafiğini ilk
20 zaman için çiziniz.

(Not: t=0 zamanında tilkilerin 3, tavşanların 2 adet olduğunu kabul ediniz.)

Çözüm:
Bu soruda bir diferansiyel denklem sistemi çözmemiz
gerekmektedir. r(t) olarak tavşanların zamanı bağlı nüfusunu, f(t)
olarak da tilkilerin zamana bağlı nüfusunu tanımladığımızda;

df 3 r (t ) dr f (t )
= f (t )(− + ) ve = r (t )(1 − )
dt 4 4 dt 2

Diferansiyel denklemlerinden oluşan sistemi sağlayan r(t) ve


f(t) fonksiyonlarına ait birer grafik bulmamız istenmektedir.

88 89
Aşağıda sorunun önce Maple programı ile çözümünü sonra da
çözüm kurgusunu kendimiz kurup, Excel programından yararlanma
yolu ile nasıl çözülebileceğini göreceksiniz.

1- Maple bize nasıl yardım ediyor?

Öncelikle, özel bir grafik çizimi yapacağımız için çizim paketini


açıyoruz;

> with(plots): restart;

Şimdi de denklem sistemini “sys” adıyla tanımlıyoruz;

> sys := diff(r(t),t)=r(t)*(1-0.5*f(t)), 2- Şimdi diferansiyel bilgimizi kullanarak bir düzenleme


diff(f(t),t)=f(t)*(-0.75+0.25*r(t)); yapalım ve sonuç kısmında Excel’den faydalanalım;
fcns := {r(t), f(t)}:
d d
sys := r( t ) = r( t ) ( 1 − 0.5 f( t ) ), f( t ) = f( t ) ( −0.75 + 0.25 r( t ) ) Öncelikle diferansiyel kavramını hatırlatacak bir hazırlık
dt dt yapalım;

“dsolve” komutu içinde “type=numeric” seçeneğini df f (t + ∆t ) − f (t )


= lim olduğunu biliyoruz.
kullanarak sayısal bir yöntemle, “sys” denklem sistemini r(0)=2 ve dt ∆t → 0 ∆t
f(0)=3 başlangıç şartları ile çözüyoruz.
∆f f (t + ∆t ) − f (t )
Ancak sonucu grafik olarak elde etmek istediğimiz için bu Eğer limit almazsak = eşitliğine ulaşırız.
∆t ∆t
komutun sonucunu gizliyoruz;

> p:= dsolve({sys,r(0)=2,f(0)=3},fcns, Excel bir bilgisayar cebiri sistemi değildir. Dolayısı ile limit
type=numeric,method=classical): alamaz ve diferansiyel nedir bilemez. Ancak dt ile ∆t arasındaki
ilişkiyi kullanarak Excel programını amacımıza hizmet edecek
şekilde kullanabiliriz.
“odeplot” komutu ile de yukarıdaki satırda bulduğumuz
çözümün grafiğini elde ediyoruz.
df ∆f
dt ≅ ∆t = 0,01* eşitliğini düşünerek ≅ olduğunu
Ve… İşte Sonuç; dt ∆t
kullanırsak,
> odeplot(p, [[t,r(t)],[t,f(t)]],0..20,
numpoints=250); df 3 r (t )
= f (t )(− + ) olduğu bize verildiğinden;
dt 4 4

*
∆t = 0,01 eşitliği bizim tarafımızdan yapılan bir kabuldür. İstendiğinde
değiştirilebilir.

90 91
f (t + ∆t ) − f (t ) 3 r (t ) Anlamına gelmektedir. Eğer dikkat edilirse B3 ve C3 hücrelerine
≅ f (t )(− + ) elde edilir. yazılan formüller 1 ve 2 numaralı denklemlerden başkası değildir.
∆t 4 4
Eşitliğine ulaşırız. Bu denklemi ise aşağıdaki gibi
düzenleyebiliriz; Son olarak, t değerlerinin yazıldığı sütun t’nin 20 değerini aldığı
satıra kadar çoğaltılır ve B3 ve C3 hücreleri t’nin 20 olduğu
seviyeye kadar kopyalanırsa karşımıza ilk 20 zaman için her 0,01
⎛ 3 r (t ) ⎞ birimlik değişimde elde edilen tilki ve tavşan popülasyonunu veren
f (t + ∆t ) ≅ f (t ) + ∆t ⎜ f (t )(− + ) ⎟ ……………………(1)
⎝ 4 4 ⎠ bir tablo çıkar.

Benzer bir düzenlemeyi r (tavşanlar) fonksiyonu için yaparsak; Excel’in grafik çizme özelliğinden yararlanarak bu değerler bir
grafiğe aktarıldığında aşağıdaki grafik elde edilir;
⎛ f (t ) ⎞
r (t + ∆t ) ≅ r (t ) + ∆t ⎜ r (t )(1 − ) ⎟ ………………………(2) 6
⎝ 2 ⎠

Denklemine ulaşırız. Elde ettiğimiz son iki denklemi nasıl 5

kullanacağımızı inceleyelim;
4

Excel bize nasıl yardım edecek?


tavşan
3
tilki
Aşağıdaki gibi bir Excel sayfası hazırlayalım. Biz sadece 1 ve 2
numaralı satırları oluşturuyoruz. 1 numaralı satırda sırasıyla t 2
(zaman), f(t) (t. Zamandaki tilki sayısı) ve r(t) (t. Zamandaki tavşan
sayısı) isimlendirilmiştir. 2 numaralı satırda ise bize verilen
başlangıç değerleri yazılmıştır. 1

0
0,54
1,08
1,62
2,16
2,7
3,24
3,78
4,32
4,86
5,4
5,94
6,48
7,02
7,56
8,1
8,64
9,18
9,72
10,3
10,8
11,3
11,9
12,4
13
13,5
14
14,6
15,1
15,7
16,2
16,7
17,3
17,8
18,4
18,9
19,4
20
∆t = 0,01 kabul edildiğinden A
sütununa 0,01 birimlik fark ile
zaman değişkeni yine Bu grafik Maple ile elde ettiğimiz sonuç ile birebir aynıdır. Peki
tarafımızdan yazılmıştır. iki çözüm arasındaki fark nedir?

B ve C sütunlarının 2. satırının Maple ∆t = 0,01 kabulü yerine gerçekten dt operatörünü


alt kısmı ise aşağıdaki gibi kullanmıştır. Tabii gözümüz ∆t= 0,01 ile sonsuz küçük olan dt
formüle edilecektir; arasındaki farkı hissetmemektedir. Excel ile ürettiğimiz sonuç
gerçekte yaklaşık bir sonuçtur. Ancak kullanacağımız yere göre
B3 hücresi için; =B2+(A3-A2)*B2*(-0,75+0,25*C2) işimizi görebilir.
C3 hücresi için ise; =C2+(A3-A2)*C2*(1-0,5*B2)
Formülleri yazılmalıdır. ∆t = 0,01 yerine çok daha küçük bir değer de alabileceğinizi
aklınızdan çıkarmayın. ☺
B2 : f(t)
(A3-A2): ∆t
C2 : r(t)

92 93
Ne öğrendik?
2.6 BİR YÜZEY NASIL OLUŞUR?
Öğrenim hayatımız boyunca x’in diferansiyeli anlamına dx
ifadesi birçok yerde karşımıza çıkmaktadır. Ancak “diferansiyel Tanım kümesi reel sayıların bir alt kümesi olan tek değişkenli
nedir?” sorusuna “türev ile aynı şeydir!” veya “diferansiyel bir fonksiyon olarak tanımlanan bir y = f(x) fonksiyonunun IR2
bazı yaklaşık hesaplamalarda kullandığımız bir kavramdır!” düzleminde ifade ettiği eğrinin nasıl çizileceğini dair yeterli miktarda
benzeri cevaplardan daha doyurucu bir cevap veren çok az sayıda tecrübemiz var.
kişiye rastlanmaktadır.
Ancak tanım kümesi IR2 düzleminden seçilen bir z = f(x,y) iki
İsterseniz bu soruyu bir de kendinize sorun.☺ değişkenli fonksiyonunun IR3 uzayında nasıl bir resim ifade
edeceğine dair tecrübelerimiz sınırlı.
Yukarıdaki örnek sayesinde x değişkeninin diferansiyeli
denince, x değişkenindeki sonsuz küçüklükteki değişimin Genel olarak iki değişkenli fonksiyonların bir yüzey ifade
kastedildiği oldukça somut bir şekilde ortaya konmuştur. Hem de edeceğini biliyoruz. Biraz daha ilgili ve işledikleri konuları
hiç tahmin edemeyeceğiniz Excel programı sayesinde. unutmayan arkadaşlarımız seviye eğrileri yardımı ile yüzey
çizimi’nin nasıl yapıldığını en azından böyle bir uygulama olduğunu
hatırlayabilirler.

Bu konuda da Maple’dan iki farklı şekilde faydalanabiliriz.


Birincisi zaten Maple’ın sunduğu bir imkânı incelemek şeklinde
olacak. İkincisinde ise bize daha fazla iş düşüyor. Tabii doğal
olarak, başrolü kendimiz oynadığımızda daha fazla şey
öğreneceğiz.

1. Uygulama

İlk olarak Maple yardımı ile iki değişkenli bir fonksiyon


tanımlayalım;

> with(plots):

> z:=exp(-(x^2+y^2));

( −x 2 − y 2 )
z := e

Öncelikle hiçbir dış müdahalede bulunmadan Maple’ın nasıl bir


şekil çizeceğini görelim;

> plot3d(z,x=-2..2,y=-2..2,view=0..2);

94 95
Bu şekilde işaretlenen eğriler z = f(x,y) fonksiyonunda z’nin
bazı sabit değerleri için x ile y arasındaki ilişkiyi ifade eden
bağıntının resimleridir. Bu eğrilere seviye eğrisi dendiğini biliyoruz.

Tek değişkenli fonksiyonların, fonksiyona ait (x,y) noktalarının


IR2 düzleminde işaretlenmesi sonucu grafiklerinin oluştuğunu
biliyoruz.

Tabii ki iki değişkenli fonksiyonlar da aynı şekilde, fonksiyona


ait (x,y,z) noktalarının IR3 uzayında işaretlenmesi ile resmedilebilir.

Ancak biz bu şekilde grafik çizemeyiz. Bu noktaların bulunup


işaretlenmesi sonucu grafik çizme işini ancak bilgisayarlar
yapabilir. Bilgisayarın görüntüleyebildiği birim alan başına düşen
nokta sayısına göre, resim daha mükemmel görünecektir.
Yukarıdaki gibi fonksiyonun ifade ettiği yüzeyi elde ettik. Şimdi
bu şekli biraz daha anlaşılabilir hale getirelim. Tek değişkenli fonksiyonların grafiklerini çizerken, eksenleri
kestiği noktalar, artan veya azalan olduğu aralıklar, uç noktalar gibi
Şeklin üzerine tıkladığımızda aktif hale gelen “Context Bar” kritik noktaları analiz ediyoruz.
üzerindeki düğmeler ile şekli biraz daha düzenleyelim;
İki değişkenli fonksiyonlar için ise seviye eğrilerini kullanabiliriz.
Bu düğmeye tıklayınız
Ne kadar çok seviye eğrisi çizersek yüzeyi o kadar mükemmel
ifade edebiliriz.

Yukarıdaki “Context Bar” üzerinde okla işaretlediğimiz


düğmeye tıkladığınızda yüzey aşağıdaki gibi görünecektir. Bir z = f(x,y) fonksiyonunda, z için sabit bir c değeri
atanmasıyla elde edilen x ve y değişkenleri arasındaki bağıntıya
seviye eğrisi denir. c sabiti bahsedilen eğrinin seviyesidir

z = 0,8
Yukarıdaki yüzeyin sadece seviye eğrilerini görüntüleme
z = 0,6 imkânımız da var. “Context Bar” üzerinde işaretli düğmeye
tıklayın ve seviye eğrilerinin üzerinin yüzeyin iskeletini
z = 0,4
oluşturduğunu gözlemleyin;
z = 0,2
Bu düğmeye tıklayınız

96 97
2. Uygulama

Şimdi de yukarıdaki gibi seviye eğrilerini sadece gözlemek


yerine kendimiz elde edelim ve bu seviye eğrilerinin yüzeyin
iskeletini nasıl oluşturduğunu inceleyelim; Yukarıdaki şekle bir haritanın izohips (eşyükselti) eğrilerine
bakar gibi bakmaya çalışın! Ne göreceksiniz?
> with(plots):
Yukarıda sırasıyla “z=1/10,z=2/10,z=3/10,z=4/10, z=5/10,
> z:=exp(-(x^2+y^2)); z=6/10,z=7/10,z=8/10,z=9/10,z=1” değerleri için x ile y arasındaki
bağıntılar IR2 düzleminde resmedilmiştir.
( −x 2 − y 2 )
z := e
Şimdi de her bir eğriyi z eksenine göre olması gereken
yüksekliğe getirelim;
Şimdi z’ye çeşitli sabit değerler vererek elde edilen bağıntıların
ifade ettiği eğrileri çizelim. Tabii bu durumda eğrilerin IR2 Çizilen eğrilere dikkat ederseniz bir x değişkeni için iki y değer
düzleminde elde edileceğine dikkat ediniz. elde edilen eğrilerdir dolayısı ile her bir eğri için iki fonksiyon
tanımlanmalıdır. Bu tanımlama için cebirsel bir ön hazırlık
> implicitplot([z=1/10,z=2/10,z=3/10,z=4/10, yapıldıktan sonra elde edilen fonksiyon Maple’a tanıtılmıştır.
z=5/10, z=6/10,z=7/10,z=8/10,z=9/10,z=1],x=-
5..5,y=-5..5, numpoints=5000,color=blue);
Ayrıca bu eğrileri uzay eğrisi olarak çizebilmek için
“spacecurve” komutundan yararlanılmıştır. Bu komutun kullanımı
ile ilgili ayrıntılı bilgi Bölüm-1’de incelenebilir.

> A1:=spacecurve([t,sqrt(-ln(1/10)-t^2),1/10],t=-
10..10,color=black,numpoints=5000,axes=normal):
A2:=spacecurve([t,-sqrt(-ln(1/10)-t^2),1/10],
t=-10..10,color=black,numpoints=5000,
axes=normal):

98 99
B1:=spacecurve([t,sqrt(-ln(2/10)-t^2),2/10],t=-
10..10,color=red,numpoints=5000,axes=normal):
B2:=spacecurve([t,-sqrt(-ln(2/10)-t^2),2/10],t=-
10..10,color=red,numpoints=5000,axes=normal):
C1:=spacecurve([t,sqrt(-ln(3/10)-t^2),3/10],t=-
10..10,color=blue,numpoints=5000,axes=normal):
C2:=spacecurve([t,-sqrt(-ln(3/10)-t^2),3/10],t=-
10..10,color=blue,numpoints=5000,axes=normal):
E1:=spacecurve([t,sqrt(-ln(4/10)-t^2),4/10],t=-
10..10,color=pink,numpoints=5000,axes=normal):
E2:=spacecurve([t,-sqrt(-ln(4/10)-t^2),4/10],t=-
10..10,color=pink,numpoints=5000,axes=normal):
F1:=spacecurve([t,sqrt(-ln(5/10)-t^2),5/10],t=-
10..10,color=orange,numpoints=5000,axes=normal):
F2:=spacecurve([t,-sqrt(-ln(5/10)-t^2),5/10],t=-
10..10,color=orange,numpoints=5000,axes=normal):
G1:=spacecurve([t,sqrt(-ln(6/10)-t^2),6/10],t=-
10..10,color=yellow,numpoints=5000,axes=normal): Son elde edilen şekil sayesinde “seviye eğrisi” kavramının ne
G2:=spacecurve([t,-sqrt(-ln(6/10)-t^2),6/10],t=- anlama geldiğini daha net olarak gözlemlemiş olduk.
10..10,color=yellow,numpoints=5000,axes=normal):
H1:=spacecurve([t,sqrt(-ln(7/10)-t^2),7/10],t=- Görebildiğiniz gibi fonksiyonun nasıl bir yüzey ifade edeceğine
10..10,color=green,numpoints=5000,axes=normal): dair fikrimiz oluştu. Tabii, kullandığınız bilgisayarın kabiliyetine göre
H2:=spacecurve([t,-sqrt(-ln(7/10)-t^2),7/10],t=- daha sık ve daha çok seviye eğrisi çizdirirseniz yüzey daha
10..10,color=green,numpoints=5000,axes=normal): mükemmel görülebilir.
I1:=spacecurve([t,sqrt(-ln(8/10)-t^2),8/10],t=-
10..10,color=sienna,numpoints=5000,axes=normal): Şimdi yüzeyin grafiğini de çizdirerek, seviye eğrilerinden kendi
I2:=spacecurve([t,-sqrt(-ln(8/10)-t^2),8/10],t=- oluşturduğumuz iskelet ile birlikte aynı koordinat sisteminde
10..10,color=sienna,numpoints=5000,axes=normal): görüntüleyelim;
J1:=spacecurve([t,sqrt(-ln(9/10)-t^2),9/10],t=-
10..10,color=magenta,numpoints=5000,axes=normal): > S:=plot3d(z,x=-2..2,y=-2..2,view=0..2):
J2:=spacecurve([t,-sqrt(-ln(9/10)-t^2),9/10],t=- display(A1,A2,B1,B2,C1,C2,E1,E2,F1,F2,G1,G2,
10..10,color=magenta,numpoints=5000,axes=normal): H1,H2,I1,I2,J1,J2,K1,K2,S);
K1:=spacecurve([t,sqrt(-ln(10/10)-
t^2),10/10],t=-10..10,color=navy,numpoints=5000,
axes=normal):
K2:=spacecurve([t,-sqrt(-ln(10/10)-
t^2),10/10],t=-10..10,color=navy,numpoints=5000,
axes=normal):

> display(A1,A2,B1,B2,C1,C2,E1,E2,F1,F2,G1,G2,
H1,H2,I1,I2,J1,J2,K1,K2);

100 101
Yukarıdaki uygulama sayesinde “seviye eğrisi” kavramının 13 tane seviye eğrisi çizdirmemize rağmen 5 tanesi
yüzey çizerken bize nasıl yardımcı olduğunu görselleştirmeye görüntülendi. Demek ki, eğrilerin bir kısmı birbirine o kadar yakın ki
çalıştık. üst üste görünüyor.

Seçilen örneğe ait seviye eğrileri birer çember olduğundan bu Hangi seviye eğrisini hangi yükseklikte olduğunu da
tarz bir uygulamanın tahtada da yapılabileceğini düşünebilirsiniz. görüntülersek yüzey ile ilgili daha net bir fikir sahibi olabiliriz.
Ancak oldukça fazla zaman alacaktır.
> A1:=spacecurve([t,t+sin(-3),-3],t=-
Aşağıda, bu uygulama ile ilgili örnekler çeşitlendirilmiştir. 2..2,color=black,numpoints=5000,axes=normal):
A2:=spacecurve([t,t+sin(-2.5),-2.5],t=-
Örnek–1: f ( x, y ) = arcsin( y − x ) 2..2,color=red,numpoints=5000,axes=normal):
A3:=spacecurve([t,t+sin(-2),-2],t=-
> z:=arcsin(y-x); 2..2,color=navy,numpoints=5000,axes=normal):
z := −arcsin( −y + x ) A4:=spacecurve([t,t+sin(-1.5),-1.5],t=-
2..2,color=blue,numpoints=5000,axes=normal):
A5:=spacecurve([t,t+sin(-1),-1],t=-
Öncelikle seviye eğrilerinin bir kısmını görelim. z değeri için
2..2,color=yellow,numpoints=5000,axes=normal):
belirleyeceğimiz sabit değerleri, fonksiyonun özelliklerine göre
A6:=spacecurve([t,t+sin(-0.5),-0.5],t=-
belirlememiz gerektiğine dikkat ediniz. 2..2,color=green,numpoints=5000,axes=normal):
A7:=spacecurve([t,t+sin(0),0],t=-
Bu örnekteki fonksiyon sinüs fonksiyonunun tersidir. Dolayısı ile 2..2,color=magenta,numpoints=5000,axes=normal):
görüntü yani z değeri -π/2 ile π/2 arasında değişecektir. Biz z A8:=spacecurve([t,t+sin(0.5),0.5],t=-
değerini -3 ile 3 arasında 0,5 birimlik farklar ile inceleyelim; 2..2,color=gray,numpoints=5000,axes=normal):
A9:=spacecurve([t,t+sin(1),1],t=-
> implicitplot([z=-3,z=-2.5,z=-2,z=-1.5,z=-1,z=- 2..2,color=black,numpoints=5000,axes=normal):
0.5,z=0,z=0.5,z=1,z=1.5,z=2,z=2.5,z=3],x=- A10:=spacecurve([t,t+sin(1.5),1.5],t=-
5..5,y=-5..5, numpoints=5000,color=blue); 2..2,color=red,numpoints=5000,axes=normal):
A11:=spacecurve([t,t+sin(2),2],t=-
2..2,color=navy,numpoints=5000,axes=normal):
A12:=spacecurve([t,t+sin(2.5),2.5],t=-
2..2,color=blue,numpoints=5000,axes=normal):
A13:=spacecurve([t,t+sin(3),3],t=-
2..2,color=green,numpoints=5000,axes=normal):

> display(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,
A13);

102 103
Görüldüğü gibi yüzeyin, Maple’ın görüntüleyebildiği kısmı
seviye eğrilerimizin oluşturduğu iskelet üzerine tam olarak
oturmuştur.

y
Örnek–2: f ( x, y ) =
x2

> z:=y/x^2;
y
z :=
x2

> with(plots):

> implicitplot([z=-5,z=-4,z=-3,z=-2,z=-1,z=-
1/2,z=0,z=1/2,z=1,z=2,z=3,z=4,z=5],x=-2..2,y=-
10..10,numpoints=5000);
Seviye eğrilerini renklendirip z eksenine göre olması gereken
yerlere kondurunca yüzeyin iskeletini daha net olarak fark etmiş
olduk.

Bu iskeletin üzerine yüzeyin grafiğini kondurup neler olduğunu


izleyelim;

> S:=plot3d(arcsin(y-x),x=-2..2,y=-2..2,
numpoints=1000):
display(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,
A13,S);

104 105
Şimdi bu seviye eğrilerinin bir kısmını olması gereken
yüksekliklerine yerleştirelim;

> A1:=spacecurve([sqrt(t/(-2)),t,-2],t=-
10..10,color=black,numpoints=5000,axes=normal):
A2:=spacecurve([-sqrt(t/(-2)),t,-2],t=-
10..10,color=black,numpoints=5000,axes=normal):
A3:=spacecurve([sqrt(t/(-1)),t,-1],t=-
10..10,color=red,numpoints=5000,axes=normal):
A4:=spacecurve([-sqrt(t/(-1)),t,-1],t=-
10..10,color=red,numpoints=5000,axes=normal):
A5:=spacecurve([sqrt(t/(1)),t,1],t=-
10..10,color=blue,numpoints=5000,axes=normal):
A6:=spacecurve([-sqrt(t/(1)),t,1],t=-
10..10,color=blue,numpoints=5000,axes=normal):
A7:=spacecurve([sqrt(t/(2)),t,2],t=-
10..10,color=yellow,numpoints=5000,axes=normal):
A8:=spacecurve([-sqrt(t/(2)),t,2],t=- Yüzeyi fark edebildiniz mi? Fark edemediyseniz, daha fazla
10..10,color=yellow,numpoints=5000,axes=normal): seviye eğrisi çizdirebilirsiniz.
A9:=spacecurve([sqrt(t/(3)),t,3],t=-
10..10,color=green,numpoints=5000,axes=normal): Şimdi yüzeyimizi çizdirerek bu seviye eğrilerinin üzerine
A10:=spacecurve([-sqrt(t/(3)),t,3],t=- konduralım;
10..10,color=green,numpoints=5000,axes=normal):
A11:=spacecurve([sqrt(t/(-3)),t,-3],t=- > S:=plot3d(z,x=-2..2,y=-5..5,view=-10..10):
10..10,color=black,numpoints=5000,axes=normal): display(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12
A12:=spacecurve([-sqrt(t/(-3)),t,-3],t=- ,A13,A14,A15,A16,S);
10..10,color=black,numpoints=5000,axes=normal):
A13:=spacecurve([sqrt(t/(-4)),t,-4],t=-
10..10,color=blue,numpoints=5000,axes=normal):
A14:=spacecurve([-sqrt(t/(-4)),t,-4],t=-
10..10,color=blue,numpoints=5000,axes=normal):
A15:=spacecurve([sqrt(t/(4)),t,4],t=-
10..10,color=red,numpoints=5000,axes=normal):
A16:=spacecurve([-sqrt(t/(4)),t,4],t=-
10..10,color=red,numpoints=5000,axes=normal):

> display(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12
,A13,A14,A15,A16);

106 107
Yarıkürenin hacmi + Koninin hacmi =
2.7 YÜZEY DENKLEMLERİNİ KULLANARAK BİR HACİM
HESABI 4 3 π r 2 h 4.π .216 π .36.12
πr + = + = 288π cm3
6 3 6 3
Bu etkinlikte elimizde bir problemimiz var. Problemin çözümü
sürecinde karşılaştığımız çelişkiyi Maple ile çözmeye çalışırken İki farklı yoldan yapılan çözümler çelişmektedir. İkinci yol bize
neler öğreneceğimizi görelim! daha emin gelmiş ve iki katlı integral hakkındaki bildiklerimize olan
güvenimiz sarsılmıştır! ☺
Problem:
Bir topaç hayal edin. Topacın alt kısmını ters bir koniden, üst Öncelikle yaptığımız hesaplamaların doğruluğunu Maple ile
kısmını ise bir yarıküreden imal edelim. Koninin yüksekliği 12 cm, kontrol edelim;
kürenin yarıçapı ise 6 cm olsun. İki katlı integral bilgimizi kullanarak
bu topacın hacmini hesaplayalım. > Int(Int((sqrt(36-r^2)+12-r)*r,r=0..6),
theta=0..2*Pi);

2π 6
Çözüm: ⌠ ⌠ ( 36 − r 2 + 12 − r ) r dr dθ
Şekli yandaki gibi koordinat sistemine ⎮
⎮ ⎮⎮
z
yerleştirelim; ⌡0 ⌡0

12 (0,0,12) merkezli 6 cm yarıçaplı küre


denklemi; Maple’da komut isimleri, genelde küçük harfle
başlamaktadır. Eğer, komut adını büyük harfle yazarsanız,
x 2 + y 2 + ( z − 12 ) = 36 dir.
2

Maple hesaplama yapmak yerine komutun ifade ettiği işlemi


sembolik olarak görüntüler. Bu sayede yazdığımız komutta
6 y Bu kürenin üst yarısı ise bir hata yapıp yapmadığımızı kontrol etme fırsatımız olur.
z = 36 − ( x 2 + y 2 ) + 12 denklemi ile ifade
x Yukarıda da öncelikle int komutu Int şeklinde
edilir. yazılarak integralini almak istediğimiz ifadenin, gerçekten
doğru fonksiyonumuz olduğunu kontrol edilmiştir.

xy düzleminin üstünde kalan koni denkleminin de z = x 2 + y 2


olduğunu biliyoruz. > int(int((sqrt(36-r^2)+12-r)*r,r=0..6),
theta=0..2*Pi);
O halde, kutupsal koordinatlardan yararlanarak şeklin hacmini 432 π
şöyle hesaplayabiliriz;
İntegrali doğru almışız! Şimdi de yarı kürenin hacim ve koninin

)
hacim formülleri yardımı ile yaptığımız hesabı kontrol edelim;
∫ ∫(
2π 6
V= 36 − r 2 + 12 − r rdrdθ = 432π cm3
0 0 > 4*Pi*6^3/6 + Pi*6^2*12/3;

Bir de aynı hacmi küre ve koninin hacim formüllerinden 288 π


yararlanarak hesaplayıp karşılaştıralım;
Yaptığımız her iki işlem de doğrudur.

108 109
z
O halde, integral hesabında kullandığımız denklemlerin nasıl bir
şekil oluşturduğunu aşağıdaki Maple komutları yardımı ile
inceleyelim; 12
r
> with(plots):
h

> A:=implicitplot3d(x^2+y^2+(z-12)^2=36,x=-7..7,
y=-7..7,z=12..20,numpoints=5000):
B:=plot3d(sqrt(x^2+y^2),x=-7..7,y=-7..7, 6 12 y
view=0..20):
display(A,B); Topaç oluşturmak Hacmi hesaplarken
için kullanmamız x
kullandığımız koni
gereken koni yüzeyi yüzeyi

Denklemini kullandığımız koniye ait, z=12 seviyesindeki seviye


eğrisi yarı küremizin çapından çok daha büyüktür.

Koni denklemini, z=12 seviyesindeki seviye eğrisi tam olarak


yarı küremizin çapı kadar olacak şekilde tekrar düzenleyelim;

Koni denkleminin eski halinde z yerine 12 yazılarak elde


edilen 12 = x 2 + y 2 ifadesinden 6 = x2 + y2 denklemini elde
6 1
etmek için denklemin sol tarafını = ile çarpmalıyız. Bu
İntegral hesabında kullandığımız denklemlerin ifade ettiği 12 2
şekiller düşündüğümüz gibi bir topaç oluşturmuyor demek ki! durumda 12 yerine tekrar z yazarsak;

xy düzleminden 12 cm yükseklikteki yarı küre ile koni 1


z = x 2 + y 2 ⇒ z = 2 x 2 + y 2 denklemine ulaşırız.
buluşmuyor. 2

Bu durumda oluşturduğumuz küre denkleminde bir sorun Şimdi daha önceki şekli çizdirmek için kullandığımız Maple
olmadığını görüyoruz. Koni denklemini yeniden düzenlememiz komutlarında koni denklemini değiştirerek yeni elde edeceğimiz
gerekiyor. şekli gözlemleyelim.

Maple yardımı ile yukarıda elde ettiğimiz şekle bir de aşağıdaki > with(plots):
gibi bakalım;
> A:=implicitplot3d(x^2+y^2+(z-12)^2=36,x=-7..7,
y=-7..7,z=12..20,numpoints=5000,color=black):
B:=plot3d(2*sqrt(x^2+y^2),x=-7..7,y=-7..7,
view=0..20):
display(A,B);

110 111
2.8 BİR UZAY EĞRİSİNE BİR NOKTADA ÇİZİLEN NORMAL,
BİNORMAL VE TEĞET VEKTÖRLERİ

3 boyutlu öklit uzayında tanımlı vektörel bir fonksionun


tanımladığı uzay eğrisine ait herhangi bir noktasında çizilen teğet,
normal ve binormal vektörlerinin birbirlerine dik olması gerektiğini
teorik olarak biliyoruz. Ancak tahtada çizilmesi çok güç olan bir
grafik olduğu için sadece çok basit bir ya da iki örnek için görsel bir
uygulama yapma şansımız vardır.

Aşağıdaki etkileşimli çalışma sayfası sayesinde istediğimiz eğri


ve noktalar için bu teorik bilginin sonucunu görebiliriz.

> with(plots):
with(plottools):
with(LinearAlgebra):
Gördüğünüz gibi, bu son şekil tam olarak bir topaç ifade
edebilecek şekilde ☺ Aşağıda r(t) konum vektörü tanımlanmıştır.
Şimdi, son olarak ulaştığımız koni ve küre denklemlerini > r:=t->[exp(t),exp(-t),sqrt(2)*t];
kullanarak iki katlı integrali tekrar hesaplayalım; ( −t )
r := t → [ e t, e , 2 t]
> int(int((sqrt(36-r^2)+12-2*r)*r,r=0..6),
theta=0..2*Pi); Aşağıda r'nin türevinin normu tanımlanmış ve normr ismi ile
adlandırılmıştır.
288 π
> türevr:=diff(r(t),t);
( −t )
İşte tam olarak beklediğimiz cevaba ulaştık! ☺ türevr := [ e t, −e , 2]

> normr:=simplify(evalf(sqrt(türevr[1]^2+
türevr[2]^2+türevr[3]^2)));
( 2. t ) ( −2. t )
normr := e +e + 2.

r(t) eğrisine t0 anında teğet olan vektör



r( t )
∂t 0
T( t0 ) =

norm⎛⎜⎜ r( t0 ) ⎟⎟⎞
⎝ ∂t ⎠
formülü ile hesaplanmaktadır. Aşağıda teğet vektör
hesaplanmıştır.

112 113
> T:=expand(diff(r(t),t)/normr); Aşağıda sırasıyla teğet, normal ve r(t)'nin t=0 için değerleri
hesaplanmıştır.
⎡ et 1 2 ⎤
T := ⎢⎢ ,− , ⎥

⎢ ( −2. t ) ( −2. t ) ( −2. t ) > Teget0:=simplify(subs(t=a,T));
+ 2. ⎥⎦
( 2. t ) ( 2. t ) ( 2. t )
⎣ e +e + 2. et e +e + 2. e +e
Teget0 := [ 0.5000000000 , -0.5000000000 , 0.7071067810 ]

> normal0:=N;
expand(…) komutu cebirsel ifadelerin açık hallerini yazar. normal0 := [ 0.7071067810, 0.7071067810, 0. ]
Örneğin, cebirsel ifade çarpanlar halinde ise bunları çarpılıp
düzenlenmiş hallerini verir. > r(a);
[ 1, 1 , 0 ]
Yukarıda, teğet vektörünün elde edildiği formülden çıkan
sonuç expand komutu ile açık olarak yazılmıştır.
Binormal vektörün hesaplanması için aşağıdaki matris
tanımlanarak determinantı alınmış ve s olarak adlandırılmıştır.
Binormal vektörün t=0'daki değeri hesaplanmış ve binormal0
r(t)'nin teğet vektörü formülü aynen T vektörüne uygulandığında olarak adlandırılmıştır.
r(t)'nin normal vektörü elde edilmektedir.
> B:=Matrix([[i,j,k],Teget0,normal0]);
Aşağıdaki satırlarda t0=a noktasındaki (a değeri 0 olarak ⎡ i j k ⎤
seçilmiştir.) normal Vektör hesaplanmış ve N olarak ⎢ ⎥
B := ⎢⎢0.5000000000 -0.5000000000 0.7071067810 ⎥⎥
adlandırılmıştır. ⎢⎢ ⎥⎥
⎣0.7071067810 0.7071067810 0. ⎦
> a:=0:
> türevt:=simplify(diff(T,t)); > s:=Determinant(B);
⎡ 2. ( 1. + e ) et
( −2. t )
2. ( e + 1. ) e
( 2. t ) ( −1. t )
s := −0.4999999997 i + 0.7071067810 k + 0.4999999997 j
türevt := ⎢⎢ , ,
⎢ ( 2. t ) ( −2. t )
( 3/2 )
( −2. t )
( 3/2 )
⎢ (e +e + 2. )
( 2. t )
+e + 2. ) Binormal vektör, taban vektörün lineer bileşeni olarak elde
⎣ (e
( −2. t ) edilmiştir. Aşağıda binormal vektörün sıralı üçlü olarak yazımı
) ⎤⎥
( 2. t )
1.414213562 ( e − 1. e görülmektedir.
− ⎥
( −2. t )
( 3/2 ) ⎥
( 2. t )
+e + 2. ) ⎥
(e ⎦ > binormal0:=[op(1,op(1,s)),op(1,op(3,s)),
op(1,op(2,s))];
> türevT0:=simplify(subs(t=a,türevt)); binormal0 := [ -0.4999999997, 0.4999999997, 0.7071067810]
türevT0 := [ 0.5000000000, 0.5000000000, 0. ]
Aşağıda r(t) eğrisi ile r(0) vektörü çizilmiş, ve başlangıçları
> normT:=evalf(sqrt(türevT0[1]^2+türevT0[2]^2+ r(0)'ın ucuna gelecek şekilde t=0 için teğet, normal ve binormal
türevT0[3]^2)); vektörler resmedilmiştir.
normT := 0.7071067812
> A:=spacecurve(r(t),t=-Pi/2..Pi/2,color=black,
> N:=(türevT0/normT); numpoints=5000,thickness=3):
N := [ 0.7071067810, 0.7071067810, 0. ] b:=line([0,0,0]+r(a), binormal0+r(a),
color=black, thickness=3):

114 115
d:=line([0,0,0]+r(a), Teget0+r(a), color=red,
thickness=3):
c:=line([0,0,0]+r(a), normal0+r(a), color=blue,
thickness=3):
e:=line([0,0,0], r(a),color=magenta,
thickness=3):

> display(A,e,b,c,d,axes=normal);

BÖLÜM – 3
Bu bölümde, bir matematik problemi çözerken Maple’dan nasıl
faydalanılabileceği gösterilmeye çalışılmıştır. Bu yolla, Maple ile
ilgili bazı özelliklerin de sunulması hedeflenmiştir.

Bilgisayar desteği ile bir matematik probleminin çözülmesi ilk


bakışta kolaycılığa kaçmak gibi görülebilir. Test sorusu tarzında,
mükemmel yapılandırılmış ve amacı işlem yeteneğini ölçmek olan
sorular için bu yaklaşım doğrudur. Ancak burada kastedilen
problemler, çözüm kurgusunun tasarlanmasının öncelikli önemi
Yukarıdaki şekilde kırmızı doğru teğeti, mavi doğru normali ve olan ve işlem yeteneğinden çok kavramsal kapasiteyi ölçen
siyah doğru ise binormali göstermektedir. Ve bu doğruların problemlerdir.
birbirlerine dik olduğu gözlemlenebilir.
Bu tarz problemlerde bilgisayar desteğinden yararlanmak;
Şekli bilgisayarınızda elde ettiğinizde, grafiği seçip döndürerek
bahsedilen vektörlerin birbirlerine dik olduklarını daha net bir • Grafiksel analizler yapma imkânı sunarak muhakeme
şekilde görebilirsiniz. gücümüzün gelişmesine katkıda bulunabilir.

Özel olarak t=0 noktasındaki vektörler için inceleme • Bizi işlem yükünden kurtararak, asıl kavramın önemine
yapılmıştır. Siz a değerini değiştirerek her nokta için aynı dikliğin odaklanmamıza fırsat sağlayabilir.
söz konusu olduğunu görebilirsiniz.
• Problemde geçen durumların ve sayı değerlerinin kolayca
Bu uygulamada, tamamen cebirsel olarak edindiğimiz bir bilgiyi hesaplanabilme kaygısı ile tanımlanmadığı, gerçek hayat
görsel olara kontrol etme tecrübesini yaşadık. Umarım bu heyecanı problemleri ile uğraşmamıza imkân tanıyabilir.
yaşayabilmişsinizdir! ☺
• Problemin çözümü için bir algoritma geliştirilmişse benzer
problemlerde de aynı algoritma kullanılabilir.

116 117
Aşağıda, f(x,y) fonksiyonun y’e göre ikinci türevi alınmış ve c
olarak isimlendirilmiştir.
3.1 KRİTİK NOKTA HESABI
> c:=diff(f(x,y),y$2);
Problem: f( x , y ) = x + y − 3 x y fonksiyonunun kritik
3 2 c := 2
noktalarını ve türlerini belirleyiniz.
Aşağıda, fxx(x0, y0) fyy(x0, y0) - fxy(x0, y0)2 ifadesi elde edilmiş ve
Çözüm: d olarak isimlendirilmiştir.
Öncelikle iki değişkenli f(x,y) fonksiyonunu tanımlayalım;
> d:=a*c-b^2;
> f:=(x,y)->x^3+y^2-3*x*y; d := 12 x − 9
f := ( x, y ) → x 3 + y 2 − 3 x y
Aşağıda, fx = 0 ve fy = 0 denklemlerinden oluşan sistemin
çözümü elde edilmiş ve “çözümler” adı verilmiştir.
İki değişkenli bir fonksiyonun kritik noktaları ile ilgili teorik
bilgilerimizi hatırlayalım; > cozumler:=solve({diff(f(x,y),x),diff(f(x,y),y)}
,{x,y});
(x0, y0) noktası fx = 0 ve fy = 0 denklemlerinden oluşan sistemin
3 9
çözümü olmak üzere; cozumler := { x = 0, y = 0 }, { x = , y = }
2 4
fxx(x0, y0) < 0 ve fxx(x0, y0) fyy(x0, y0) - fxy(x0, y0)2 > 0 ise (x0, y0) bir
yerel maksimum noktadır. “çözümler” adıyla elde edilen sonuçların 1. elemanı c1 olarak
isimlendirilmiştir.
2
fxx(x0, y0) > 0 ve fxx(x0, y0) fyy(x0, y0) - fxy(x0, y0) > 0 ise (x0, y0) bir
yerel minimum noktadır. > c1:=cozumler[1];
c1 := { x = 0, y = 0 }
2
fxx(x0, y0) = 0 ve fxx(x0, y0) fyy(x0, y0) - fxy(x0, y0) < 0 ise (x0, y0) bir
semer noktasıdır. “çözümler” adıyla elde edilen sonuçların 1. elemanı c2 olarak
isimlendirilmiştir.
Bu bağlamda, Maple yardımı ile aşağıdaki uygulamayı
düzenleyelim; > c2:=cozumler[2];
3 9
Aşağıda, f(x,y) fonksiyonun x’e göre ikinci türevi alınmış ve a c2 := { x = , y = }
olarak isimlendirilmiştir.
2 4

> a:=diff(f(x,y),x$2); a olarak isimlendirilen fxx fonksiyonunda c1 noktası yerine


a := 6 x konarak aa adı verilmiştir.

> aa:=subs(c1,a);
Aşağıda, f(x,y) fonksiyonun önce x’e sonra da y’ye göre türevi
alınmış ve b olarak isimlendirilmiştir.
aa := 0

> b:=diff(f(x,y),x,y); d olarak isimlendirilen fxx(x0, y0) fyy(x0, y0) - fxy(x0, y0)2 ifadesinde
b := -3 c1 noktası yerine konarak dd adı verilmiştir.

118 119
> dd:=subs(c1,d); 3.2 DÖNEL CİSMİN HACMİNİ HESAPLAMA–1
dd := -9
Problem: y = 3 − x
2
fonksiyonunun eğrisinin y=1 ve y=2
Aşağıda gerekli sınama yapılarak c1 noktasının türü doğruları arasındaki kısmının y ekseni etrafında döndürülmesi ile
belirlenmiştir. oluşacak dönel cismin hacmini hesaplatınız.
> if dd>0 and aa<0 then print(c1,"bir maksimum Çözüm:
noktadır");end if;
Bu problemi çözebilmek için gerekli şekli Maple yardımı ile
if dd>0 and aa>0 then print(c1,"bir minimum
çizerek, istenen hacmi elde edebilmek için gerekli integrali nasıl
noktadır");end if;
oluşturacağımızı görmeye çalışalım;
if dd<0 and aa=0 then print(c1, "bir semer
noktasıdır");end if; > restart;
{ y = 0, x = 0 }, "bir semer noktasidir" > f:=x->3-x^2;
f := x → 3 − x 2
a olarak isimlendirilen fxx fonksiyonunda c1 noktası yerine
konarak aa adı verilmiştir. > plot([f(x),1,2],x=-2..2);
> aa:=subs(c2,a);
aa := 9

d olarak isimlendirilen fxx(x0, y0) fyy(x0, y0) - fxy(x0, y0)2 ifadesinde


c1 noktası yerine konarak dd adı verilmiştir.

> dd:=subs(c2,d);
dd := 9

Aşağıda gerekli sınama yapılarak c2 noktasının türü


belirlenmiştir.

> if dd>0 and aa<0 then print(c2,"bir maksimum


noktadir");end if;
if dd>0 and aa>0 then print(c2,"bir minimum
noktadir");end if;
if dd<0 and aa=0 then print(c2,"bir semer
noktasidir");end if;
Yukarıda y=f(x), y=1 ve y=2 doğruları çizilmiştir. Döndürülmesi
3 9 gereken alanın gölgelendirilmiş alan olduğunu anlıyoruz.
{ x = , y = } , "bir minimum noktadir"
2 4
y eksenini değişken ekseni olarak ele alıp, yukarıdaki
gölgelendirilmiş alanın sadece sol ya da sağ yarısını y-ekseni
etrafında döndürmemiz istenen hacmi elde etmemiz için yeterlidir.

120 121
Bunun için y=f(x) fonksiyonu yerine y’nin bağımsız değişken
olduğu fonksiyonu kullanmamız gerekmektedir. Aşağıda tersf adı İşlemlerimizde y = f(x) fonksiyonu kullanacağımız için bu
verilerek y=f(x) denkleminde x değişkeni y cinsinden çekilmiştir. denklemden bir fonksiyon elde edelim.

> tersf:=solve(y=f(x),x); > b:=solve(a,y);


tersf := −y + 3 , − −y + 3 b := −x 2 + 8 x − 7 , − −x 2 + 8 x − 7
y değişkenini bağımlı değişken kabul eden iki farklı bağıntı elde a denklemi y cinsinden çözülmüş ve iki adet y = f(x) fonksiyonu
edilmiştir. Bunlardan birisi yukarıdaki eğrinin sol yarısı diğeri de elde edilmiştir. Bu fonksiyonların birincisini seçelim;
sağ yarısını ifade etmektedir.
> b[1];
Bu bağıntılardan birisini kullanarak istenen hacmi
−x 2 + 8 x − 7
hesaplayabiliriz.

b Bu fonksiyonun grafiğini çizelim ve aradığımız çember


π ∫ f 2 ( y ) dy formülünü ve yukarıda “tersf” adıyla elde edilen iki olduğundan emin olalım;
a
bağıntıyı kullanarak sonuçların aynı olduğunu görelim; > plot(b[1],x=0..7);

> Pi*int(tersf[1]^2,y=1..2);

2

> Pi*int(tersf[2]^2,y=1..2);

2

3.3 DÖNEL CİSMİN HACMİNİ HESAPLAMA–2

Problem: r = 3 yarıçaplı bir çemberin üst-yarısının x-ekseni


etrafında döndürülmesi ile oluşacak dönel cismin hacmini
hesaplayınız.
Son olarak aşağıdaki formül yardımı ile dönel cismin hacmini
Çözüm: hesaplayalım;
Öncelikle r = 3 yarıçaplı çemberin denklemini yazalım;
> Pi*Int(b[1]^2,x=1..7);
> a:=(x-4)^2+(y)^2=9; 7

a := ( x − 4 ) + y = 9
2 2 π⌠
⎮ −x + 8 x − 7 dx
2
⌡1
Gördüğünüz gibi a ismi verilen çember denklemi bir fonksiyon
değildir. Çünkü x’in bağımsız değişken olduğu düşünülürse bir > Pi*int(b[1]^2,x=1..7);
bağımsız değişkene, iki bağımlı değişken karşılık gelmektedir. 36 π

122 123
3.4 KÜRENİN HACİM FORMÜLÜNÜ BULMA
> x:=4*cos(t);
Problem: Önceki problemin çözüm yolunu genel olarak r x := 4 cos( t )
yarıçaplı bir çembere uygulayarak kürenin hacim formülünü elde
ediniz. > y:=4*sin(t)+2;
y := 4 sin( t ) + 2
Çözüm:
Yarıçap olarak belirli bir değer yerine değişken r değerini alarak > x^2+(y-2)^2;
orijin merkezli bir çember denklemi yazalım; 16 cos ( t ) 2 + 16 sin( t ) 2
> A:=x^2+y^2=r^2;
> simplify(%);
A := x 2 + y 2 = r 2 16
Önceki problemin çözümünde uyguladıklarımızı sırasıyla Üçüncü bileşen ise helisin yükselmesini sağlayan bileşendir.
uygulayalım; Bundan dolayı üçüncü bileşeni, kullandığımız parametre cinsinden
herhangi bir şekilde tanımlamak helis elde etmek için yeterli
> B:=solve(A,y);
olacaktır.
B := −x 2 + r 2 , − −x 2 + r 2
Öncelikle, aşağıdaki parametreleri kullanalım;
> B[1];
x = 4cos(t), y = 4sin(t)+2, z = t
−x 2 + r 2
> with(plots):with(plottools):
> Pi*int(B[1]^2,x=-r..r);
4πr 3
> x:=4*cos(t);
3 y:=4*sin(t)+2;
z:=t;
r yarıçaplı bir kürenin hacim formülünü elde etmiş olduk.
x := 4 cos( t )
y := 4 sin( t ) + 2
3.5 HELİS DENKLEMİNİ BULMA VE GRAFİĞİNİ ÇİZME z := t
> spacecurve([x,y,z], t=0..8*Pi,color=black,
Problem: xy düzlemindeki izdüşümü, (0,2) merkezli 4 yarıçaplı numpoints=5000,axes=normal);
çember olan bir helis denklemini yazınız ve bu helisi çizdiriniz.

Çözüm:
Helis bir uzay eğrisidir. x, y ve z değişkenlerini parametrik
olarak tanımlamamız gerekmektedir.

(0,2) merkezli 4 yarıçaplı çember denklemi x + ( y − 2 ) = 16


2 2

dır. Dolayısı ile elde edeceğimiz helis denkleminin birinci ve ikinci


bileşenleri bu denklemi sağlamalıdır. Buna göre x ve y
değişkenlerinin aşağıdaki gibi tanımlanması yeterli olacaktır.

124 125
Bu çember, tam olarak (0,2) merkezli 4 yarıçaplı çemberdir.
Sonuç olarak istenen helisin denklemi aşağıdaki gibi yazılabilir.

F( t ) = 4 cos( t ) i + ( 4 sin( t ) + 2 ) j + t k

Not: Elde ettiğimiz helis denkleminin üçüncü bileşeninin “t”


olması zorunlu değildir. Bu bileşen sadece helisin yükselme
kuralını tanımlamaktadır. Daha farklı bir kurala göre yükselen
aşağıdaki gibi bir alternatif helis de elde edilebilir;

> x:=4*cos(t);
y:=4*sin(t)+2;
z:=t^2;
x := 4 cos( t )
y := 4 sin( t ) + 2
z := t 2
Elde ettiğimiz helisin, problemde tanımlanan helis olup > spacecurve([x,y,z], t=0..8*Pi,color=black,
olmadığını kontrol edelim; numpoints=5000,axes=normal);

Eğer “context bar” araç çubuğunda dikey döndürme açısını 0°


yatay döndürme açısını -90° olarak ayarlarsanız şekli aşağıdaki
gibi gözlemleme fırsatı elde edebilirsiniz.
Yatay döndürme açısı

Dikey döndürme açısı

Gördüğünüz gibi z = t2 seçtiğimizde yavaş yavaş yükselmeye


başlayan ancak parametrenin daha büyük değerleri için daha hızlı
yükselen bir helis elde etmiş olduk. Bu helisin de yatay ve dikey
dönme açılarını değiştirerek xy düzlemi üzerindeki izdüşümünü
kontrol edebilirsiniz.

126 127
3.6 METAL PLAKA ÜZERİNDEKİ SICAKLIK eşitlenmesinden oluşan denklem sisteminin köklerinin bulunması
gerekmektedir.
Problem: Metal bir plakanın üzerindeki bir (x,y) noktasındaki
sıcaklık T(x,y) = 4x2 – 4xy + y2 fonksiyonu ile verilmektedir. Bir > solve({diff(T(x,y),x)=0,diff(T(x,y),y)=0});
karınca, plakanın üzerinde, merkezi orijinde yarıçapı 5 br olan bir { x = x, y = 2 x }
çember ile sınırlı bir bölgede sınırlar da dâhil olmak üzere rastgele
yürümektedir. Karıncanın karşılaşabileceği en sıcak ve en soğuk Bahsedilen denklem sisteminin y = 2x bağıntısını sağlayan
noktaların koordinatlarını bulunuz. sonsuz sayıda (x,y) ikilisi olduğunu bulduk.

Çözüm: Bu sonuç, yüzey grafiği tarafından da doğrulanmaktadır. Eğer


Verilen sıcaklık fonksiyonu iki değişkenli bir fonksiyondur ve yüzey grafiğine, yatay dönme açısını -90° dikey dönme açısını 0°
grafiği 3 boyutlu uzayda bir yüzey ifade eder. Bu yüzeyin grafiğini şeklinde ayarlayarak bakarsak aşağıdaki grafiği elde ederiz.
görelim;
Bu grafik ile yukarıdaki grafiği birlikte düşündüğümüzde yüzeyin
> with(plots): en alt kısmının y = 2x doğrusu şeklinde uzandığını fark edebiliriz.

> T:=(x,y)->4*x^2-4*x*y+y^2;
T := ( x , y ) → 4 x 2 − 4 y x + y 2

> plot3d(T(x,y),x=-5..5,y=-5..5);

y = 2x
Yüzey grafiğinde yüzeyin en küçük değeri aldığı (x,y) noktaları
görülebilmektedir.
Sıcaklığı ifade eden fonksiyonun (x,2x) noktaları için en küçük
Ancak bu noktaların cebirsel olarak tespit edilmesi için yüzey değerleri aldığını bulmuş olduk. Ancak soruda bahsedilen bölge,
bu yüzeyin sadece x + y = 25 çemberi içinde kalan kısmıdır.
2 2
fonksiyonunun x’e ve y’ye göre kısmi türevlerinin 0’a

128 129
Yukarıdaki şekilde gördüğünüz gibi, x + y = 25 çemberinin
2 2

sınırlar içinde yüzeyin en yüksek değerini aldığı noktalar da vardır.


Bu noktaları bulmak için çember denkleminde y değişkenini x
y = 2x cinsinden çekelim ve yüzey denkleminde yerine koyup elde
edeceğimiz fonksiyonun ekstreme noktasını bulalım. Bu yolla
bulacağımız noktalar, daire şeklindeki bölgenin sınırındaki sıcaklık
fonksiyonuna ait maksimum ya da minimum noktalar bulunacaktır.

> C:=solve(x^2+y^2=25,y);
C := −x 2 + 25 , − −x 2 + 25

Çember denkleminde y değişkeninin iki adet x cinsinden


karşılığı vardır. Her iki karşılığını da kullanalım;

y = 25 − x 2 ise;

> A1:=T(x,C[1]);
A1 := 3 x 2 − 4 x −x 2 + 25 + 25
> A:=plot3d(T(x,y),x=-5..5,y=-5..5):
B:=spacecurve([5*cos(t),5*sin(t),0],t=0..2*Pi, > E1:=solve(diff(A1,x)=0);
color=black,thickness=3):
E1 := −2 5 , 5
display(A,B);
y = − 25 − x ise;2

> A2:=T(x,C[2]);
A2 := 3 x 2 + 4 x −x 2 + 25 + 25

> E2:=solve(diff(A2,x)=0);
E2 := − 5 , 2 5
Sonuç olarak aşağıdaki noktalar, yüzey fonksiyonunun çember
sınırlarına tekabül eden extreme noktalardır;

> subs(x=-2*sqrt(5),C[1]);
5
( x,y ) = ( -2 )
5, 5 ,
> subs(x=sqrt(5),C[1]);
20

( x,y ) = ( )
5, 2 5 bu nokta zaten y = 2x doğrusu üzerindedir.

130 131
> subs(x=-sqrt(5),C[2]); Şimdi, tabanın nasıl göründüğünü çizelim;
− 20
> with(plots):
( x,y ) = ( - )
5, −2 5 bu nokta zaten y = 2x doğrusu üzerindedir.
> plot([6-x^2,x],x=-4..3);
> subs(x=2*sqrt(5),C[2]);
− 5

( x,y ) = ( 2 5, − 5 )
Sonuç olarak, şekil üzerinde gözlemlediklerimizle de
birleştirerek en sıcak noktaların ( x,y ) = ( -2 5, 5 ) ve

( x,y ) = ( 2 5, − 5 ) en soğuk noktaların ise (x,2x) noktaları


olduğunu söyleyebiliriz. En soğuk ve en sıcak değerlerin ne
olduğunu ise bu noktaları T(x,y) fonksiyonunda yerine koyarak
bulabiliriz.
Tabanı oluşturan fonksiyonların kesişim noktalarını bulalım;
> T(-2*sqrt(5),sqrt(5));
125 > solve(6-x^2=x);
> T(2*sqrt(5),-sqrt(5)); -3, 2
125
> T(x,2*x); Şimdi, grafik üzerinde bu kesme noktalarını da işaretleyelim;
0
> A:=plot([6-x^2,x],x=-4..3):
B:=implicitplot([x=-3,x=2],x=-4..4,y=-10..10):
Daire şeklindeki levhanın en soğuk yerinin 0 derece, en soğuk display(A,B);
yerinin ise 125 derece olduğunu anlıyoruz.

3.7 BİR KUM YIĞINININ HACMİ

Problem: Bir kum tepesinin tabanı xy düzleminde x 2 + y = 6


parabolü ve y = x doğrusu ile sınırlı bölgeyi kaplamaktadır.
Tabanda herhangi bir (x,y) noktasındaki kumun yüksekliği x2 dir.
Kumun hacmini bulunuz.

Çözüm:
Tabandaki herhangi bir (x,y) noktasının yüksekliğinin x2 olması
kum tepesinin üst yüzeyinin f(x,y) = x2 fonksiyonu ile tanımlandığı
anlamına gelmektedir.

132 133
Bu bölgenin üzerinde f(x,y) = x2 yüzeyi olduğuna göre istenen
hacmi veren integral aşağıdaki gibi olmaldır.

> Int(Int(Int(1,z=0..x^2),y=x..6-x^2),x=-3..2);
2 2
2 6−x x
⌠⌠ ⌠ 1 d z d y dx
⎮⎮ ⎮
⌡-3 ⌡x ⌡0

Bu integralin sonucu da aşağıda hesaplanmıştır.

> int(int(int(1,z=0..x^2),y=x..6-x^2),x=-3..2);
125
4
125
Kum tepesinin hacmi birim küp olarak elde edilmiştir.
4

Şimdi yatay ve dikey dönme açıları ile oynayarak şekle tam


3.8 ÜÇ KATLI İNTEGRAL İLE HACİM yukarıdan bakalım. Bu sayede arakesit bölgesinin nasıl bir bölge
olduğunu görebileceğiz.
Problem: z=4-y2 yüzeyi ile z=y2+2x2 paraboloidi arasındaki
hacmi üç katlı integral yardımı ile hesaplayınız.

Çözüm:
Bahsedilen bölgenin nasıl bir bölge olduğunu görelim;

z=4-y2 yüzeyine z1 adını vererek tanımlayalım;


> z1:=4-y^2;
z1 := 4 − y 2

z=y2+2x2 paraboloidine de z2 adını vererek tanımlayalım;


> z2:=y^2+2*x^2;
z2 := y 2 + 2 x 2

z1 yüzeyini kırmızı, z2 paraboloidini ise sarı renkte çizdirelim;


> plot3d([z1,z2],y=-2..2,x=-2..2,view=0..10,
color=[red,yellow]);

Arakesit bölgesi bir dairedir. Nasıl bir daire olduğunu iki yüzeyin
denklemlerini birbirlerine eşitleyerek bulabiliriz.

134 135
3.9 BİR VEKTÖRÜN UZUNLUĞU VE TÜREVİ
> z1=z2;
4−y =y +2x 2 2 2 Problem:
Aşağıdaki vektörün uzunluğunun sabitliğini ve türevine
y2+2x2 = 4 - y2 ⇒ y2 + x2 = 2 çemberi elde edilir. ortogonal olduğunu gösteriniz.
> u:=t->[sin(t),cos(t),sqrt(3)];
Maple’ın bize sağladığı bu görsel yardımı kullanarak hacmi
veren üç katlı integrali kurmaya çalışalım; u := t → [ sin( t ), cos( t ), 3 ]
y2 + x2 = 2 çemberi bir asansör boşluğunun yan duvarlarının
şekli, ve bu asansör boşluğu alttan z=y2+2x2 yüzeyi, üstten de z=4- Çözüm:
y2 yüzeyi ile sınırlandırılmıştır. > uzunluk:=evalf(sqrt(u(t)[1]^2+u(t)[2]^2+
u(t)[3]^2));
Asansör boşluğunun şekli B bölgesi olsun (y2 + x2 = 2 dairesi)
aşağıdaki integral bize hacmi verecektir; uzunluk := sin( t ) 2 + cos( t ) 2 + 3.
4 − y2
> simplify(uzunluk);
V = ∫∫ ∫ dzdxdy
B y +2x
2 2
2.
Bildiğiniz gibi x = rcosθ , y = rsinθ , z = z dönüşümü silindirik
görüldüğü gibi uzunluk sabit bir sayıdır.
koordinat dönüşümüdür. Silindirik koordinat dönüşümünün
jakobiyeninin de r olduğunu biliyoruz. Buna göre; > türev(u):=diff(u(t),t);
4 − r 2 sin 2 θ
türev( u ) := [ cos( t ), −sin( t ), 0 ]
V = ∫∫ ∫ rdzdrdθ
B r 2 sin 2 θ + 2 r 2 cos 2 θ
dikliğini kontrol etmek için skaler çarpımlarını bulalım;

İntegraline ulaşırız. B bölgesi de 2 yarıçaplı ve orijin merkezli > u(t)[1]*türev(u)[1]+u(t)[2]*türev(u)[2]+


daire olduğuna göre; u(t)[3]*türev(u)[3];

2π 2 4 − r 2 sin 2 θ 2π 2 0
V= ∫∫ ∫ rdzdrdθ = ∫ ∫ (4 − r sin 2 θ − r 2 sin 2 θ − 2r 2 cos 2 θ )rdrdθ
2

0 0 r 2 sin 2 θ + 2 r 2 cos 2 θ 0 0

2π 2 2π 2 2π 2 skaler çarpımın sonucu 0 olduğundan diktir. Şimdi bu durumu


= ∫ ∫ ( 4 − 2r sin 2 θ − 2r 2 cos 2 θ )rdrdθ = ∫ ∫ ( 4 − 2r )rdrdθ = ∫ ∫ ( 4r − 2r )drdθ geometrik olarak kontrol edelim.
2 2 3

0 0 0 0 0 0

2π 2π
2
Vektör ile türevinin her zaman dik olduğunu görmeye
= ∫ ∫ ( 4r − 2r )drdθ = ∫ 2dθ = 4π br
3 3
çalışıyoruz.
0 0 0

Aşağıda tanımlı b noktasını nasıl değiştirirseniz değiştirin dikliği


Olarak sonuç elde edilir. göreceksiniz;

136 137
> b:=10; 3.10 TARLADA OTLAYAN BİR EŞEK
b := 10
> with(plots): with(plottools): Problem:
> A:=spacecurve(u(t),t=0..2*Pi,color=black, Daire şeklindeki bir tarlanın köşesine l uzunluğundaki iple bağlanan
numpoints=5000,thickness=3): eşeğin tarlanın yarısını yiyebilmesi için bu uzunluğu (yarıçap r
d:=arrow(u(2), subs(t=2,türev(u))+u(2),0.1/2, cinsinden) hesaplayınız.
0.1,0.1, color=red):
c:=arrow([0,0,0], u(2),0.1/2,0.1,0.1,
Çözüm:
color=blue):
Eşeğin boynunun uzunluğu da önemli ☺ ama ben ipin bittiği yerde
display(A,c,d,axes=normal);
eşeğin yetiştiği yerin de bittiği varsayımı ile soruya yaklaşacağım.
Ya da ipin uzunluğunu (l) eşeğin boynu ile birlikte kabul edeceğim

Öncelikle olayı grafik haline getirmeye çalışalım. Tarlayı, çapı x


ekseni olan ve orijinden geçen bir daire olarak ele alıp eşeğin
bağlandığı noktayı da orijin kabul edelim (bu arada… Tarlanın
köşesinden kasıt da tarlanın sınırı olsa gerek…☺)

r yarıçaplı dairenin (tarlanın)


kutupsal denklemi σ=2rcosθ
dır. Bu dairenin alanı da A1
olsun.

l yarıçaplı dairenin (eşeğin


Maple ile asıl görmek istediğimiz resim yukarıdaki idi. bağlı halde uzanabileceği
Yukarıdaki mavi renkli ok vektörü, kırmızı renkli ok ise türevini bölge) kutupsal denklemi σ=l
temsil etmektedir. dir.

Gördüğünüz gibi bu iki ok birbirine dik olarak elde edilmiştir. Eşeğin tarla içinde
Siyah renkli eğri ile küre dikliği daha net görebilmeniz için uzanabileceği bölgenin Alanı
çizilmiştir. Siyah renkli eğri vektörün uç noktasının çizdiği uzay da A2 olsun.
eğrisidir.

A1 = 2A2…………………………...(I) olmalıdır.
arrow(…) komutu Maple yardımı ile, ok formatında doğrular
çizmemizi sağlamaktadır. Kullanım şekli aşağıdaki gibidir;
Şimdi sırasıyla A1 ve A2 alanlarını integral yardımı ile hesaplayalım.
> arrow([2 ya da 3 boyutlu nokta olarak okun
π 2 π 2
başlangıç noktası],[ 2 ya da 3 boyutlu nokta 1
∫ ( 2r cosθ ) dθ = 4 r 2 ∫ cos θ dθ = π r 2
2 2
olarak okun bitiş noktası], okun kalınlığı,okun A 1= 2
2
uç kısmının kalınlığı,okun uç kısmının 0 0

uzunluğu)

138 139
A2 alanını hesaplamak için iki dairenin kesiştiği noktadan geçen Maple hiçbir sonuç vermemiştir. Bu durumda analitik yöntemler
kutup ekseninin x ekseni ile yaptığı pozitif yönlü açıyı (şekil ile bu denklemin çözülemediği sonucunu çıkarırız. Çemberin
üzerinde a açısı) bulmamız gerekir. yarıçapına belirli bir değer atayarak sayısal çözümleme yaptıralım;

İki dairenin kutupsal denklemlerini ortak çözelim; > r:=1;


l ⎛ l ⎞
2rcosθ = l ⇒ cosθ = ⇒ θ = arccos ⎜ ⎟ ⇒ r := 1
2r ⎝ 2r ⎠
⎛ l ⎞ π
a = arccos ⎜ ⎟ , a ∈ (0, ) olarak elde edilir. > A[2]:=2*(1/2*int(l^2,theta=0..arccos(l/(2*r)))+
⎝ 2r ⎠ 2 1/2*int(((2*r*cos(theta))^2),theta=arccos(l/(2*r)
)..Pi/2));
O halde A2 alanı aşağıdaki gibi elde edilebilir;
l 4 − l2
A2 := l 2 arccos ⎛⎜⎜ ⎞⎟⎟ − − 2 arccos ⎜⎜⎛ ⎞⎟⎟ + π
l l
⎛ arccos ⎜⎛ 2lr ⎟⎞ π ⎞
⎜1 ⎝ ⎠
1 2 ⎟ ⎝2⎠ 2 ⎝2⎠
∫ ( )
2 ∫⎛ l ⎞
A2 = 2 ⎜ θ + θ θ ⎟=
2 2
l d 2 r cos d
⎜2 0 ⎟ Ve cevap;
⎝ ⎠
arccos ⎜ ⎟
⎝ 2r ⎠
π > fsolve(2*A[2]=Pi*r^2,l);
⎛ l ⎞
2
l 2 arccos ⎜ ⎟ + 4r 2
⎝ 2r ⎠
∫ ⎛ l ⎞
cos 2 θ dθ
1.158728473
arccos ⎜ ⎟
⎝ 2r ⎠ Yorulduk ama sonuca da ulaştık. Komutları Maple’a yazmak
bile yorucu görülebilir ama bilgisayar desteği olmasaydı zahmet
Buraya kadar Maple’dan yararlanmadan geldik. Ama karşımıza çekerek oluşturduğumuz denklemi çözemeyip sorunun çözümüne
çıkan integral bütün zahmetimize bir yenisini ekledi. Matematik ulaşamayacaktık.
adına zaten önemli bir iş yaptığımız için gelin, integrali de Maple’a
bırakalım; Size bir sır vereyim! Bu sorunun çözümü hiçbir r değeri için
rasyonel çıkmıyor. fsolve komutu ile de sayısal yöntem kullanıldığı
> A[2]:=2*(1/2*int(l^2,theta=0..arccos(l/(2*r)))+ için çözüme ulaşılabiliyor ☺
1/2*int(((2*r*cos(theta))^2),theta=arccos(l/(2*r)
)..Pi/2)); Farklı r değerleri için çözümler araştırabilirsiniz.
4 r2 − l2
rl
r2
A2 := l 2 arccos ⎛⎜⎜
l ⎞
− 2 r 2 arccos ⎛⎜⎜
l ⎞
⎟⎟ − ⎟⎟ + r π
2
⎝2r⎠ 2 ⎝2r⎠

Elde edilen A1 ve A2 alanları (I) nolu denklemde yerine konarak l


değeri r cinsinden elde edilebilir. Nasıl? ☺

A2 alanının 2 katını, değeri πr2 olan A1 alanına eşitleyerek elde


ettiğimiz denklemde ipin uzunluğunu ( l ) çözelim;

> solve(2*A[2]=Pi*r^2,l);

140 141
MAPLE İLE PROGRAMLAMA ÖĞRENİYORUM

Bir problemi çözerken takip ettiğiniz sürecin bilgisayar


literatüründeki karşılığı “algoritma” dır. Yeterince mükemmel bir
algoritmanız varsa elinizden kurtulacak bir problem yoktur.
Bilgisayar programları da, bir problemi çözmeye yarayan
algoritmanın özel bir dil yardımı ile bilgisayara tanıtılmasından
ibarettir. Burada programlama dili bilgisayar ile anlaşmanızı sağlar.
Eğer sağlam temellere dayanan bir algoritmanız programlama dilini
bilmek tek başına işe yaramaz.

Bu algoritmaların işleyiş biçimi bizim bir problem üzerindeki


düşünme biçimimizden pek de farklı değildir. Program yazarak
BÖLÜM – 4 algoritmalar kurma alıştırması yapmış ve düşünce sisteminize bir
disiplin kazandırmış olursunuz.
Maple programının C, C++ ve Pascal gibi programlara benzer Bu bölüm ile hedefimiz, Maple gibi basit bir program kullanarak
kendine has ve bezerlerinden çok daha kolay bir programlama dili programlama dilini öğrenmeye daha az emek harcayıp, bir
vardır. Basit programlardan başlayarak bu dili kullanmasını problemi çözmeye yarayan algoritmaları oluşturmaya yönelik
öğrenmek Matematik öğrenirken size büyük bir avantaj yeterince alıştırma yapmak ve bu yolla matematiksel düşünce
sağlayabilir. sistemimizi geliştirmektir.
Eğer daha önce herhangi bir programlama tecrübeniz varsa bu Eğer sabırlı iseniz, Maple’ın Matematik öğrenmenize hem
dili kullanarak küçük programlar yazmak sizin için çocuk oyuncağı dolaylı hem de doğrudan, ne denli katkıda bulunduğunu zamanla
olacaktır. Hiç programlama tecrübeniz yoksa da endişe etmeyin. hissedeceksiniz.
Kendinizi zamanla geliştirebilirsiniz.

Bu bölüm, tam olarak programlama anlatan bir yapı şeklinde


4.1 MAPLE PROGRAMLARI HAKKINDA GENEL BİLGİ
tasarlanmamıştır. Kolaydan zora doğru örnek programlar seçilmiş
ve bu programlar üzerinde, Maple ait programlama dili tanıtılmaya
çalışılmıştır. Programlama ile algoritmalar oluşturup bu algoritmaları Maple
komutları ile çalışır hale getirmeyi aynı anlamda tutarak
programlama kavramını daha basit ele alırsa, önceki bölümlerde
bazı uygulamalarımızda farkında olmadan küçük programlar
yazdığımızı söyleyebiliriz.

“>” işareti ile başlayan satırlara komut satırı adını verdiğimizi


söylemiştik. Her bir komut satırını uygun şekilde sonlandırıp [enter]
tuşuna bastığımızda bu komut satırı çalıştırılır ve komutun sonucu
altında mavi renkli olarak görüntülenir.

142 141
Eğer, bir komut satırının sonunda [enter] yerine [shift+enter]
tuşlarına aynı anda basarsak komut grubu genişler ve yeni bir Üslü ifadenin tabanını elde edelim.
komut yazabileceğimiz bir satır daha elde ederiz. Son yazdığımız
komuttan sonra [enter] tuşuna bastığımızda bütün komutlar aynı > op( 1, % );
anda çalışır. ( 13 )

Şimdi de parantezi kaldıralım.

> op( 1, % );
13

Şimdi de yukarıdaki işlemleri gerçekleştiren yönergeleri aynı


uygulama grubu içinde toplayalım.
Birden fazla bilgisayar komutunun aynı amacı gerçekleştirmek
üzere koordineli olarak çalışmasını sağlamış oluruz. Yani küçük bir > 650650; (pozitif bir sayı seç)
program yazmış oluruz. ifactor( % ); (Çarpanlarına ayır)
op( nops(%), % ); (En büyük çarpanı seç)
Basit bir örnek; op( 1, % ); (varsa üssü kaldır)
op( 1, % ); (parantezi ayır)
Bir tam sayının en büyük asal çarpanını bulmaya çalışalım;

Her pozitif tam sayı asal çarpanlarına ayrılabilir. Maple'ın bunu 650650
yapmak için bir komutu vardır: ( 2 ) ( 5 ) 2 ( 7 ) ( 11 ) ( 13 ) 2
> ifactor(650650); ( 13 ) 2
( 13 )
( 2 ) ( 5 ) 2 ( 7 ) ( 11 ) ( 13 ) 2 13

Aşağıdaki komut ile son elde ettiğimiz çıktının son çarpanını Son elde edilen sonuç istediğimiz sonuçtur. Yani verdiğimiz
seçelim; sayının en büyük asal çarpanıdır. Sadece en son istenen sonucu
da görüntüleyebiliriz.
> op( nops(%), % );
> 650650:
( 13 ) 2 ifactor( % ):
op( nops(%), % ):
op(a,f) komutu f ifadesinin a. parçasını seçmeye op( 1, % ):
yarayan bir komuttur. Bu komut, f ifadesi çarpım şeklinde op( 1, % );
ise a. çarpanını toplam şeklinde ise a. parçasını seçer. 13

nops(f) komutu ise f ifadesinin parça sayısını belirler. Bu yöntem aslında bildiğimiz anlamda bir programlama değildir.
Eğer f ifadesi çarpım şeklinde ise parçadan kasıt, çarpan Ancak, oluşturduğumuz bu yapılara en temel anlamda program
sayısıdır. diyebiliriz. Bu temel şekliyle önceki bölümlerde programlar

142 143
oluşturmuştuk. Önceki bölümleri dikkatle incelerseniz benzer > isim:=proc(x1,x2, . . .,xn)
yapılara rastlarsınız.
çeşitli komutlardan
Maple yardımı ile daha formal anlamda da programlar oluşan Programın ana gövdesi
yazabiliriz. Bu programların her biri birer komut üretecektir. satırlar
Ürettiğimiz bu komutlar, aynı Maple’ın kendi içinde var olan diğer
Maple komutları gibi komut_adı(gerekli girdiler) şeklinde end;
çalışacaktır. Tabii ki kendi ürettiğiniz komutların ismini siz
belirleyebilirsiniz.
Bu yapıda;
Örnek:
isim: programın üreteceği komut için sizin vereceğiniz bir
Yukarıda bir tamsayının en büyük asal çarpanını bulmuştuk. isimdir.
Şimdi bunu formal bir komut üreterek yapalım. Bu komutun adı
“en_büyük_asal” olsun. proc: İngilizce “procedure” kelimesinin kısaltılmışıdır. Maple
programı olarak adlandırdığımız programların orijinal adı Maple
> en_büyük_asal:= proc(n) prosedürleridir.
ifactor( n );
op( nops(%), % ); x1,x2, . . .,xn: Prosedürün üreteceği komutun ihtiyaç duyduğu
op( 1, % ); girdi (input) parametreleridir. Örneğin, yukarıda yazdığımız basit
op( 1, % ); program bir tam sayının en büyük asal çarpanını bulan bir komut
end; üretmektedir. Bu komut girdi parametresi olarak bir tam sayıya
ihtiyaç duyar. Bu durum, programın başında proc(n) şeklinde
Yukarıda bir Maple programı yazılmıştır. Bu program sayesinde belirtilmiştir.
en_büyük_asal(bir tamsayı) komutu üretilmiş oldu. Bu
programı bir kez çalıştırdıktan sonra programın üretmiş olduğu Programın ana gövdesi: Bu bölümde, yazacağımız programın
komut aktif ve kullanılabilir hale gelecektir. amacına göre çeşitli hazır Maple komutları, mantıksal sınamalar
veya döngüler kullanırız. Bu kısmın en sonunda, programın
> en_büyük_asal(650650); çıktısının ekrana yazdırılmasını sağlarız.

13 Bu bölümde, Basic, C, C++, Pascal gibi bilgisayar dillerinde


rastladıklarımıza benzer operatörler kullanılır.
Bu örnekte çok basit bir Maple programı yazarak yeni bir Maple
komutu üretmiş olduk. Bu komutun kullanılabilmesi için, komutu Yukarıdaki örnekte olduğu gibi çok basit ve sıradan yapılar
üreten programın bir kez çalıştırılması yeterlidir. oluşturulabileceği gibi, çok daha karmaşık programlar da yazmak
mümkündür.
Bütün Maple programlarının genel yapısı aşağıdaki gibidir.
Bu kitap bir programlama dilini öğretmeyi hedeflemediği için
ayrıntıya girilmeyecektir. Bazı örnekler üzerinde karşılaşacağımız
özel durumların açıklanması ile yetinilecektir.

end: her Maple programı bu komut ile bitirilmelidir. Bu yolla


Maple prosedürü bitirdiğimizi anlayacaktır. end: veya end;
yazmak arasında programın çalışmasını etkileyen bir fark yoktur.

144 145
end; yazımı kullanıldığında, Maple yazdığımız programın bir
özetini, mavi renkli çıktı olarak görüntüler. • “if – then – else” mantıksal sınamasının bitirildiğini “fi” komutu,
“for – do” döngüsünün kapatıldığını ise “od” komutu
4.2 ÖRNEK MAPLE PROGRAMLARI bildirmektedir.

Aşağıda bazı matematiksel işlemleri yerine getiren programlar • Son olarak “print(topcift)” komutu ile çift sayıların eklenmesi ile
yazılmıştır. Bu örnek programlar üzerinde Maple’a özel son değeri elde edilen topcift parametresinin yazdırılması
programlama dilinin özellikleri açıklanmıştır. Önceki örneklerde istenmektedir.
karşılaşılan özellikler daha sonra tekrar kullanılmış ise yeniden
açıklamaya ihtiyaç duyulmamıştır. Bu sebeple, örnek programları modp(a,n) komutu verilen bir a sayısının mod(n)’ye göre
sıra ile incelemeniz önerilir. karşılığını veren bir Maple komutudur.
4.2.1 Çift Sayıların Toplamı
Programın ürettiği komutun örnek kullanımı:
1’den n’ye kadar olan sayıların (n dahil) çift olanlarının
toplamını bulan komutu üreten program: > toplamcift(95);
2256
> toplamcift:=proc(n) 95’e kadar olan çift sayıların toplamı 2256’dır.
local i,topcift;
topcift:=0; 4.2.2 Asal Sayıların Miktarı
for i from 1 to n do
if modp(i,2)=0 then 1’den n’ye kadar olan sayılar arasında asal olanların miktarını
topcift:=topcift+i; bulan komutu üreten program:
fi;
od; > taneasal:=proc(n::integer)
print(topcift); local i,say;
end; say:=0;
for i from 1 to n do
Açıklamalar: if isprime(i) then
• Komutun adı “toplamcift” olarak belirlenmiştir. say:=say+1;
fi;
• Komut, n olarak tanımlanan bir tek girdi parametresine ihtiyaç od;
duymaktadır. print(say);
end;
• 2. satırda, program içinde kullanılacak olan “i” ve “topcift”
parametrelerinin yerel, yani bu programa özel parametreler Açıklamalar:
olduğu belirtilmiştir. • Komutun adı “taneasal” olarak belirlenmiştir.

• 4. satır ile 8. satır arasında bir “for – do” döngüsü kurulmuştur. • Komut, n olarak tanımlanan bir tek girdi parametresine ihtiyaç
Bu döngüye göre 1’den n’ye kadar olan sayılar arasında duymaktadır. Bu parametre tam sayı olmak zorundadır.
mod(2)’ye göre 0’a eşit yani çift olanların, 3. satırda başlangıç
değeri 0 olarak belirlenen topçift parametresine eklenmesi • Örnek-1’de kullanılan “for – do” döngüsüne benzer bir döngü
istenmektedir. kullanılmıştır. Bu örnekte, 1’den n’ye kadar olan tam sayıların asal

146 147
olanları için başlangıç değeri 0 olarak belirlenen “say” Açıklamalar:
parametresine 1 eklenmesi istenmektedir. • Komutun adı “cifttoplam” olarak belirlenmiştir.

• Bu program Örnek-1’dekine çok benzemektedir. Tek fark girdi


isprime(a) komutu, bir mantıksal sınama yapmaktadır.
olarak bir sayı yerine bir liste istenmesidir. Liste, köşeli parantez
verilen bir a sayısının asal olup olmadığını sınar. Örneğin;
içinde virgülle ayrılmış sayılar olmalıdır.
> isprime(37);
• x[i] gösterimi x listesinin i. elemanı anlamına gelmektedir.
true
> isprime(33); Programın ürettiği komutun örnek kullanımı:
false
> cifttoplam([1,3,4,37,22]);
26
Programın ürettiği komutun örnek kullanımı:
> taneasal(100); Verilen listedeki çift sayıların (4 ve 22) toplamı 26’dır.
25
4.2.4 Listedeki Çift Sayıların Ortalaması
1’den 100’e kadar 25 tane asal sayı vardır.
Bir listedeki çift sayıların ortalamasını bulan komutu üreten
> taneasal(51/2); program:
Error, invalid input: taneasal expects its 1st
argument, n, to be of type integer, but received > ciftort:=proc(x::list)
51/2 local i,top,sayac;
top:=0;
Ürettiğimiz komutun girdi parametresinin bir tamsayı olması sayac:=0;
gerektiğini tanımlamıştık. Burada tamsayı kullanmadığımız için bir for i from 1 to nops(x) do
hata mesajı aldık. if modp(x[i],2)=0 then
sayac:=sayac+1;
4.2.3 Listedeki Çift Sayıların Toplamı top:=top+x[i];
fi;
Bir listedeki çift sayıların toplamını bulan komutu üreten od;
program: evalf(top/sayac);
end;
> cifttoplam:=proc(x::list)
local top,i; Açıklamalar:
top:=0; • Komutun adı “ciftort” olarak belirlenmiştir.
for i from 1 to nops(x) do
if modp(x[i],2)=0 then • Bu örnekteki program iki değer hesaplamalıdır. Bunlardan birisi
top:=top+x[i] verilen listedeki elemanların çift olanlarının toplamı, diğeri ise çift
fi; olanların sayısıdır.
od;
top; • Bu iş için “top” ve “sayac” adı verilen iki yerel parametre
end; belirlenmiş ve bunların başlangıç değerleri 0 olarak atanmıştır.

148 149
Programın ürettiği komutun örnek kullanımı:
• Daha sonra 1’den x listesinin eleman sayısına kadar kurulan
“for – do” döngüsü içinde eğer listenin i. elemanı çift ise “top” > faktöriyel(6);
parametresine i. eleman, “sayac” parametresine ise 1 eklenmiştir. 720
Bu sayede “top” parametresi listedeki çift elemanların toplamını,
“sayac” parametresi ise listedeki çift elemanların sayısını 6! = [Link].5.6 = 720’dir.
belirlemiştir.

• Döngü kapatıldıktan sonra “top/sayac” değeri yani ortamala Not: Bir Maple komutu olarak “a!” yazmak a sayısının
hesaplanarak ekrana yazdırılması istenmiştir. faktöriyelini hesaplamaktadır. Örneğin;

Programın ürettiği komutun örnek kullanımı: > 6!;


720
> ciftort([1,3,4,37,22]);
O zaman böyle bir program yazmak gereksiz görülebilir.
13. Ancak, Maple gibi basit bir dil yardımı ile bu tarz programlar
Verilen listedeki çift sayıların (4 ve 22) ortamalası 13’tür. yazarak, matematiksel düşünme sistemimize, bir bilgisayar
programı algoritması gibi disiplin kazandırmayı hedefliyoruz.
4.2.5 Bir sayının Faktöriyeli

Bir sayının faktöriyelini bulan komutu üreten program: 4.2.6 Listedeki Sayıların Faktöriyellerinin Listesi

> faktöriyel:=proc(n) Bir listedeki elemanların faktöriyellerini bulup listeleyen komutu


local i, carp; üreten program:
carp:=1;
for i from 1 to n do > listfak:=proc(x::list)
carp:=carp*i; local i,A,B;
od; for i from 1 to nops(x) do
carp; A[i]:=faktöriyel(x[i]);
end; od;
B:=[seq(A[i],i=1..nops(x))];
Açıklamalar: print(B);
• Komutun adı “faktöriyel” olarak belirlenmiştir. end;

• 1’den n’ye kadar olan sayıların toplamlarını bulurken Açıklamalar:


yaptığımıza benzer olarak “carp” yerel parametresi belirlenmiş ve • Komutun adı “listfak” olarak belirlenmiştir.
bu parametrenin başlangıç değeri 1 olarak atanmıştır. Kurulan
“for – do” döngüsü ile 1’den n’ye kadar olan sayıların “carp” • Önceki örneklere göre bu programda iki önemli farklılık vardır.
parametresi ile çarpılması sağlanmıştır. Birisi eğer hala aktif ise kendi ürettiğimiz bir komutu başka bir
programı yazarken kullanabileceğimiz gerçeği, diğeri ise farklı bir
• Son olarak, “carp” parametresinin son değeri ekrana çıktıdır.
yazdırılmıştır.
• Verilen listenin i. elemanın faktöriyeli, 5. örnekte üretilen komut
ile bulunmuş ve adı A olarak belirlenen listenin i. elemanı olarak
atanmıştır.

150 151
• Son olarak, A listesinin elemanlarının bir liste şeklinde • “B” yerel parametresi, f’nin x=n noktasındaki değeri olarak
görüntülenmesini sağlamak için B dizisi oluşturulmuş ve çıktı atanmıştır.
olarak belirlenmiştir.
• “A” ve “B” yerel parametrelerinin yardımı ile (n,B) noktasından
Programın ürettiği komutun örnek kullanımı: geçen ve eğimi A olan bir doğrunun denklemi belirlenmiş ve bu
denklem “y” yerel parametresi olarak atanmıştır.
> listfak([6,2,3]);
[ 720, 2, 6 ] • Son olarak hem “y” yani adı geçen teğet doğrunun denkleminin
ekrana yazdırılması hem de “f” ve “y” fonksiyonlarının grafiklerinin
[6,2,3] listesindeki elemanların faktöriyelleri, yine aynı sırayla çizdirilmesi sağlanmıştır.
[720,2,6] listesindeki elemanlardır.
Programın ürettiği komutun örnek kullanımı:

4.2.7 Bir Eğrinin Belli Bir Noktasındaki Teğeti > tegetdenklem(sin(x),Pi);


−1. x + 3.141592654
Herhangi bir tek değişkenli fonksiyon ile tanımlanan eğrinin,
verilen bir x=a noktasındaki teğetinin denklemini veren ve eğri ile
verilen noktadaki teğet doğruyu çizen komutu üreten program

> tegetdenklem:=proc(f,n)
local y,A,B,C;
A:=subs(x=n,diff(f,x));
B:=subs(x=n,f);
y:=evalf(A*(x-n)+B);
print(y);
plot([y,f],x=n-5..n+5,color=[blue,red]);
end; y = sin(x) fonksiyonunun x=π noktasındaki teğet doğrusunun
denklemi “y = -x + 3.141592654” dir. Altta elde edilen grafikte ise
Açıklamalar: kırmızı eğri y = sin(x) fonksiyonunun grafiği, mavi doğru da x=π
• Komutun adı “tegetdenklem” olarak belirlenmiştir. noktasındaki teğet doğrunun grafiğidir.
• Bu örnekte, öncelikle matematiksel bir hazırlık yapmamız 4.2.8 Fibonacci Dizisinin Elemanları
gerekmektedir. Bir fonksiyonun verilen bir noktasındaki teğetinin
denkleminin nasıl bir prosedür ile bulunduğunu algoritmik bir Fibonacci dizisinin ilk n elemanını listeleyen komutu üreten
disiplin içinde belirlememiz gerekir. program.

• Öncelikle, üretilecek komutun girdi parametresi olarak iki > fibx:=proc(n)


parametreye ihtiyaç duyduğunun farkında olmalıyız. Bunlardan local i,A,B;
biri bir fonksiyon, diğeri ise bir x=n noktasıdır. A[1]:=1;
A[2]:=1;
• “A” yerel parametresi, f’nin x’e göre türevinin x=n noktasındaki for i from 3 to n do
değerine atanmıştır. A[i]:=A[i-1]+A[i-2];

152 153
od; print("extreme noktalarin apsisleri"=C,"dönüm
B:=[seq(A[i], i=1..n)]; noktalarinin apsisleri"=D)
print(B); end;
end;
Açıklamalar:
Açıklamalar: • Komutun adı “criticalpoints” olarak belirlenmiştir.
• Komutun adı “fibx” olarak belirlenmiştir.
• Verilen fonksiyonun türevinin 0’a eşitlenmesinden elde edilen
• Öncelikle, fibonacci dizisinin elemanlarının nasıl bir bağıntı ile denklem çözülerek çözümlere “C” adı verilmiştir. Benzer şekilde
elde edildiğini hatırlayalım; fonksiyonun ikinci türevinin 0’a eşitlenmesinden elde edilen
Birinci ve ikinci elemanları 1 olarak belirlendikten sonra, önceki denklem çözülerek çözümlere “D” adı verilmiştir.
iki elemanının toplamı sıradaki elemanı vermektedir. Örnek olarak
fibonacci dizisinin ilk 5 elemanını yazalım; 1, 1, 2, 3, 5, . . . • C ve D çözümlerinin elde edildiği komut küme parantezi içine
alınarak sonuçların bir kümenin elemanları şeklinde
• Adını A olarak belirlediğimiz bir listenin 1. ve 2. elemanlarını 1 görüntülenmesi sağlanmıştır. Küme parantezlerini kaldırsanız da
olarak belirliyoruz. program çalışır, ancak çıktı farklı şekilde, bir karışıklığa sebep
olabilecek tarzda görüntülenir. Deneyin!
• Dizinin 3’ten n’ye kadar olan elemanlarını bulmak için bir “for –
do” döngüsü kurulmuştur. 3’ten n’ye kadar A listesinin (i–1). • print komutu içine tırnak işareti arasında yazılan kısım Maple
Elemanı ile (i–2). elemanlarının toplamı i. elemanını tarafından bir metin olarak tanınır ve herhangi bir hesaplama
belirleyecektir. yapılmadan aynen görüntülenir.

• Son olarak A listesinin 1. elemanından n. elemanına kadar Programın ürettiği komutun örnek kullanımı:
tüm elemanları bir dizi oluşturacak şekilde tanımlanmış ve çıktı
olarak yazdırılmıştır. > criticalpoints(x^3-x^2);
2 1
"extreme noktalarin apsisleri" = { 0, }, "dönüm noktalarinin apsisleri" = { }
Programın ürettiği komutun örnek kullanımı: 3 3
y = x3 – x2 fonksiyonunun yerel maksimum ya da yerel minimum
> fibx(10); 2 1
noktaları x = 0 ve x = , dönüm noktası ise x = tür.
[ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ] 3 3

Fibonacci dizisinin ilk 10 elemanı [1,1,2,3,5,8,13,21,34,55] tir. > criticalpoints(tan(x));


"extreme noktalarin apsisleri"= { }, "dönüm noktalarinin apsisleri"= { 0 }
4.2.9 Bir Fonksiyonun Kritik Noktaları
y = tan(x) fonksiyonunun yerel maksimum ya da yerel minimum
Verilen bir fonksiyonun kritik noktalarını bulan komutu üreten noktası yoktur, dönüm noktası ise x = 0 dır.
program.
> criticalpoints(x^3);
> criticalpoints:=proc(f) "extreme noktalarin apsisleri"= { 0 }, "dönüm noktalarinin apsisleri"= { 0 }
local i,A,B,C,D;
A:=diff(f,x);
x = 0 noktası y = x3 fonksiyonunun hem ekstreme noktası hem
C:={solve(A=0)};
de dönüm noktası olarak elde edilmiştir. Bu durumda, x = 0
B:=diff(f,x$2);
D:={solve(B=0)};

154 155
noktasının fonksiyonun birinci türevinin çift katlı kökü olduğunu • Yukarıdaki toplamın Maple tarafından hesaplanabilmesi şu
anlarız. x = 0 noktası fonksiyonumuzun dönüm noktasıdır. yolla sağlanmıştır;

“top” adı verilen bir yerel parametre belirlenmiş ve bulmamız


Not: Maple’ın bize sunduğu sonuçları matematik
gereken toplamın ilk elemanı olan f(k) bu parametrenin ilk değeri
bilgimizi kullanarak değerlendirmemiz gerektiğini
olarak atanmıştır.
unutmayalım!
Zaten programın algoritmasını kendimiz kurduğumuz
Daha sonra kurulan bir “for – do” döngüsü ile bir “s” yerel
için elde ettiğimiz sonuçları da yorumlama şansımız
parametresinin 1’den n’ye kadar aldığı değerler için, fonksiyonun
vardır.
s. dereceden türevinin x=k noktasındaki değeri hesaplanmış ve A
yerel parametresine atanmıştır. A değerinin (x – k)’nın s. kuvveti
4.2.10 Taylor Serisi Açılımı çarpımı s! değerine bölünmüş ve B yerel parametresine
atanmıştır.
Verilen bir fonksiyonun, x = k noktasının komşuluğundaki, n.
dereceden Taylor serisi açılımını bulan komutu üreten program. Elde edilen B değeri top parametresine atanmıştır.

> tayx:=proc(f,k,n) • Son olarak “for – do” döngüsü kapatılmış ve “top”


local s,A,B,top; parametresinin döngü içinde elde edilen son değerinin
top:=evalf(subs(x=k,f)); yazdırılması sağlanmıştır.
for s from 1 to n do
A:=evalf(subs(x=k,diff(f,x$s)));
B:=A*(x-k)^s/s!; diff(f,x$s) komutu f fonksiyonun x’e göre s.
top:=top+B; mertebeden türevini bulmaktadır.
od;
top; Bir Maple programında, end; komutu ile program
end; bitirilmeden hemen önce yazılan parametre ekrana yazdırılır.
Bu durumda print(…) komutunu kullanmaya gerek
Açıklamalar: yoktur. Programlar üzerinde çalışmaya devam ettikçe bu
• Komutun adı “tayx” olarak belirlenmiştir. kullanımın faydalarını göreceksiniz.

• Bu programda üretilen komut 3 ayrı girdi parametresine ihtiyaç


duymaktadır. Bunlar f (seriye açmak istediğimiz fonksiyon), k Programın ürettiği komutun örnek kullanımı:
(fonksiyonun hangi nokta civarındaki açılımını istediğimizi belirten
Aşağıda bazı fonksiyonların seri açılımları verilmiştir.
değer) ve n (açılımın derecesi) olarak belirlenmiştir.
> tayx(sin(x),0,10);
• Bir f(x) fonksiyonun k noktası komşuluğunda n. dereceden seri 1. x − 0.1667 x 3 + 0.008333 x 5 − 0.0001984 x 7 + 0.2756 10 -5 x 9
açılımının nasıl bulunduğunu hatırlayalım;
> tayx(exp(x),0,5);
n f ( ) (k ) ( x − k )
s s
f ′′(k ) ( x − k )
2
f ( ) (k ) ( x − k )
n n 1. + 1. x + 0.5000 x 2 + 0.1667 x 3 + 0.04167 x 4 + 0.008333 x 5
f ( x) ≅ ∑ = f ( k ) + f ′(k ) ( x − k ) + +" +
s =0 s! 2! n!
> tayx(tan(x),1,5);
−1.867 + 3.424 x + 5.330 ( x − 1. ) 2 + 9.440 ( x − 1. ) 3 + 16.48 ( x − 1. ) 4 + 28.87 ( x − 1. ) 5

Şimdi de bu açılımlardan birini grafiksel olarak inceleyelim;

156 157
sin(x) fonksiyonunun x=0 civarındaki bazı derecelerden seri Bu görsel sonuç ile Taylor serileri ile ilgili teorik bilgilerinizi
açılımları ile sin(x) fonksiyonun grafiğini aynı anda çizelim; bir araya getirip yorumlamaya çalışınız!

> A:=seq(tayx(sin(x),0,i),i=1..10): Bu uygulamada kullanılan “tayx” komutundaki fonksiyonu


plot([sin(x),A],x=-2*Pi..2*Pi,view=-2..2, veya k değerini değiştirerek farklı durumları inceleyebilirsiniz.
color=[black,blue]);
4.2.11 Serinin Karakteri

Verilen bir serinin karakterini oran ve raabe testleri ile belirleyen


komutu üreten program.

> kar:=proc(f)
local p,a,t;
a:=subs(n=n+1,f);
p:=limit(a/f,n=infinity);
t:=limit(n*(1-a/f),n=infinity);
print("oran testi sonucu",p);
print("raabe testi sonucu",t);
if p<1 then print("oran testine göre
yakinsak")
else if p>1 then print("oran testine göre
iraksak")
else if t>1 then print("raabe testine göre
yakinsak")
else if t<1 then print("raabe testine göre
iraksak")
else print("oran ve raabe testleri
karakteri belirleyemiyor!")
Yukarıda da informal bir şekilde iki satırlık küçük bir program fi;
yazmış olduk. fi;
fi;
Bu program “tayx” komutu yardımı ile x=0 civarında sin(x) fi;
fonksiyonun 1. dereceden 10. dereceye kadar seri açılımlarını end;
bulup bir dizinin elemanları olarak belirlemekte ve bu dizinin
elemanları ile sin(x) fonksiyonun grafiğini aynı koordinat sistemi
Açıklamalar:
üzerinde görüntülemektedir.
• Komutun adı “kar” olarak belirlenmiştir.
Siyah eğri sin(x) eğrisi, mavi eğriler ise seri açılımlarını temsil
eden eğrilerdir. Görüldüğü gibi, derece arttıkça mavi eğriler sinüs • Bir reel sayı serisinin karakterini belirlemeye yarayan oran
eğrisi ile daha fazla çakışmaktadır. Bu çakışma, x=0 noktasını testinin sonuçsuz olduğu durumlarda genellikle raabe testinin
merkez kabul etmektedir. kullanılması böyle bir program yazma fikrini oluşturmuştur.

158 159
• Oran testinde limiti alınması gereken ifade “p”, raabe testinde
limiti alınması gereken ifade ise “t” yerel parametresi olarak 4.2.12 Kümelerin Bileşimi
atanmıştır.
Verilen A, B kümeleri için (A∪B) kümesini bulan komutu üreten
• Daha sonra iç içe kurulan bir “if – then – else” sınaması ile program.
serinin karakterinin kontrolü, aşağıdaki gibi yapılmıştır;
> bilesim:=proc(A::set,B::set)
Eğer p>1 ise “oran testine göre ıraksak”, aksi taktirde, eğer p<1 local i,j,k,d,C,L;
ise “oran testine göre yakınsak”, aksi taktirde t>1 ise “raabe testine k:=0;
göre yakınsak, aksi taktirde, eğer t<1 ise “raabe testine göre for i to nops(A) do
ıraksak”, aksi taktirde, “oran ve raabe testleri karakteri k:=k+1;
belirleyemiyor”. C[k]:=A[i];
od;
• Kurulan iç içe sınamayı, iç içe parantezler gibi düşünebilirsiniz. for i to nops(B) do
Son olarak açılan bütün parantezler “fi” komutları ile d:=0;
kapatılmaktadır. for j to k do
if B[i]<>C[j] then d:=d+1;
Programın ürettiği komutun örnek kullanımı: fi;
od;
> kar(1/n^2); if d=k then k:=k+1;
"oran testi sonucu", 1 C[k]:=B[i];
fi;
"raabe testi sonucu" , 2 od;
"raabe testine göre yakinsak" L:={seq(C[i],i=1..k)}

1 end;
∑n
n =1
2
serisi yakınsaktır.
Açıklamalar:
• Komutun adı “bilesim” olarak belirlenmiştir.
> kar(3^n);
"oran testi sonucu", 3 • Program, iki kümeyi girdi parametresi olarak kullanmaktadır.
"raabe testi sonucu" , −∞ Girdi parametreleri A ve B olarak adlandırılmıştır.
"oran testine göre iraksak"
∞ • İlk kurulan “for – do” döngüsü ile A kümesinin bütün elemanları
∑3
n =1
n
serisi ıraksaktır. C listesine eklenmiştir.

• Daha sonra iç içe kurulan iki “for – do” döngüsü ile B


> kar(1/n);
kümesindeki elemanların C kümesindeki elemanlar ile farklı
"oran testi sonucu", 1 olanları belirlenmiş ve bu elemanlar da C listesine eklenmiştir.
"raabe testi sonucu" , 1
"oran ve raabe testleri karakteri belirleyemiyor!" • Son olarak C listesinin elemanları bir diziye aktarılarak ekrana

1 yazdırılmıştır.

n =1 n
serisinin karakteri bu testler yardımı ile

belirlenememektedir.

160 161
Programın ürettiği komutun örnek kullanımı: > fark:=proc(x::set,y::set)
local i,j,k,L,C;
> bilesim({a,b,1},{2,a,5}); k:=0;
{ 1, 2, 5, s, a, b } for i to nops(x) do
if not(member(x[i],y)) then k:=k+1;
4.2.13 Kümelerin Arakesiti C[k]:=x[i];
fi;
od;
Verilen A, B kümeleri için (A∩B) kümesini bulan komutu üreten
L:={seq(C[t],t=1..k)};
program.
end;
> arakesit:=proc(x::set,y::set)
local b,i,j,k,l; Açıklamalar:
l:=0; • Komutun adı “fark” olarak belirlenmiştir.
for i to nops(x) do
for j to nops(y) do • Kurulan bir “for – do” döngüsü ile x kümesinin elemanlarının y
if x[i]=y[j] then l:=l+1; kümesinin de elemanı olup olmadığı kontrol edilmiş ve y
k[l]:=x[i]; kümesinin elemanı olmayanlar C listesine aktarılmıştır.
fi;
od; • Son olarak C listesinin elemanları bir diziye aktarılarak ekrana
od; yazdırılmıştır.
b:={seq(k[i],i=1..l)};
end; Programın ürettiği komutun örnek kullanımı:

Açıklamalar: > fark({a,b,1},{2,a,5});


• Komutun adı “arakesit” olarak belirlenmiştir. { 1, b }

• İç içe kurulan iki “for – do” döngüsü ile x ve y kümelerinin aynı 4.2.15 Binom Açılımı
olan elemanları belirlenmiş ve bu elemanlar k listesine
(a+b)n ifadesinin binom açılımını veren komutu üreten program.
aktarılmıştır.
> binom:=proc(a,b,n)
• k listesinin elemanları bir diziye aktarılarak ekrana local k,A;
yazdırılmıştır. A:=sum(n!/(k!*(n-k)!)*a^k*b^(n-k),k=0..n);
print(A);
Programın ürettiği komutun örnek kullanımı: end;

> arakesit({a,b,1},{2,a,5}); Açıklamalar:


{a} • Komutun adı “binom” olarak belirlenmiştir.

• (a + b)n ifadesinin açılımını bulmak üzere a, b ve n girdi


4.2.14 İki Kümenin Farkı
parametrelerinin tanımlanması gerekmektedir.
Verilen A, B kümeleri için (A-B) kümesini bulan komutu üreten
program.

162 163
n
⎛n⎞
• A yerel parametresi olarak ∑⎜ k ⎟a b
k n−k
ifadesi tanımlanmış ve 4.3 PROGRAMLAMA İLE PROBLEM ÇÖZÜMLERİ
⎝ ⎠
k =0

A parametresinin ekrana yazdırılması sağlanmıştır.


Maple programlarından yararlanarak bazı problemlerin
çözümüne de destek olabiliriz.

Programın ürettiği komutun örnek kullanımı: 4.3.1 Bir Sayı Problemi

(x + y)2 ifadesinin açılımını bulalım; “abc” üç basamaklı sayısından her basamağın küpü çıkartılırsa
> binom(x,y,2); elde edilebilecek en büyük sayı kaçtır?
y2 + 2 x y + x2 Çözüm: İlk bakışta sayılar teorisi yardımı ile çözülebilecek bir
problem olmasına rağmen biz çözümü aşağıdaki gibi kurgulayalım;
2 3
(x + 2y) ifadesinin açılımını bulalım;
> binom(x^2,2*y,3); İstenen ifadeyi üç değişkenli bir fonksiyon olarak ele alalım;
8 y 3 + 12 x 2 y 2 + 6 x 4 y + x 6
> f:=(a,b,c)->((100*a+10*b+c)-(a^3+b^3+c^3));
f := ( a, b, c ) → 100 a + 10 b + c − a 3 − b 3 − c 3

Fonksiyon sürekli olduğundan, her değişkene göre kısmi


türevlerini sıfıra eşitleyen denklem sisteminin çözüm kümesi
ekstrem nokta olur.

> x:=diff(f(a,b,c),a);
x := 100 − 3 a 2
> y:=diff(f(a,b,c),b);
y := 10 − 3 b 2
> z:=diff(f(a,b,c),c);
z := 1 − 3 c 2
> A:=(solve(x=0));
10 3 10 3
A := − ,
3 3
> B:=(solve(y=0));
30 30
B := − ,
3 3
> C:=(solve(z=0));
3 3
C := − ,
3 3

164 165
Çözüm kümesi reel sayı olarak bulunmuştur. Bu sayıları en Son olarak A listesindeki en büyük elemanı bulup ekrana
yakın pozitif tam sayıya yuvarlamalıyız, çünkü a,b ve c birer yazdırmaktadır.
rakamdır
Programı çalıştıralım ve sonucu görelim;
> a:=round(A[2]);
b:=round(B[2]); > çözüm(1,9);
c:=round(C[2]); 396
a := 6 Görüldüğü gibi, manüel olarak yapamayacağımız bir işlemde
b := 2 bilgisayardan yararlanarak, bütün ABC üç basamaklı sayılarından
c := 1 basamaklarının küpleri toplamlarının çıkarılması durumunda kaç
kalacağını tek tek kontrol ettik ve bu değerlerin en büyüğünü
> f(a,b,c); bulduk.
396
Bu yolla bulunan sonucun doğru olduğuna dair bir şüphe yok.
Zaten analitik bir yöntem ile de aynı sonuca ulaşmıştık.
Cevap: Soruda bahsedilen büyük fark 396'dır. Ve bu değer 621
için elde edilebilmektedir. Yazdığımız bilgisayar programı hangi üç basamaklı sayı için
396 değerini elde edebileceğimizi vermemektedir. Ancak,
Elde ettiğimiz bu çözümü bir Maple programı yardımı ile de programın algoritmasında bu sayıların da belirlendiğini
bulmaya çalışalım; görebilmekteyiz. Eğer programda küçük bir değişiklik yaparsak bu
sayıyı da ekrana yazdırmamız mümkündür.
Bu amaçla aşağıdaki program üretilmiştir.
Aşağıdaki programı çalıştırdığınızda, elde edeceğiniz listede
> çözüm:=proc(t,k)
396 değerinin hangi sayı için elde edildiğini görebilirsiniz;
local a,b,c,i,A;
i:=0; > listele:=proc(t,k)
for a from t to k do local a,b,c,i,A;
for b from 0 to k do i:=0;
for c from 0 to k do for a from t to k do
i:=i+1; for b from 0 to k do
A[i]:=(100*a+10*b+c)-(a^3+b^3+c^3); for c from 0 to k do
od; i:=i+1;
od; A[i]:=(100*a+10*b+c)-(a^3+b^3+c^3);
od; print([a,b,c],A[i]);
max(seq(A[l],l=1..i)); od;
end; od;
od;
Adını “çözüm” koyduğumuz bu program, yüzler basamağı t olan end;
üç basamaklı sayılardan yüzler basamağı k olan üç basamaklı
sayılara kadar bütün kombinasyonları ve bu kombinasyonlara 4.3.2 Yarışmacıya Danışmanlık Yapalım
karşılık gelen soruda istenen farkları bulmakta ve elde edilen bütün
değerleri bir A listesine kaydetmektedir. Bir yarışta, yarışmacılar nehir üzerinde sahile 50 metre
uzaklıktaki bir noktadan yarışmaya başlayıp, başlama noktasının
sahildeki izdüşümüne 1 km uzaklıkta kıyıdaki bitiş noktasına

166 167
ulaşacaktır. Yarışmacılardan birinin yüzme hızı 4 m/sn, koşma hızı > yertesp:=proc(n)
ise 6 m/sn olduğuna göre bu yarışmacının en kısa sürede bitiş local L1,L2,L3,L4,p1,p2,p3;
noktasına ulaşması için sahile çıkması gereken noktayı L1:=line([0,1],[n/50,0], color=yellow,
belirleyiniz? (Nehirde herhangi bir akıntı olmadığı varsayılacaktır.) thickness=3);
L2:=line([n/50,0],[20,0], color=yellow,
Çözüm: Öncelikle, aşağıdaki komutlar yardımı ile çizdiğimiz thickness=2);
grafik sayesinde problemi anlayalım; L3:= line([0,0],[20,0], color=black,
thickness=2);
> with(plots): with(plottools): L4:= line([0,1],[20,1], color=blue,
thickness=2);
> L2:= line([0,0],[20,0], color=black, p3:= point([n/50,0],color=red,symbolsize=20,
thickness=2): symbol=circle);
L1:= line([0,1],[20,1], color=blue, p2:= point([20,0],color=black,symbolsize=20,
thickness=2): symbol=circle);
p1:= point([0,1], color=blue, symbolsize=20, p1:= point([0,1], color=blue, symbolsize=20,
symbol=circle): symbol=circle);
p2:= point([20,0],color=black, symbolsize=20, display([L1,L2,L3,L4,p1,p2,p3],axes=none,
symbol=circle): title="şekil-2");
p3:= point([7,0],color=red, symbolsize=20, end:
symbol=circle):
display([L1,L2,p1,p2], axes=none); > süretesp:=proc(n)
local a,b,t1,t2,t;
a:=sqrt((50*1)^2+n^2);
b:=(1000-n);
t1:=evalf(a/4);
t2:=evalf(b/6);
t:=evalf(t1+t2);
"nehirde yüzülen zaman"=t1,"sahilde koşulan
zaman"=t2,"toplam yarışma zamanı"=t;
end:

yertesp(n) fonksiyonunda n yerine başlangıç noktasının sahile


Yukarıdaki şekilde mavi çizgi ile siyah çizgi arası "nehir", siyah olan izdüşümünden karaya çıkılan noktaya kadar olan mesafenin
çizgi "sahil" olarak resmedilmiştir. Mavi nokta "Yarışa başlama metre cinsinden karşılığını yazıp "ENTER" tuşuna bastığınızda
noktası", siyah nokta "Bitiş noktası" ve kırmızı nokta ise sarı çizgi ile yarışmacımızın rotasını görebilirsiniz. Kırmızı nokta
yarışmacının muhtemel karaya çıkış noktasını temsil etmektedir. karaya çıkma noktasını göstermektedir.
Kırmızı noktanın başlama noktasının karaya olan süretesp(n) fonksiyonunda da yine n yerine yukarıdaki değeri
izdüşümünden ne kadar uzakta olması gerektiğini arıyoruz. Bu yazarsanız yarışmacının nehirde, karada ve toplam ne kadar
uzaklığı “n” ile adlandıralım. zaman harcayarak bitiş noktasına ulaştığını görebilirsiniz. (Süreler
saniye cinsinden verilmektedir).
Aşağıdaki iki Maple programı denemeler yaparak karaya çıkış
noktasının en uygun değerini bulmanıza yardımcı olacaktır.

168 169
> n:=500; Tabii ki bu çözüm, analitik bir çözüm değildir ve kesin çözüm
yertesp(n); olarak adlandırılamaz.
süretesp(n);
Ancak, yarışma zamanının saniye cinsinden olduğu dikkate
karadaki_nokta := 500 alınır ve 45 metre değerinin elde edildiği sırada yarışma zamanının
binde birlik bir değişime uğradığı düşünülürse, bu yöntemle
bulduğumuz çözümün pratik anlamda değerli olduğu sonucuna
varabiliriz.

Teorik olarak daha kesin bir sonuç bulmak için aşağıdaki


yöntemi uygulayalım;

Nehirdeki başlama noktasından karaya çıkılan noktaya kadar


olan mesafeye M1 diyelim;

Bir dik üçgen oluşacağından pisagor teoremini kullanarak M1


fonksiyonunu şöyle yazabiliriz.

"nehirde yuzulen zaman" = 125.6234452 > restart;


> M1:=sqrt(50^2+n^2);
"sahilde kosulan zaman" = 83.33333333
"toplam yarisma zamani" = 208.9567785 M1 := 2500 + n 2

“n” değerini değiştirerek aşağıdaki tabloyu dolduralım ve en Karaya çıkılan noktadan bitiş noktasına kadar olan mesafeye
uygun karaya çıkma noktasını tahmin etmeye çalışalım; de M2 diyelim;

> M2:=1000-n;
Karaya çıkma Yarışma
noktası (n) zamanı M2 := 1000 − n
500 208,95
1000 250,31 Yüzülen zaman Z1 olsun;
0 179,17
10 177,75 > Z1:=M1/4;
30 176,24 2500 + n 2
40 176,007
Z1 :=
4
50 176,011
45 175,983 Koşulan zaman Z2 olsun;
43 175,986
44 175,984 > Z2:=M2/6;
500 n
Yukarıdaki tabloda elde ettiğimiz değerler, yarışmacının yarışa Z2 := −
başladığı noktanın karadaki izdüşümünden yaklaşık 44 – 45 metre
3 6
ileride karaya çıkmasının uygun olduğunu gösteriyor.
Toplam zamanı veren fonksiyonumuz Z olsun;

170 171
> Z:=Z1+Z2;
2500 + n 2 500 n > tegetdenklem(Z);
Z := + −
4 3 6

Yukarıda, toplam yarışma zamanını veren fonksiyonu


oluşturmuş olduk. Bu fonksiyonun grafiğini çizerek yarışma
zamanındaki değişimi görelim;

> plot(Z,n=0..1000,resolution=100,numpoints=100);

Bir fonksiyonun herhangi bir noktasındaki türevi o noktadaki


teğetin eğimine eşittir.

Bu problemde bizim aradığımız nokta Z fonksiyonunun en


küçük değerini aldığı "n" noktasıdır. Bu noktadaki eğim sıfır
Grafiği inceleyiniz. Deneme-yanılma yöntemi ile bulduğumuz olduğuna göre Z fonksiyonunun bu noktadaki türevinin de sıfır
sonuçlar grafikte yerleştirildiğinde sizce en küçük Z değeri olması gerekir.
nerededir?
O zaman yapmamız gerekeni aşağıda görelim;
Aşağıdaki Maple programı yardımı ile Z(n) fonksiyonunun en
küçük değerini aldığı noktada eğriye bir teğet çizilmiştir. > a:=diff(Z,n);
n 1
a := −
> tegetdenklem:=proc(f) 4 2500 + n 2 6
local y,A,B,C,t,w;
Z(n) fonksiyonunun türevini aldık.
w:=diff(f,n);
t:=solve(w=0);
> b:=solve(a=0);
A:=subs(n=t,w);
B:=subs(n=t,evalf(f)); b := 20 5
y:=evalf(A*(n-t)+B);
plot([y,f],n=0..1000,color=[blue,red]); Bulduğumuz türevinin 0’a eşitlendiği denklemi çözdük.
end:

172 173
Bu sonuç problemimizin tam çözümüdür. Bulduğumuz çözümün
sayısal çözümünü bularak deneme-yanılma yolu ile bulduğumuz Bu program içinde kullanılan parametreler, daha önceki
sonuçla karşılaştıralım; programlardan farklı olarak “global” tanımlanmıştır.

> evalf(b); Bu sayede, program içinde tanımladığımız parametreler


44.72135954 programın dışında da kullanılabilecektir;

Deneme-yanıla yolu ile bulduğumuz sonuç yaklaşık 45 metre idi > a:=25:
tam sonucun ise 44,72 metre olduğunu bulmuş olduk. dikucgen(a);
312, 313
Gerçekten de 1000 metrelik bir mesafede 0,28 metrenin
pratikteki önemi yok denecek kadar azdır. A değerinin 25 seçilmesi ile programı çalıştırdığımızda diğer dik
kenarın 312, hipotenüsün ise 313 olduğunu bulduk.

4.3.3 Pisagor Üçgenleri Şimdi, bu değerlerin bir dik üçgen oluşturup oluşturmadığını
kontrol edelim;
3–4–5 ve 5–12–13 gibi meşhur dik üçgenleri hepimiz biliriz. Bu
üçgenlerin meşhur olmasındaki sebep, kenar uzunlukları tamsayı > with(geometry):
olan dik üçgenler olmasıdır. triangle(T,[a,b,c]):
IsRightTriangle(T);
Kısa kenarlarından biri a tamsayısı olan bir dik üçgende, a
a2 -1 a2 +1 true
sayısı tek ise diğer dik kenarın 2 , hipotenüsün 2 olarak, a
25–312–313 üçgeninin, bir dik üçgen olduğunu anlıyoruz.
a2 a2
sayısı çift ise diğer dik kenarın 4 − 1 , hipotenüsün 4 + 1 olarak,
Buna göre, yukarıda yazdığımız program sayesinde her zaman
yine bir tam sayı şeklinde bulunabildiği iddia edilmektedir. kullandıklarınızdan daha farklı özel dik üçgenler elde edebilirsiniz.
Bunun için a değerini değiştirmeniz yeterlidir.
Bu iddiayı kontrol ediniz.

Çözüm: “geometry” paketini açtıktan sonra kullandığımız


Aşağıdaki programı deneyelim; “triangle” ve “IsRightTriangle” komutları sırasıyla,
üçgen tanımlamak ve tanımlanan bir üçgenin dik üçgen olup
> dikucgen:=proc(a) olmadığını sorgulamak için kullanılmaktadır.
global b,c;
if modp(a,2)=1 then
c:=(a^2+1)/2;
b:=(a^2-1)/2;
else
c:= a^2/4+1;
b:=a^2/4-1;
fi;
print(b,c);
end;

174 175
Diferansiyel denklem çözme dsolve
MAPLE SÖZLÜĞÜ Diferansiyel denklem çözümüne ait grafiği çizme. “plots”
komutu açılınca çalışır. odeplot
Dizi tanımlama seq
Bu sözlükte, Maple programına ait bazı komut ve kodların ne array
Dizin tanımlama
işe yaradığı kısaca tanımlanmıştır.
Doğal logaritma ln
Doğal logaritma tabanı olan e sayısı exp(1)
Komut ve kodların nasıl kullanıldığı açıklanmamıştır. Kullanım
özelliklerine dair açıklamaları bu kitapta bulabilir ya da ilgili komuta e üzeri x exp(x)
ait yardım sayfasına, sözlükte geçen ismin başına “?” işareti Faktöriyel hesabı a!
ekleyerek Maple çalışma sayfasına yazıp çalıştırdığınızda açılan for döngüsü kurmak for - do
yardım menüsünden ulaşabilirsiniz. Geometri paketi with(geometry)
Grafik çizme plot
Unutmayın! Bu sözlük, sadece “küçük bir hızlı referans” Hızlı grafik çizme. Sadece fonksiyon tanımlamak
özelliği taşımaktadır. yeterlidir, Maple varsayılan bir aralık atayarak grafiği
görüntüler. smartplot
İki matrisin çarpımını bulur. “LinearAlgebra” paketi
3 boyutlu grafik çizme plot3d açılınca çalışır. MatrixMatrixMultiply
a sayısının b. dereceden kökünü bulur root(a,b) imajiner birimi tanımlama I
Animasyon üretme.”plots” paketi açılınca çalışır! animate integral hesabı int
Asal çarpanlarına ayırma ifactor İşaret fonksiyonu signum
Aralık tanımlama. Her türlü aralık içn kullanılır. a..b Kapalı fonksiyonların 3 boyutlu grafiğini çizme. “plots”
paketi açılınca çalışır. implicitplot3d
Bir ifadede değişkenlerin yerine değer yazma subs Kapalı fonksiyonların grafiğini çizme. “plots” paketi
Bir ifadedeki belli bir sıradaki unsuru seçme op açılınca çalışır. implicitplot
Bir ifadeyi açma expand Kapalı fonksiyonların türevini alma implicitdiff
Bir ifadeyi oluşturan unsurların sayısını belirleme. nops Karekök alma sqrt
Bir matrisin tersini alma. “LinearAlgebra” paketi açılınca Koordinat sisteminde nokta işaretleme. “plots” paketi
çalışır. MatrixInverse açılınca çalışır. pointplot
Bir sayının asal olup olmadığını sınama isprime kotanjant cot(x)
/ Kutupsal tanımlı fonksiyonların grafiğini çizme. “plots”
Bölme işlemi
paketi açılınca çalışır. polarplot
Büyüktür işareti >
Küçüktür işareti <
cosinüs cos(x)
Limit alma limit
Çalışma sayfasını yenileme restart
Lineer cebir paketi with(LinearAlgebra)
Çarpanlara ayırma factor
Matris tanımlama Matrix
Çarpma işlemi *
Modul hesabı. a sayısının n modulunu bulur modp(a,n)
Çıkarma işlemi -
Mutlak değer abs(x)
Çizgi çizme. ”plots” paketi açılınca çalışır! line
Ok şekli çizme. “plottools” paketi açılınca çalışır. arrow
Çizim araçları paketi with(plottools)
Öğrenci paketi with(Student)
Çizim elemanlarını görüntüleme. ”plots” paketi açılınca
çalışır! display Parçalı fonksiyon tanımlama piecewise
Çizim paketi with(plots) pi (π) sayısı Pi
Denklem çözme solve Program içinde bir sınama yapma if - then - else
Determinant hesabı. “LinearAlgebra” paketi açılınca Program içinde döngü kurmak while - do
çalışır. Determinant
program içinde global değişken tanımlama global

176 177
Program içinde yerel değişken tanımlama local
Reel bir sayıyı, en yakın tam sayıya yuvarlama round DİZİN
Sadeleştirme yapma simplify
Sayısal hesaplama yapma evalf
A
Sayısal yöntem ile denklem çözme fsolve
sum
abs, 19, 24, 28, 73
Seri tanımlama
algoritma, 117, 141
Sinüs sin(x) animate, 31, 32, 33, 51, 60, 61, 65, 66, 67, 68, 80, 81, 86, 87
Tam değer hesabı floor array, 52
tanjant tan(x) arrow, 138
ters cosinüs arccos(x) atama, 9
axes, 80, 81, 86, 87, 99, 100, 103, 106, 116, 125, 127, 138, 168, 169
ters kotanjant arccot(x)
ters sinüs arcsin(x)
ters tanjant arctan(x)
B
Toplama işlemi + background, 51, 80, 81, 86, 87
Türev alma diff binormal, 113, 115
Uzay eğrisi çizme. “plots” paketi açılınca çalışır. spacecurve
Üs (kuvvet) tanımlama a^b C
color, 12, 22, 24, 26, 29, 30, 51, 55, 60, 61, 65, 66, 67, 68, 70, 74, 75, 76,
80, 81, 83, 85, 86, 87, 99, 100, 103, 106, 115, 116, 125, 127, 130, 134,
138, 152, 168, 169, 172
context bar, 126
Context Bar, 32, 80, 96, 97
coords, 81, 83, 87

D
Denklem, 16, 17, 19, 40
Determinant, 42, 115
diferansiyel, 40, 41, 89, 91, 94
diff, 35, 36, 37, 40, 41, 44, 90, 113, 114, 118, 119, 129, 131, 137, 152,
154, 156, 165, 172, 173
discont, 34, 55, 74, 75, 76
display, 29, 30, 48, 55, 74, 75, 76, 83, 85, 100, 101, 103, 104, 106, 107,
110, 111, 116, 130, 133, 138, 168, 169
do, 146, 147, 148, 149, 150, 151, 153, 156, 161, 162, 163, 166, 167
dsolve, 41, 42, 90

E
else, 159, 160, 174
end, 44, 120, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156,
159, 161, 162, 163, 166, 167, 169, 172, 174
Error, 44, 45, 47, 53, 148
Eşitsizlik, 16

178 179
evalf, 7, 8, 36, 38, 52, 113, 114, 137, 149, 152, 156, 169, 172, 174 K
Excel, 2, 90, 91, 92, 93, 94
exp, 8, 18, 20, 21, 35, 54, 95, 98, 113, 157 Karekök, 6
expand, 16, 114 Karmaşık sayı dizileri, 63
kartezyen, 29, 79, 80, 81, 82, 83, 84, 85
kutupsal, 29, 79, 80, 81, 82, 83, 84, 85, 86, 108, 139, 140
F Kutupsal Koordinatlar, 78
factor, 15, 16
fi, 146, 147, 148, 149, 159, 160, 161, 162, 163, 174 L
fonksiyon, 8, 9, 10, 11, 14, 15, 17, 23, 26, 27, 28, 29, 35, 37, 38, 40, 45,
50, 53, 55, 56, 69, 70, 72, 74, 75, 76, 79, 81, 83, 84, 95, 99, 102, 122, limit, 13, 33, 39, 40, 50, 53, 54, 57, 62, 63, 65, 67, 68, 73, 77, 91, 159
123, 152, 156, 165 Limit, 13, 33, 55, 62
for, 146, 147, 148, 149, 150, 151, 153, 154, 156, 157, 161, 162, 163, line, 51, 80, 81, 86, 87, 115, 116, 168, 169
166, 167 LinearAlgebra, 42, 43, 113
Formal, 54 local, 146, 147, 148, 149, 150, 151, 152, 153, 154, 156, 159, 161, 162,
frames, 51, 60, 61, 65, 66, 67, 68, 80, 81, 86, 87 163, 166, 167, 169, 172
fsolve, 18, 19, 141 log, 8

G M
geometry, 175 Maple, III, IV, V, VI, VII, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 22,
global, 174, 175 23, 25, 26, 28, 31, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 46, 47, 50, 57,
grafik, 2, 11, 19, 21, 22, 31, 32, 34, 53, 81, 82, 89, 90, 93, 97, 113, 129, 64, 66, 69, 73, 78, 79, 80, 82, 83, 90, 93, 95, 99, 105, 108, 109, 110,
133, 139, 168 111, 118, 121, 136, 138, 140, 141, 142, 141, 142, 144, 145, 146, 155,
157, 165, 166, 168, 172
matris, 42, 115
H Matrix, 115
hacim, 108, 109, 124 MatrixInverse, 43
hata mesajları, 15, 43, 44 MatrixMatrixMultiply, 43
helis, 124, 125, 126, 127 modp, 146, 148, 149, 174

I N
IsRightTriangle, 175 nops, 142, 143, 144, 148, 149, 151, 161, 162, 163
normal, 6, 80, 81, 86, 87, 99, 100, 103, 106, 113, 114, 115, 116, 125,
127, 138
İ numeric, 53, 90
numpoints, 22, 28, 29, 30, 83, 85, 90, 98, 99, 100, 102, 103, 104, 105,
if, 120, 146, 147, 148, 149, 159, 160, 161, 162, 163, 174
106, 110, 111, 115, 125, 127, 138, 172
ifactor, 142, 143, 144
implicitplot, 24, 26, 29, 45, 55, 75, 76, 83, 85, 98, 102, 105, 133
implicitplot3d, 110, 111 O
infinity, 39, 63, 65, 67, 68, 73, 159
İnformal, 50 od, 146, 147, 148, 149, 150, 151, 154, 156, 161, 162, 163, 166, 167
input, 44, 145, 148 odeplot, 90
int, 37, 38, 109, 112, 122, 123, 124, 134, 140, 141 op, 115, 142, 143, 144
integral, III, 38, 108, 109, 110, 134, 136, 139, 140 ortogonal, 137
isprime, 147

180 181
P V
Pi, 8, 10, 12, 15, 27, 29, 30, 32, 33, 34, 78, 79, 80, 81, 83, 85, 86, 87, 109, vektör, 113, 115
112, 115, 122, 123, 124, 125, 127, 130, 138, 140, 141, 153, 158 view, 20, 21, 22, 24, 33, 34, 75, 76, 95, 101, 107, 110, 111, 134, 158
piecewise, 54
plot, 11, 12, 19, 20, 21, 22, 23, 24, 26, 31, 32, 33, 34, 40, 47, 51, 55, 70,
71, 72, 74, 75, 76, 78, 79, 80, 81, 83, 86, 121, 123, 133, 152, 158, 172
W
plot3d, 28, 95, 101, 104, 107, 110, 111, 128, 130, 134 with, 25, 27, 29, 30, 32, 42, 45, 46, 50, 54, 59, 64, 70, 78, 82, 85, 86, 87,
plottools, 50, 54, 59, 64, 113, 125, 138, 168 90, 95, 98, 105, 110, 111, 113, 125, 128, 133, 138, 168, 175
point, 168, 169
pointplot, 51, 59, 60, 61, 65, 66, 67, 68, 80, 81, 86, 87
polarplot, 27, 29, 78, 79, 81, 85, 87 Y
premature, 44 yakınsaklık aralığı, 76
print, 120, 146, 147, 151, 152, 154, 155, 159, 163, 167, 174 yaklaşık, 93, 94, 170, 174
proc, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 156, 159, yardım, VII, 13, 77, 90, 92
161, 162, 163, 166, 167, 169, 172, 174 yerel, 118, 146, 149, 150, 152, 153, 155, 157, 160, 164
programlama, V, 142, 141, 143, 145, 146 yığılma noktası, 59, 62, 65, 66
yüzey, 95, 96, 101, 102, 103, 128, 129, 131
R
reel kuvveti, 6

S
seq, 38, 52, 59, 60, 65, 66, 67, 68, 151, 154, 158, 161, 162, 163, 166
sequence, 38
seriler, 39, 69
seviye eğrisi, 97, 101, 102, 103, 107, 111
simplify, 35, 37, 69, 113, 114, 115, 125, 137
solve, 16, 17, 18, 19, 26, 41, 73, 83, 119, 122, 123, 124, 129, 131, 133,
140, 154, 165, 172, 173
spacecurve, 30, 99, 100, 103, 106, 115, 125, 127, 130, 138
sqrt, 84
subs, 10, 15, 35, 44, 114, 115, 119, 120, 131, 132, 138, 152, 156, 159,
172
sum, 39, 69, 163
symbol, 168, 169
symbolsize, 168, 169

T
teğet, 113, 114, 115, 152, 153, 172
thickness, 24, 30, 55, 60, 61, 65, 66, 67, 68, 74, 75, 76, 80, 81, 83, 85,
86, 87, 115, 116, 130, 138, 168, 169
topaç, 108, 110, 112
triangle, 175
türev, III, 35, 44, 94, 137, 138
type, 44, 90, 148

182 183

View publication stats

You might also like