Professional Documents
Culture Documents
Mathematica
Mathematica Nedir?
Mathematica, her türlü sembolik ve nümerik hesaplamalar yapabilen, 2 ve 3 boyutlu grafikler
çizebilen etkin bir programlama dilidir. İşlevsel ve kural temelli bir programlama dili olan
Mathematica’da ilk başta biraz güçlük çıkabilmekte ancak kısa bir süre sonra global yapısının
yöntemsel programlamadan çok daha kolay anlaşılır olduğu görülecektir.
2
Mathematica Programının Kullanımı ve Menüler
Bu bölümde sizlere Mathematica menülerinin ve program yazma penceresinin nasıl
kullanıldığı anlatılacaktır. Öncelikle programımızı Şekil 1’deki gibi çalıştıralım.
Şekil 1
Şekil 2’deki beyaz zeminli Untitled1 adlı pencere programlarımızı yazıp sonuçları
göreceğimiz yerdir. Hemen yanındaki sembolik yardımcılar ise File/Palettes/Basic Input’dan
açılabilir. Benzer şekilde File/Palettes altındaki diğer yardımcı menüleri de inceleyebilirsiniz.
3
Şekil 2
Eğer yazı tipi ile ilgili özellikleri değiştirmek istiyorsanız Edit/Preferences menüsünden
Formatting Options/Font Options’tan istediğiniz değişikliği yapabilirsiniz
Komutlarımızı yazdığımız satırlar Mathematica tarafından In (Input) ismi ile adlandırılacak
ve yanında işlem numarası yazılacaktır. Çıktı satırları ise Out (Output) ile adlandırılacaktır.
4
Örneğin, In[12]:= ve Out[12]= gibi. Komutunuzun çalışmasını sağlamak için imleciniz satırın
herhangi bir yerinde iken Shift+Enter tuşlarına birlikte basmalısınız.
Eğer komutun birden fazla satırdan oluşuyorsa her satırın (ya da alt komutun) sonunda Enter
tuşuna basıp en sonda Shift+Enter tuşlarına basmanız gerekir. In ve Out satırlarının her biri
için sağ tarafta birer mavi köşeli parantez oluşur. Böylece In ve Out satırlarını biri birinden
kolayca ayırabilirsiniz.
Dosyalarınızı kaydetmek için File/Save veya File/Save As menülerini kullanabilirsiniz. Şimdi
aritmetik bir dört işlem örneği verelim ve yukarıdaki açıklamalarımızı Şekil 3’te görelim.
5
Şekil 3
6
Şekil 4
7
Mathematica Yardım Menüsü
Mathematica, tüm komutların kullanım şekli ve örneklerin bulunduğu oldukça gelişmiş bir
yardım menüsüne sahiptir. Buna Help/Master Index yolu ile ulaşabilir ve aradığınız kelimeyi
yazarak Go ile arama yaptırabilirsiniz.
Temel Bilgiler
Dört İşlem ve Parantezler
+ toplama, çıkarma, * çarpma ve / bölme için kullanılır. Ayrıca ^ üs almak için kullanılır.
Mathematica’da ( ), [ ] ve { } şeklinde üç değişik parantez farklı amaçlar için
kullanılmaktadır.
8
· ( ) normal parantez, aritmetik işlemlerde ve fonksiyon yazımlarında gruplandırma
amacıyla kullanılır.
Örnek
In[1]:=
1+(24)*3+2/7
Out[1]=
33
-
7
· [ ] köşeli parantez, fonksiyon argümanları ve tüm komutlar için kullanılır.
9
Örnek
In[2]:=
Sin[Pi/2]
Out[2]=
1
Örnek
In[3]:=
Solve[2*x6Š73*x,x]
Out[3]=
10
13
::x ® >>
5
· { } süslü parantez, aralık tanımlamaları, listeler ve sayaçlar için kullanılır.
Örnek
In[4]:=
A={a,b,c,d}
Out[4]=
{a,b,c,d}
11
Örnek
In[5]:=
M={{1,2},{3,5}}//MatrixForm
Out[5]=
1 2
J N
3 5
Örnek
In[6]:=
Plot[x^3,{x,4,4}];
12
1.5
1
0.5
4 2 2 4
0.5
1
1.5
Açıklama Satırları, Nümerik Çözüm Bulma ve Önceki Sonuçlara
Başvurma
Mathematica’da açıklama satırları için (* …. *) kullanabiliriz. Eğer işlem sonucunu sayısal
istersek satır sonuna //N ifadesini koymamız yeterlidir. Eğer virgülden sonra belirli bir
13
basamağa kadar ondalık sayıyı göstermesini istersek N[ifade,basamak sayısı] şeklinde komutu
kullanabiliriz. Eğer N[ ] veya //N kullanılmazsa Matematica tüm sonuçları default olarak
kesirli gösterir.
Eğer In[ ] satırının sonucunun görünmesi istenmiyorsa satır sonuna ; (noktalı virgül)
konulabilir. Eğer birden fazla atama aynı anda yapılacaksa araya birer boşluk konularak aynı
satırda yazılabilir. Örneğin x=14; y=15; z=4; gibi. Grafik çiziminde kullanılırsa grafik çizilir
ama Out[ ]: …Graphics… satırı görünmez.
Mathematica’da bir oturum boyunca % sembolü ile son elde edilen değer bellekten
çağrılabilir. Her yeni işlem ile bu % değeri de güncellenmiş olur. %% ile de iki işlem önceki
sonuç kullanılabilir.
14
Örnek
In[7]:=
Solve[2*x^35*x^2+10Š0,x]//N
Out[7]=
Örnek
In[8]:=
N[Pi,20]
Out[8]=
3.1415926535897932385
15
Eşit İşaretleri
Mathematica’da =, = =, = = = ve := şeklinde dört değişik eşit işareti farklı amaçlar için
kullanılmaktadır.
· = işareti, atama yapmak için kullanılır. Bu atama sonrası Mathematica programı
kapanana kadar bu atama geçerli olur. Bunu kaldırmak için Clear[ ] komutu
kullanılmalıdır. Eğer anlık atama yapılmak isteniyorsa “/.” şeklindeki ikili sembol
kullanılabilir. Ancak bu atama sadece o an içindir, bir sonraki satırdan itibaren bu
atama Mathematica tarafından dikkate alınmaz.
Örnek
In[9]:=
a=5;
16
Örnek
In[10]:=
2*x^2+5*y/.x>2
Out[10]=
8+5 y
Örnek
In[11]:=
Clear[a]
17
· = = işareti, bir eşitliği (denklemi) göstermek amacıyla kullanılır. Ayrıca If kontrol
komutunda da kullanılır.
Örnek
In[12]:=
Solve[x^35*x^2+xŠ0,x]
Out[12]=
1 •!!!!!! 1 •!!!!!!
:8x ® 0<, :x ® I5 - 21 M>, :x ® I5 + 21 M>>
2 2
18
· = = = işareti, If kontrol komutunda kullanılır.
Örnek
In[13]:=
y[x_]:=x^43*x^2+5
If[y[x]= = =y[x],Print["simetrik"],Print["simetrik değil"]]
Out[13]=
Simetrik
· := işareti, fonksiyon tanımlamalarında kullanılır.
19
Örnek 1.14
In[14]:=
f[x_]:=Sin[2*x]Cos[x]
f[Pi]
Out[14]=
20
Sabitler ve Sayı Türleri
Mathematica’da p için Pi, e (doğal logaritmik taban) için E ve i (kompleks sayılar) için I
sabitleri kullanılmaktadır. Ayrıca C, D, N ve O harfleri de başka anlamları ve komut oldukları
için değişken ismi olarak kullanılmamalıdır.
Ondalıklı sayılar . (nokta) ile yazılmalıdır. Örneğin; 2.34.
Bazı Matematiksel İşlemler ve Rastgele Sayı Üretimi
Mathematica’da faktöriyel işlemi için ! sembolü kullanılabilir. Mutlak değer için Abs [ ]
komutu, modüler aritmetik için Mod [n,m] komutu kullanılır. Burada n’nin m ile bölümünden
kalan bulunacaktır. En büyük ve en küçük elemanlar için ise Max [ ] ve Min [ ] kullanılabilir.
21
Logaritmik işlemler için Log[b,n] komutu kullanılır. Burada b tabanı göstermektedir. Eğer
doğal logaritma (ln) söz konusu ise Log[n] kullanılabilir.
Örnek
In[15]:=
Mod[11,2]+Log[E^3]
Out[15]=
4
Random [ ] komutu ile 0 ve 1 arasında rastgele ondalıklı bir sayı üretilir.
22
Örnek
In[16]:=
Table[Random[Integer,{1,10}],{15}](*1 ile 10 arasında 15 tane
rastgele tamsayı seçmek için*)
Out[16]=
{5,7,7,3,9,3,10,10,4,2,2,5,6,3,2}
23
1
Liste İşlemleri
Mathematica’da nesnelerin bir kümesini Liste yöntemiyle oluşturabiliriz. Bunun için { }
parantezlerini içindeki her elemandan sonra , (virgül) koyarak kullanabiliriz. Bu listeler
üzerinde her türlü aritmetik işlem yapılabilir. Eğer listenin bir elemanını öğrenmek istiyorsak
[[n]] yardımcı komutunu kullanmalıyız. Örneğin; L adlı bir listenin 5inci elemanı L[[5]] ile
bulunabilir. Bu L listesinin 3üncü elamanını v ile değiştirmek istiyorsak L[[3]]=v şeklinde
tanımlama yapmalıyız.
Örnek
In[17]:=
A={3,a,0,3,b,c};
2
Örnek
In[18]:=
B={0,4,1,9,7,4};
B+4
3*B
Out[18]=
{4,8,5,13,11,0}
{0,12,3,27,21,12}
3
Matematiksel İfadeleri Açma, Çarpanlarına Ayırma ve Sadeleştirme
Mathematica’da bir ifadenin en açık hali Expand[ ] (yerli olmazsa ExpandAll[ ] kullanılmalı),
çarpanlarına ayrılmış hali ise Factor [ ] ile bulunur.Sadeleştirme için Simplify[ ] komutunu
kullanabiliriz. Eğer logaritmik, üstel veya trigonometrik ifadeler var ise FullSimplify[ ]
komutunu kullanmamız gerekir. İstediğimiz değişkene göre ifadeyi gruplandırmak için
Collect[ifade,değişken] komutunu kullanabiliriz. Bunların dışında trigonometrik ifadeler için
TrigExpand[ ], TrigFactor[ ], TrigReduce[ ], kompleks ifadeler için ComplexExpand[ ] ve
üslü ifadeler için de PowerExpand[ ] komutları kullanılabilir. Bir çok terimli ifadede istenilen
değişkenin katsayısını Coefficient[ifade,değişken] komutu ile bulabiliriz. Eğer istenilen
değişkene ait en büyük kuvveti bulmak istersek Exponent[ifade,değişken] komutunu
kullanmamız gerekir. Part[ifade,n] ile verilen ifadenin ninci terimi, Denominator[kesirli
ifade] ile kesrin paydası bulunabilir.
4
Simplify[ ] komutu bazı durumlarda sadeleştirme yapamaz. Böyle ifadelerde değişkenin değer
aralığını vermemiz gerekir.
Örnek
In[19]:=
FullSimplify[Sqrt[x^2],x>0]
Out[19]=
5
Örnek
In[20]:=
Simplify[Sqrt[x^2],Element[x,Reals]]
Out[20]=
Abs[x]
Örnek
In[21]:=
Factor[x^2+2*x+1]
6
Out[21]=
H1 + xL2
Mantıksal ve İlişkisel Operatörler
Mathematica’da && bağlacı VE anlamında, || bağlacı ise VEYA anlamında kullanılır. Tablo
1’de operatörleri görebilirsiniz.
7
Tablo 1
x==y Eşit
x>y Büyük
x>=y Büyük eşit
x<y Küçük
x<=y Küçük eşit
x==y==z Tümü eşit
8
x!=y!=z Tümü far klı
x>y>z Sıralı artan
Örnek
In[22]:=
7>4&&2!=3
Out[22]=
True
9
Mathematica’da Analiz
Denklem Çözümü
Mathematica’da denklem çözümü için Solve[ ] komutu kullanılır.
Örnek
In[23]:=
Solve[x^2+5*x+6Š0,x]
Out[23]=
{{x®3},{x®2}}
10
Bu örnekte x 2 + 5 x + 6 = 0 denkleminin çözümü bulunmuştur. Çok bilinmeyenli denklem
sistemlerinin çözümlerini de Mathematica’da bulmak mümkündür.
Örnek
In[24]:=
Solve[{x+5*yŠ3,2*x4*yŠ5},{x,y}]
Out[24]=
13 11
::x ® , y® - >>
14 14
Bu örnekte ise x+5y=3 ve 2x4y=5 şeklindeki iki bilinmeyenli denklem sistemi çözülmüştür.
Trigonometrik denklemleri de Solve[ ] komutu ile çözmek mümkündür.
11
Örnek
In[25]:=
Solve[Cos[x]Š0,x]
Out[25]=
p p
::x ® - >, :x ® >>
2 2
Verilen ifadelerde çözümü bulurken istenilen değişken yok edilerek sonuç isteniyorsa
Eliminate[ ] komutu kullanılabilir. Reduce[ ] komutu da kullanılabilecek bir diğer komut
olarak verilebilir.
12
civarındaki çözümü için FindRoot[3*Sin[2*x]=Log[x],{x,1}] şeklinde bir Mathematica
komutu yazmamız gerekir.
Örnek
In[26]:=
Eliminate[{a*x+yŠ0,2*x+(1+a)*yŠ1},y]
Out[26]=
2
H-2 + a + a L x Š - 1
Örnek
In[27]:=
Reduce[{a*xbŠ0},x]
13
Out[27]=
b
Hb Š 0&& a Š 0L ÈÈ Ja ¹ 0 &&x Š N
a
Eşitsizlik Çözümü
Mathematica’da eşitsizleri çözmek için öncelikle kütüphane çağırmak gerekmektedir.
Kütüphane çağrımı <<konu_adı`komut` şeklinde olmaktadır. Burada kullanılan tek tırnak
işaretleri klavyeden Alt Gr+Virgül tuş kombinasyonu ile yazılmaktadır. Kütüphane komut
kullanılmadan önceki ilk In[ ] satırında tek başına yazılıp çalıştırılmalıdır. Eğer yazım doğru
ise herhangi bir Out[ ] satırı oluşmaz. Kütüphane Mathematica programı açık kaldığı sürece
hafızada hazır bekler. Her komut kullanımında tekrar kütüphane çağırılmasına gerek yoktur.
Bir Mathematica oturumunda bir kez ilgili kütüphaneyi çağırmak yeterlidir.
14
Örnek
In[28.1]:=
<<Algebra`InequalitySolve`
In[28.2]:=
InequalitySolve[(x3)*(2*x+5)<=6,x]
Out[28]=
7
-3 £ x £
2
Bu örnekte (x3)(2x+5) £ 6 eşitsizliği çözülmüştür.
15
Örnek
In[29]:=
InequalitySolve[Abs[x1]*(x^23)>3,x]//N
Out[29]=
x<2.||x>2.30278
Mathematica’da Programlama
Ekrana yazı yazma ve bilgi girişi
Mathematica’da ekrana bilgi yazma işlemini Print[ ] ile yapabiliriz. Ancak yazının içeriğinde
değişken kısımlar var ise o zaman StringForm[ ] komutunu da birlikte kullanmamız gerekir.
16
Kulanıcan değer alma işlemini Input[ ] komutu ile yapabiliriz. Örneğin; kullanıcıdan bir sayı
isteyip bunu “b” adı ile kullanmak istersek b=Input[“b sayısını giriniz:”]; komutu yeterli
olacaktır.
Örnek
In[57]:=
a=4;
Print[StringForm["`` sayısının karesi `` dır.",a,a^2]]
Out[57]=
4 sayısının karesi 16 dır.
17
Do döngüsü
Mathematica’da bir işlemi tekrar tekrar yazmak yerine Do[ ] döngüsi yardımıyla bir defada
tanımlayıp işlemleri arka arkaya yaptırabiliriz.
Örnek
In[58]:=
Do[Print[a!],{a,2,4}]
Out[58]=
2
6
24
18
While ve For komutları
Mathematica’da program yazmak isteyenlerin mutlaka ihtiyaç duyacağı komutlardan ikisi
olan While[ ] ve For[ ] komutları ile ilgili örnekler aşağıda verilmiştir.
Örnek
In[59]:=
For[i=1,i<4,i++,Print[i]]
Out[59]=
1
2
3
19
Örnek
In[60]:=
n=17;
While[(n=Floor[n/2])!=0,Print[n]] (*Floor ondalıklı sayıların kesir
kısmını atıp tam kısmını alır*)
Out[60]=
8
4
2
1
20
İndis kullanımı
Mathematica’da Do[ ] komutu yarımıyla indisleri çok daha verimli kullanmak mümkündür.
Bu konu ile ilgili bir kısmi türev uygulaması Örnek 1.60’da verilmiştir.
Örnek
In[61]:=
Out[61]=
21
2
g11=a Sin@u2D2
g12=0
g21=0
2
g22=a
22
1
Bazı Yardımcı Mathematica Komutları
Örnek
In[69]:=
Series[Sin[x],{x,0,10}](*fonksiyonların seri açılımı için
kullanılır*)
Out[69]=
3
x 5
x 7
x 9
x 11
x- + - + + O@xD
6 120 5040 362880
2
Örnek
In[70.1]:=
<<Graphics`Graphics`
In[70.2]:=
PieChart[{{35,"A"},{25,"B"},{40,"C"}}];
BarChart[{{35,"A"},{25,"B"},{40,"C"}}];
A
B
3
40
30
20
10
A B C
Örnek
In[71]:=
Sin[30*Degree]+Cos[Pi/4]
Out[71]=
1 1
+
2 •!!!
2!
4
Örnek
In[72.1]:=
<<Graphics`Animation`
In[72.2]:=
MoviePlot3D[Sin[x*y],{x,0,t/2},{y,0,t},{t,1,6,3/4}]
1 1 1
0.4
0.75
1 0.75 2.5 0.5
0.2 0.5 0.5 0 3
0.8 1.5 2
0.25 0.25 0.5
0 0.6 0 0 1.5 1 2
1 0
0 0 0
0.4 0.25 1
0.1 0.2
0.5 0.5 0.5 1
0.2 0.4 0.5
0.3 0.2 0.75
0.6 1 1
0.4 0
0 0.8 0 1.25 1.5
1.5 0
0.5
5
1 1 1
0.5
4 0.5 0.5
0 0 0
4
0.5 3 0.5 0.5 4
1 1 3 1
0 2 0 0
2
0.5 0.5 2
1 1 1
1
1
1.5
1.5 2
2
0 2
2 0 0
Örnek
In[73]:=
pascal[n_]:=Table[Binomial[n,i],{i,0,n}]
ColumnForm[Table[pascal[m],{m,0,5}],Center]
Out[73]=
6
81<
81, 1<
81, 2, 1<
81, 3, 3, 1<
81, 4, 6, 4, 1<
81, 5, 10, 10, 5, 1<
Örnek
In[74]:=
TreeForm[3+a+Sin[2*Pi*x^y]]
Out[74]=
7
PlusB3, a, È F
SinB È F
TimesB2, p , È F
Power@x, yD
Örnek
In[75]:=
ContourPlot[Sin[x*y],{x,0,3},{y,0,4}];
8
4
3
2
1
0
0 0.5 1 1.5 2 2.5 3
Örnek
In[76]:=
Solve[{x^2+y^2Š16,x^24Šy},{x,y}]//TableForm
9
Out[76]=
y ® -4 x ® 0
y ® -4 x ® 0
•!!!!
y ® 3 x ® - 7
•!!!!
y ® 3 x® 7
Örnek
In[77.1]:=
<<Graphics`Graphics`
In[77.2]:=
PolarPlot[t,{t,0,2*Pi}];
10
1
2 2 4 6
1
2
3
4
Örnek
K={4,7,a,b,0,5,x,11,y} şeklinde bir küme (liste) olsun. Bu K kümesi üzerinde bazı komut
uygulamaları yapalım.
11
In[78]:=
K={4,7,a,b,0,5,x,11,y};
Length[K]
K[[3]]
K[[2]]
Sort[K]
Append[K,70]
Prepend[K,Z]
Insert[K,325,2]
First[K]
Last[K]
12
K[[Range[3,5]]]
Select[K,Positive]
Select[K,Negative]
Out[78]=
9
a
11
{5,4,0,3,7,11,a,x,y}
{4,7,a,3,0,5,x,11,y,70}
{Z,4,7,a,3,0,5,x,11,y}
{4,325,7,a,3,0,5,x,11,y}
13
4
y
{a,3,0}
{7,3,11}
{4,5}
Örnek
In[79]:=
Together[a/b+c/d]
Collect[a*x+b*x+c*y+d*y,{x,y}]
Numerator[(x+2)/(x1)]
14
Denominator[(x+2)/(x1)]
Out[79]=
b c + a d
b d
(a+b) x+(c+d) y
2+x
1+x
Karışık Örnekler
Örnek
A={2,1,0,1,2};
B={0,2,4};
F={1,1,3,5};
Union[Complement[A,B],Intersection[B,F]]
Out[91]=
{2,1,1}
Örnek
1 1 1 1
- , , - ve sayılarını sıralayınız ve en büyüğünü bulunuz?
8 5 4 3
16
In[92]:=
A=Sort[{1/8,1/5,1/4,1/3}]
Max[A]
Out[92.1]=
1 1 1 1
:- , - , , >
4 8 5 3
Out[92.2]=
1
3
Örnek
In[93]:=
2^3+(3)^4(2)^(2)
17
Out[93]=
291
4
Örnek
2 x - 4 ³ 3 eşitsizliğinin çözüm kümesini bulunuz.
In[94.1]:=
<<Algebra`InequalitySolve`
In[94.2]:=
InequalitySolve[Abs[2*x4]>=3,x]
Out[94.2]=
18
1 7
x£ ÈÈ x ³
2 2
Örnek
x - 4 = 2 denkleminin çözümü nedir?
In[95]:=
Solve[Abs[Abs[x]4]Š2,x]
Out[95]=
{{x®6},{x®2},{x®2},{x®6}}
19
Örnek
1 3
- 3 işleminin sonucunu bulunuz.
24 20
In[96]:=
Sqrt[1/24]3*Sqrt[2/40]//N
Out[96]=
0.466696
Örnek
20
In[97.1]:=
cozum=Solve[{xyŠ3,x*yŠ10},{x,y}]
Out[97.1]=
{{x®2,y®5},{x®5,y®2}}
In[97.2]:=
x=x/.cozum[[1,1]];
y=y/.cozum[[1,2]];
x^2+y^2
Out[97.2]=
29
21
Örnek
27 - a 3 ifadesinin özdeşini bulunuz.
In[98]:=
Factor[27a^3]
Out[98]=
2
-H- 3 + aL H9 + 3 a + a L
Örnek
(x1)+2x=3x+8 denklemini çözünüz.
In[99]:=
Solve[x1+2*xŠ3*x+8,x]
Out[99]=
22
{} (*çözüm boş kümedir*)
Örnek
4 2 22
+ = 2 denklemini çözünüz.
x + 1 x - 1 x - 1
In[100]:=
Solve[4/(x+1)+2/(x1)Š22/(x^21),x]
Out[100]=
{{x®4}}
23
1
Karışık Örnekler
Örnek
3 x + 2 y = 12 ü
ý denklem sisteminin çözüm kümesini bulunuz.
x + 4 y = 9 þ
In[101]:=
Solve[{3*x+2*yŠ12,x+4*yŠ9},{x,y}]
Out[101]=
3
::x ® 3, y ® >>
2
2
Örnek
In[102]:=
NSolve[x^3+4*x^26*xŠ0,x]
Out[102]=
{{x®5.16228},{x®0.},{x®1.16228}}
Örnek
In[103.1]:=
3
<<Algebra`InequalitySolve`
In[103.2]:=
InequalitySolve[x*(x^24)*(x^29)<0,x]
Out[103.2]=
x<3||2<x<0||2<x<3
Örnek
3
f:R→R ve f:x→y, y = 2
fonksiyonunun grafiğini çiziniz.
x + 2
In[104]:=
y[x_]:=3/(x^2+2)
Plot[y[x],{x,3,3}];
4
1.4
1.2
0.6
0.4
Örnek 1.105
In[105]:=
f[x_]:=2*x^2+x^4
5
If[f[x]===f[x],Print["fonksiyon çift"],
If[f[x]===f[x],Print["fonksiyon tek"],
Print["fonksiyon ne tek ne de çift"]]]
Out[105]=
fonksiyon çift
Örnek
In[106]:=
6
f[x_]:=x^22
g[x_]:=x^3
g[f[2]]
Out[106]=
8
Örnek
2 x + 5
f:R\{4}→ R\{2}, f ( x ) = şeklinde tanımlanıyor. f’nin tersi olan fonksiyonu bulunuz.
x - 4
In[107]:=
f[x_]:=(2*x+5)/(x4)
bul=Solve[f[x]Šy,x];
7
g[x_]:=x/.bul[[1]]
g[x_]=g[x]/.y>x
Out[107]=
5+4x
- 2 + x
Örnek
In[108]:=
f[x_]:=2*x1
bul=Solve[f[x]Šy,x];
8
g[x_]:=x/.bul[[1]]
g[x_]=g[x]/.y®x
Plot[{f[x],g[x]},{x,2,3}];
Out[108]=
1 + x
2
2
2 1 1 2 3
2
4
9
Örnek
ì 4 - x 2 , x ³ 2
ï
f ( x ) = í x - 2 , -1 £ x < 2 parçalı fonksiyonun grafiğini çiziniz.
ï 3 , x < -1
î
In[109]:=
f[x_/;x>=2]:=4x^2
f[x_/;1<=x<2]:=x2
f[x_/;x<1]:=3
Plot[f[x],{x,5,5}];
10
2
4 2 2 4
2
4
6
8
10
12
Örnek
log 2 3 2 ifadesinin sonucunu elde ediniz.
In[110]:=
Log[2,2^(1/3)]
Out[110]=
1
3
11
Örnek
In[111]:=
Solve[Log[x,32]Š5,x]
Out[111]=
{{x®2}}
Örnek
( 4 3- x ) 2 - x = 1 denkleminin çözümünü elde ediniz.
In[112]:=
12
Solve[(4^(3x))^(2x)Š1,x]
Out[112]=
{{x®2},{x®3}}
ALIŞTIRMALAR (Mathematica’da çözünüz)
1. Tüm alt kümelerinin sayısı 64 olan küme kaç elemanlıdır?
( n elemanlı bir kümenin tüm alt kümelerinin sayısı 2 n dir)
3. X = {a, b, c, d} ve Y = {a, c, e} kümeleri veriliyor. (X t \ Y) t kümesinin
elemanları nedir?
13
ALIŞTIRMALAR ( Mathematica kullanmadan çözünüz)
4, 3 - 0, 23
2. A = ise A kaçtır?
2, 2 - 1, 11
ALIŞTIRMALAR ( Mathematica’da çözünüz)
14
ALIŞTIRMALAR ( Mathematica’da çözünüz)
9
4. 64 , 3 - 64 , 324 ve 3 208 ifadelerinin sonuçlar ını bulunuz.
15
ALIŞTIRMALAR ( Mathematica kullanmadan çözünüz)
1. | |2x| + 5| = 7 denkleminin çözümü nedir?
8 - x
2. x Î Z olmak üzere, <6 eşitsizliğinin çözüm kümesi nedir?
3
4. Bir sınıfın tüm öğrencileri futbol (F), voleybol (V) ve basketbol (B) sporundan
en az birisini yapmaktadır. Her üç sporu yapanlar 3 kişi, futbol ve voleybol
oynayanlar 4 kişi, voleybol ve basketbol oynayanlar 8 kişi, futbol ve basketbol
oynayanlar 6 kişidirler. Voleybol oynayanlar 14 kişi, basketbol oynayanlar 22
kişi, futbol oynayanlar 17 kişi olduğuna göre sınıfın mevcudu nedir?
16
ALIŞTIRMALAR ( Mathematica’da çözünüz)
2. (27 –4 .81 0 .9 –2 ) / (3 –6 .27 4 ) = ?
1 1
3. - 2 =?
72 24
17
1
Mathematica’da Çizim
İki boyutlu grafik çizimi
Mathematica’da iki boyutlu grafikleri çizmek için Plot[ ] komutu kullanılır. Eğer grafiğin bir
çerçeve içinde olmasını isterseniz Frame>True, eksenlere isim vermek için AxesLabel>{“x
ekseni ismi”,”yekseni ismi”}, grafiğin çizildiği zemini küçük karelere (ızgara) bölmek için
GridLines>Automatic, grafiğin eni ve boyunun oranını eşitlemek için AspectRatio>1
komutlarını kullanabiliriz.
2
renkten ne kadar kullanılacağı belirtilmektedir. Değerler 0.001.00 arasında olabilir.
Thickness[ ] komutunun içinde yazan değer ise çizgi kalınlığıdır. Çizgi yerine kesikli çizgi
çizmek için Dashing[ ] komutuda yine PlotStyle>{} içine yazılabilir.
Aynı anda birden fazla fonksiyonun grafiğini de çizmek mümkündür.
Örnek
In[38]:=
Plot[Sin[x],{x,0,2*Pi},PlotStyle->RGBColor[1,0,0]];
3
1
0.5
1 2 3 4 5 6
0.5
1
Örnek
In[39]:=
Plot[{Abs[x^26],Sign[x^25],0.5*Round[x]},{x,0,2*Pi},
PlotStyle->{RGBColor[0,0,1],Thickness[0.015],Dashing[{0.03}]}];
4
(*Bu örnekte bir mutlak değer, bir işaret fonksiyonu ve bir de
basamak değer (tam değer) fonksiyonu kullanılmıştır*)
4
2
1 2 3 4 5 6
5
Düzlemde nokta çizimi
Mathematica’da xy koordinatlarında nokta çizmek için ListPlot[ ] komutu kullanılır. Eğer
nokta büyüklüklerini değiştirmek isterseniz PlotStyle>PointSize[ebat] komutunu, noktaların
rengi için de PlotStyle>RGBColor[ ] komutunu kullanabilirsiniz.
Örnek 1.40
In[40]:=
ListPlot[{{2,5},{3,7}},PlotStyle->PointSize[0.025]];
6
7
6.5
6
5.5
2 1 1 2 3
Bu örnekte (2,5) ve (3,7) noktaları çizilmiştir. Nokta sayısı istenildiği kadar arttırılabilir.
Eğer noktaları birleştirip üzerlerinden geçen bir eğri ya da doğru çizmek istenirse
PlotJoined>True komutu ListPlot[ ]’un içine yazılmalıdır.
7
Parametrik Çizim
Elle çizimi oldukça zor olan bu grafikler için ParametricPlot[ ] komutu komutu kullanılabilir.
Örnek
In[41]:=
ParametricPlot[{Sin[t],Sin[2*t]},{t,0,2*Pi}];
8
1
0.5
0.5
1
Kapalı Fonksiyonların Çizimi
Eğer fonksiyonumuz kapalı (implicit) ise o zaman ImplicitPlot[ ] komutunu kullanmamız
gerekir. Yalnız bu komutta kendisine ait olan kütüphaneye ihtiyaç duymaktadır. Bu yüzden
öncelikle <<Graphics`ImplicitPlot` komutu ile kütüphane çağrılmalıdır.
9
Örnek
In[42.1]:=
<<Graphics`ImplicitPlot`
In[42.2]:=
ImplicitPlot[x^2+y^2Š36,{x,10,10},{y,10,10}];
10
10
5
0
5
10
10 5 0 5 10
11
Üç boyutlu grafik çizimleri
3 boyutlu çizimler için Mathematica’da Plot3D[ ] komutu kullanılır. Ayrıca parametrik
denklemler için de ParametricPlot3D[ ] komutu kullanılabilir. Her iki komutta da grafiğe
bakış noktamızı ViewPoint>{x,y,z} ile belirlemek mümkündür.
Örnek
In[43]:=
Plot3D[Sin[x^2]+y^2,{x,0,Pi},{y,0,Pi/2}];
12
3
2 1.5
1
0
1 1
0
1 0.5
2
3 0
3
Örnek
In[44]:=
ParametricPlot3D[{t,u,Sin[t*u]},{t,0,3},{u,0,3},
13
ViewPoint->{0,4,3}];
0
1
2
2
3
1
0.5
0
0.5
1
3 2 1 0
14
İki boyutlu çizimlerde alan boyama
Mathematica’da iki eğri arasında kalan alan veya eğri ile xekseni arasında kalan alanlar
boyanabilir. Bunun için FilledPlot[ ] komutu, öncelikle <<Graphics`FilledPlot` kütüphanesi
çağrıldıktan sonra kullanılabilir.
Örnek
In[45.1]:=
<<Graphics`FilledPlot`
In[45.1]:=
FilledPlot[x^2,{x,4,4}];
15
15
15
12.5
10
7.5
5
2.5
4 2 2 4
16
Grafiklerin birleştirilmesi
Mathematica’da farklı tür grafikleri birleştirmek için Show[ ] komutu kullanılır. Burada
dikkat edilmesi gereken tüm grafikleri birer isim ataması yapmak ve bunları Show[ ] içinde
çağırmaktır.
Örnek
In[46]:=
noktalar=ListPlot[{{2,0},{2,0}},PlotStyle->PointSize[0.035]];
f[x_]:=x^24
grafik=Plot[f[x],{x,5,5},PlotStyle->{RGBColor[1,0,1]}];
Show[noktalar,grafik];
17
20
15
10
5
4 2 2 4
18
1
Vektör ve Matris İşlemleri
Vektörler
Mathematica’da vektörler { } parantezleri içinde her elemandan sonra virgül konulacak
şekilde yazılır. Örneğin; {1,2,4} gibi. Vektörlerin 3 çeşit çarpma işlemi olabilmektedir.
Bunlar; Cross[ ] (iç), . (nokta, vektörel) ve * (yıldız, skaler) çarpımlarıdır.
Vektörlerin nasıl çizileceğine dair bir uygulamayı Örnek 1.48’de görebilirsiniz.
2
Örnek
In[47]:=
u={1,3,5};
v={0,3,2};
u.v
u*v
Cross[u,v]
Out[47]=
19
{0,9,10}
3
{9,2,3}
Örnek
In[48]:=
<<Graphics`Arrow`
vektör[a_,b_]:=Graphics[{Hue[1],Arrow[b,a+b]}]
vektör[a_]:=vektör[a,{0,0}]
Show[vektör[{1,1},{2,1}],Axes->True,PlotRange->{{0,3},{0,3}}];
Show[vektör[{1,2}],vektör[{2,1}],Axes->True,
PlotRange->{{0,3},{0,3}}];
4
3
2.5
2
1.5
1
0.5
5
3
2.5
2
1.5
1
0.5
Matrisler
Matrisler { } parantezlerin içine her satır ayrı bir { } içinde olmak üzere yazılırlar. Örneğin;
{{2,4},{5,1}} matrisi 2x2 ebatlarında bir matris tanımıdır. Eğer tanım sonuna //MatrixForm
yazmazsak matrisi tek bir satırda parantezler içinde görürürüz. Bu yardımcı komut bize
6
matrisi gerçek haliyle görmemizi sağlar. Ancak bu sırada bir atama yapmış ise bu geçersiz
kalır. Çünkü Mathematica ancak liste ahlindeki matris tanımını atamada uygun görmektedir.
Matrislerin tersi için Inverse[ ], transpozu (devriği) için Transpose[ ] ve determinantını
bulmak için Det[ ] komutlarını kullanabiliriz.
Örnek
In[49]:=
M={{2,5,6},{0,3,2},{5,1,1}}//MatrixForm
Out[49]=
7
i 2 5 6 y
j
j z
z
j z
j 0 3 - 2 z
j z
k - 5 1 - 1 {
Örnek
In[50]:=
M={{2,5,6},{0,3,2},{5,1,1}};
Inverse[M]//MatrixForm
Transpose[M]
Det[M]
Out[50]=
8
i
j - 1 11 - 14 y
j
j 138 138 69 z
z
z
j
j 5 14 2 z
z
j
j z
z
j
j 69 69 69 z
z
j
j 5 9 1 z
z
k 46 -
46 23 {
{{2,0,5},{5,3,1},{6,2,1}}
138
Diğer Matematiksel İşlemler
Mathematica’da diferansiyel denklemi çözmek için DSolve[denklem,fonksiyon,değişken]
komutu kullanılabilir. Seri toplam için Sum[genel terim,{değişken,alt_sınır,üst_sınır}] ve seri
çarpım için Product[genel terim,{değişken,alt_sınır,üst_sınır}] komutlarını da kullanabiliriz.
9
Örnek
In[37]:=
Sum[1/a^2,{a,1,Infinity}] (*Infinity, sonsuz demektir*)
Out[37]=
p2
6
Bir amaç fonksiyonun verilen kısıtlamalar içinde minimum ya da maksimum değerini bulmak
için Minimize[ ] ve Maximize[ ] komutları kullanılabilir.
Örnek
In[52]:=
Minimize[xy+z,{yz<3,x>7},{x,y,z}]
10
Out[52]=
{4,{x®7,y®3,z®0}}
Örnek 1.53
In[53]:=
Maximize[{x^2+y,x^2+y^2£1},{x,y}]
Out[53]=
•!!!!
5 3 1
: , :x ® - , y ® >>
4 2 2
11
Karışık Örnekler
Örnek
In[125]:=
Solve[{x2*y+3*zŠ4,2*x+y+zŠ3,5*y7*zŠ11},{x,y,z}]
Out[125]=
{{x®1,y®2,z®3}}
12
Örnek
In[126]:=
A={{2,5},{3,4}}; B={{1,3},{2,1}}; F={{2,0},{1,3}};
A+B2*F//MatrixForm
Out[126]=
- 1 8
J N
-3 -3
13
Örnek
In[127]:=
A={{2,4},{5,1}}; B={{0,3},{4,7}};
Transpose[A]*B//MatrixForm
Out[127]=
0 15
J N
16 - 7
14
Örnek
é1 0 0 ù
A = êê0 - 3 0 úú köşegen matrisi ve I 3 birim matrisi verildiğine göre A.B’yi bulunuz.
êë0 0 5 úû
In[128]:=
DiagonalMatrix[{1,3,5}].IdentityMatrix[3]//TraditionalForm
Out[128]=
ij 1 0 0 yz
jj z
jj 0� � 3 0 zzz
j z
k 0 0 5 {
15
Örnek
é3 4 - 6 ù
A = êê4 4 - 3 úú matrisinin determinant değerini elde ediniz.
êë1 8 - 9 úû
In[129]:=
Det[{{3,4,6},{4,4,3},{1,8,9}}]
Out[129]=
72
16
Örnek
In[130]:=
m={{3,3,2},{3,2,3},{2,1,4}};
a={{x},{y},{z}}; b={{25},{22},{18}};
Solve[m.aŠb,{x,y,z}]
Out[130]=
28 13
::x ® 1, y ® ,z® >>
5 5
17
Örnek
In[131.1]:=
<<LinearAlgebra`MatrixManipulation`
In[131.2]:=
m={{1,5,4,1},{3,4,1,2},{3,2,1,5},{0,6,7,1}};
b={{1},{2},{3},{4}};
AppendRows[m,b]//MatrixForm
18
Out[131.2]=
i 1 5 - 4 1 1 y
j
j z
j
j 3 4 - 1 2 2 z
z
z
j
j z
j
j 3
j 2 1 5 3 z z
z
z
k0 - 6 7 1 4 {
In[131.3]:=
RowReduce[%]//MatrixForm
Out[131.3]=
i
j 1 0 0 0 - 127 y
z
j
j 35 z
z
j
j 141 zz
j
j 0 1 0 0 z
j
j 35 z z
z
j
j 139 zz
j
j 0 0 1 0 z
j
j 35 z z
z
j
j z
z
j 0 0 0 1 13 z
k 35 {
19
Örnek
é1 1 1 ù
ê 2 3 - 2 ú matrisinin tersini bulunuz.
ê ú
êë1 2 1 úû
In[132]:=
Inverse[{{1,1,1},{2,3,2},{1,2,1}}]//MatrixForm
Out[132]=
i 7
j
1 - 5 y
j
j 4 4 4 z
z
z
j
j
j
j - 1 0 1 z z
z
z
j
j 1 1 1 z
z
-
k 4 4 4 {
20
Örnek
x + 2 z = 6 ü
ï
- 3 x + 4 y + 6 z = 30 ý lineer denklem sisteminin çözümünü ters matris yardımıyla elde ediniz.
- x - 2 y + 3 z = 8 ïþ
In[133]:=
m={{1,0,2},{3,4,6},{1,2,3}};
b={{6},{30},{8}};
Inverse[m].b
Out[133]=
21
1
Örnek
In[83]:=
A={{2,3,4},{6,3,9}};
Dimensions[A](*satır ve sütun sayısını bulur*)
Out[83]=
{2,3}
Örnek
Det[ ] komutunu kullanamadan B matrisinin determinantını dizi indeksleri kullanarak bulalım.
Burada örneğin B[[1,2]] ile ifade edilen B matrisinin 1. satır 2. sütunundaki değerdir.
In[84]:=
B={{2,3},{6,3}};
2
B[[1,1]]*B[[2,2]]B[[1,2]]*B[[2,1]]
Out[84]=
12
Örnek
M matrisinin Inverse[ ] komutu ile bulunan tersinin doğruluğunu kontrol edelim. Buradaki
IdentityMatrix[3] ile 3x3’lük birim matris ifade edilmiştir.
In[85]:=
M={{2,3,4},{6,3,9},{0,1,1}};
M.Inverse[M]ŠIdentityMatrix[3]
3
Out[85]=
True
Trigonometri
Örnek
(12,57,10) vekörünün boyunu bulalım.
4
In[67]:=
v={12,57,10};
boy[v_List]:=Sqrt[v.v]
boy[v]//N
Out[67]=
59.1016
Örnek
Bir önceki örnekteki boy[ ] tanımı yarımıyla (2,4) ve (9,13) vektörleri arasındaki açıyı derece
cinsinden bulalım.
5
In[68]:=
boy[v_List]:=Sqrt[v.v]
u={2,4};
v={9,13};
N[ArcCos[u.v/(boy[u]*boy[v])]]/Degree
Out[68]=
118.74
Örnek
In[80]:=
Tan[3*Pi/2t]
6
Simplify[E^(2*Pi*I)]
TrigExpand[Cos[ab]]
TrigToExp[Tan[x]]
ExpToTrig[(E^xE^(x))/2]
TrigReduce[Tan[x+Pi/2]]
TrigFactor[Cos[a]+Cos[b]]
Out[80]=
Cot[t]
1
7
Cos[a] Cos[b]+Sin[a] Sin[b]
ä Iã-ä x - ãä xM
ã-ä x + ãä x
Sinh[x]
Cot[x]
a b a b
2 CosB - F CosB + F
2 2 2 2
Örnek
In[81]:=
Do[Print[n,Switch[n,_,"derece"]," = ",n*Pi/180],{n,0,360,60}]
8
Out[81]=
0 derece = 0
p
60derece =
3
2p
120derece =
3
180 derece = p
4p
240derece =
3
5p
300derece =
3
360 derece = 2 p
9
Örnek
Ekrandan girilecek bir açı hakkında bilgi veren bir uygulama yapalım.
In[82]:=
a=Input["Aciyi derece olarak giriniz:"]
kat=Floor[a/360]; gercek=akat*360;
Print["Gercek aci:",gercek]
If[0<gercek<90,Print["Girilen aci I. bolgededir ve esas
olcusu:",gercek],
If[90<gercek<180,Print["Girilen aci II. bolgededir ve esas
olcusu:",180gercek],
If[180<gercek<270,Print["Girilen aci III. bolgededir ve esas
olcusu:",gercek180],
10
If[270<gercek<360,Print["Girilen aci IV. bolgededir ve esas
olcusu:",360gercek],
Print["Aci eksenler uzerindedir",gercek]]]]]
Out[82]=
207
Gercek aci: 207
Girilen aci III. bolgededir ve esas olcusu: 27
Karışık Örnekler
Örnek
11
150 derecelik yayı radyan cinsinden hesaplayınız.
In[113]:=
a=150;
Solve[a/180ŠR/Pi,R]
Out[113]=
5p
::R ® >>
6
Örnek
cos 2 a
= 1 + sin a olduğunu gösteriniz.
1 - sin a
12
In[114]:=
FullSimplify[(Cos[a])^2/(1Sin[a])]
Out[114]=
1+Sin[a]
Örnek
Sin (2 a ) değerini elde ediniz.
In[115]:=
TrigExpand[Sin[2*a]]
Out[115]=
2 Cos[a] Sin[a]
13
Örnek
sin(135 ° ) ’yi hesaplayınız.
In[116]:=
Sin[135 Degree]
Out[116]=
1
•!!!
2 !
Örnek
p
sin( - a ) = cos a olduğunu gösteriniz.
2
14
In[117]:=
TrigReduce[Sin[Pi/2a]]
Out[117]=
Cos[a]
Örnek
x
sin x = denkleminin x=1.5 civarındaki çözümünü elde ediniz.
2
In[118]:=
FindRoot[Sin[x]Šx/2,{x,1.5}]
Out[118]=
15
{x®1.89549}
Örnek
In[119]:=
Solve[2*Cos[x]^2+2*Cos[2*x]Š1,x]
Out[119]=
3p p p 3p
::x ® - >, :x ® - >, :x ® >, :x ® >>
4 4 4 4
Örnek
16
Kenarları 12, 15 ve 18 birim olan bir üçgenin alanını hesaplayınız.
In[120]:=
a=12; b=15; c=18;
s=(a+b+c)/2;
Sqrt[s*(sa)*(sb)*(sc)]//N
Out[120]=
89.2941
Örnek
p
0 ile 2 p arasındaki artarak elde edilen açıların Sinüs, Kosinüs, Tanjant ve Kotanjantını
6
bulup tablo halinde gösteren bir Mathematica uygulaması yapalım.
17
In[55]:=
TableForm[Table[{açı,Sin[açı],Cos[açı],Tan[açı],Cot[açı]},
{açı,0,2*Pi,Pi/6}],TableHeadings®{None,{"Açı","Sin","Cos",
"Tan","Cot"}}]
Out[55]=
18
Açi Sin Cos Tan Cot
0 0 1 0 ComplexInfinity
" ####
p 1 3 1 •!!!!
3
6 2 2 "####
3
" ####
p 3 1 •!!!! 1
3
3 2 2 "####
3
p 1 0 ComplexInfinity 0
2
" ####
2p 3 •!!!!
- 1 - 3 - 1
3 2 2 "####
3
"####
5p 1 3 •!!!!
- - 1 - 3
6 2 2 "####
3
19
p 0 -1 0 ComplexInfinity
"####
7p 3 •!!!!
- 1 - 1 3
6 2 2 " ####
3
"####
4p 3 •!!!!
- - 1 3 1
3 2 2 "####
3
3p -1 0 ComplexInfinity 0
2
"####
5p 3 1 •!!!!
- - 3 - 1
3 2 2 "####
3
"####
11 p 3 •!!!!
- 1 - 1 - 3
6 2 2 "####
3
2p 0 1 0 ComplexInfinity
20