Ders Notu-2

convert komutu
Sayıların değişik biçim ya da birimlerdeki yazılışları, Romen ve Arap rakamları ile
yazılmış sayıların birbirine çevrilmesi ve sürekli kesirlerde bu komut kullanılır.
Bir sayının Romen rakamları ile yazılmış hali isteniyorsa “convert(sayı,roman)” , bir
sayının Arap rakamları ile yazılmış hali isteniyorsa “convert(sayı,arabic)” komutu
kullanılır.
> convert(2014,roman);
"MMXIV"
> convert(12345,roman);
"MMMMMMMMMMMMCCCXLV"
> convert(%,arabic);
12345
> convert(MMXXIII,arabic);
2023
Ondalıklı bir sayıya karşılık gelen kesri bulmak için “convert(kesirli sayı,rational)”, bir
kesre karşılık gelen sayı bulunmak isteniyorsa “evalf” veya “convert(kesirli sayı,float)”
komutu kullanılır.
> convert(233,rational);
233
> convert(6.24,rational);
156
25
> convert(1/24,float);
0.04166666667
> 268/486;
134
243
> evalf(%);
0.5514403292
> convert(268/486,float);
0.5514403292
Fakat convert komutu her zaman kesin sonucu vermez. Bunun için convert komutuna
exact parametresi de eklenmelidir. Örneğin;
> a:=convert(1.234567,rational);
50737
a :=
41097
> 1234567/1000000;
1234567
1000000
> b:=convert(1.234567,rational,exact);
1234567
b :=
1000000
> a-b;
1
41097000000
> evalf(%);
0.2433267635 10 -10
Bu komut radyan ve derece ölçülerini de birbirine çevirebilir. Dereceyi radyan cinsinden
yazmak için “convert(açı*degrees,radians)”, radyanı derece cinsinden yazmak için
“convert(radyan,degrees)” komutu kullanılır.
> convert(150*degrees,radians);
> convert(57*degrees,radians);
5
6
19 
60
> convert(5*Pi/9,degrees);
100 degrees
Zaman ölçü birimlerini de dönüştürebilir.
> convert(180,units,sec,min);
3
> convert(120,units,min,hour);
2
Saatte 50 km’lik hızı metre/saat, metre/dakika, metre/saniye şeklinde çevirelim.
> convert(50,units,km/h,m/h);
50000
> convert(50,units,km/h,m/min);
2500
3
> convert(50,units,km/h,m/s);
125
9
Bir pozitif tamsayının “n” tabanındaki hali isteniyorsa bu komut “convert(sayı,base,n)”
şeklinde kullanılır. Fakat sonuçlar ters sıradadır.
> convert(2014,base,2);
[ 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1 ]
> convert(2014,base,8);
[ 6, 3, 7, 3 ]
> convert(2014,base,10);
[ 4, 1, 0, 2 ]
n lik sistemdeki bir sayının m lik sisteme çevrilmesi isteniyorsa “convert(sayı,base,n,m)”
komutu kullanılır. Burada sayının ters sırada olduğu unutulmamalıdır.
> convert(2014,base,8);
[ 6, 3, 7, 3 ]
> convert([3,7,3,6],base,8,10);
[ 3, 2, 3, 3 ]
> convert([6,3,7,3],base,8,10);
[ 4, 1, 0, 2 ]
Bir sayıya karşılık gelen sürekli kesri bulma da “convert” komutu ile olur. Örneğin
sayısına karşılık gelen sürekli kesir
olup
şeklinde bulunur. Yani
kesir [5,2,3,2] dir.
> 5+1/(2+1/(3+1/2));
87
16
> evalf(%);
5.437500000
> convert(5.4375,confrac);
[ 5, 2, 3, 2 ]
> convert(13/30,confrac);
[ 0, 2, 3, 4 ]
sayısına karşılık gelen sürekli
Aşağıdaki örneği inceleyelim.
> convert(Pi,confrac);
[ 3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3 ]
> convert(Pi,confrac,d1);
[ 3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3 ]
> d1;
 3, 22, 333 , 355 , 103993 , 104348 , 208341 , 312689 , 833719 , 1146408 , 4272943 
 7 106 113 33102 33215 66317 99532 265381 364913 1360120 

confrac’tan sonraki d1 argümanı sürekli kesrin atandığı dizidir. Daha fazla sürekli kesrin
devam edilmesi istenirse aşağıdaki şekilde olur.
> convert(Pi,confrac,25);
[ 3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1 ]
> convert(Pi,confrac,25,d2);
[ 3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1 ]
> d2;
 3, 22 , 333 , 355 , 103993 , 104348 , 208341 , 312689 , 833719 , 1146408 , 4272943 ,
 7 106 113 33102 33215 66317 99532 265381 364913 1360120
5419351 80143857 165707065 245850922 411557987 1068966896
,
,
,
,
,
,
1725033 25510582 52746197 78256779 131002976 340262731
2549491779 6167950454 14885392687 21053343141 1783366216531
,
,
,
,
,
811528438 1963319607 4738167652 6701487259 567663097408
3587785776203 5371151992734 8958937768937 
,
,

1142027682075 1709690779483 2851718461558 
> evalf(d1);
[ 3., 3.142857143 , 3.141509434 , 3.141592920 , 3.141592653 , 3.141592654 ,
3.141592653 , 3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 ]
> evalf(d2);
[ 3., 3.142857143 , 3.141509434 , 3.141592920 , 3.141592653 , 3.141592654 ,
3.141592653 , 3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 ,
3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 ,
3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 ,
3.141592654 , 3.141592654 , 3.141592654 , 3.141592654 ]
Polinomlar için de convert komutu kullanılabilir. Örneğin;
> convert(exp(x),confrac,x);
x
1
x
1
x
2
x
3
2
x
5
> convert(exp(x),confrac,x,15);
x
1
x
1
x
2
x
3
x
2
x
5
x
2
x
7
x
2
x
9
x
2
x
11 
2
x
13 
x
2
> convert(sin(x),confrac,x,10);
x
x2
x2
1
6

10
x2

7
686 3857 x2


11
2178
Aynı işlem “cfrac(sayı,adet)” komutu ile de yapılabilir, fakat bunun için numtheory
paketi açılmalıdır.
> with(numtheory);
[ GIgcd, bigomega , cfrac, cfracpol , cyclotomic , divisors, factorEQ , factorset , fermat,
imagunit , index , integral_basis , invcfrac, invphi, iscyclotomic , issqrfree, ithrational ,
jacobi , kronecker,  , legendre , mcombine, mersenne, migcdex, minkowski, mipolys ,
mlog, mobius , mroot, msqrt, nearestp, nthconver , nthdenom , nthnumer , nthpow ,
order, pdexpand , , , pprimroot, primroot, quadres , rootsunity , safeprime, ,
sq2factor , sum2sqr, , thue ]
> cfrac(Pi,10);
1
3
1
7
1
15 
1
1
1
292 
1
1
1
1
1
1
1
2
1
1
3...
> cfrac(sin(x),x,3);
x
1
x2
7 x2
6
10 ...
Bazı sayıların sürekli kesri periyodik olabilir. Bunun için aşağıdaki örneği inceleyelim.
> cfrac(Pi);
1
3
1
7
1
15 
1
1
1
292 
1
1
1
1
1
1
1
2
1
1
3...
> cfrac(sqrt(2));
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
2
> cfrac(sqrt(2),'periodic');
1
2...
1
1
2
1
2...
> cfrac(Pi,'periodic');
Error, (in numtheory:-cfrac) 1st argument must be a quadratic surd
> cfrac((1+sqrt(5))/2);
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1...
> cfrac((1+sqrt(5))/2,'periodic');
1
1
1...
Polinomlar
> (1+x^3+2*x)*(2*x-1);
( 1x32 x ) ( 2 x1 )
> expand(%);
12 x4x34 x2
Polinomun x in kuvvetlerine göre sıralanması istenirse “sort” komutu kullanılır.
> sort(%);
2 x4x34 x21
İçerisinde u nun da olduğu birkaç değişkene bağlı bir polinomda
nınn katsayısının
bulunması istenirse “coeff(polinom,u,k)” veya “coeff(polinom,u^k)” komutu kullanılır.
> pol:=x^4*y^3-2*x^3*y+y^2*x-3*x^2*y;
pol := x4 y32 x3 yy2 x3 x2 y
> coeff(pol,x);
y2
> coeff(pol,x,3);
2 y
> coeff(pol,x^3);
2 y
Bir polinomda u değişkenine ait ilk ve son katsayılar “lcoeff(pol,u)” ve “tcoeff(pol,u)”
komutları ile bulunur.
> lcoeff(pol,x);
y3
> tcoeff(pol,x);
y2
Bir u değişkenine göre olan polinomun derecesi “degree(pol,u)” komutu ile bulunur.
“ldegree(pol,u)” komutu polinomda u nun en küçük derecesini verir.
> degree(pol,x);
4
> degree(pol,y);
3
> ldegree(pol,x);
1
> ldegree(pol,y);
1
Polinomların Bibirine Bölünmesi
MAPLE komutları ile polinomların birbirine bölümünden bölüm ve kalanı bulmak
mümkündür. Bölümü veren komut “quo(1.polinom,2.polinom,değişken)”, kalanı veren
komut “rem(1.polinom,2.polinom,değişken)” dir. Örneğin;
> pol1:=4*x^5+x^3-2*x^2-5*x+2;
pol1 := 4 x5x32 x25 x2
> pol2:=3*x^2-2*x-1;
pol2 := 3 x22 x1
> quo(pol1,pol2,x);
4 3 8 2 37
44
x  x  x
3
9
27
81
> rem(pol1,pol2,x);
206 206 x

81
81
Sağlamasını yapalım. Buna göre “pol1=bölüm*pol2+kalan” olmalı.
> bolum:=quo(pol1,pol2,x);
bolum :=
4 3 8 2 37
44
x  x  x
3
9
27
81
> kalan:=rem(pol1,pol2,x);
kalan :=
206 206 x

81
81
> sonuc:=bolum*pol2+kalan;
4
8
37
44
206 206 x
sonuc :=  x3 x2 x  ( 3 x22 x1 )

3
9
27
81
81
81


> expand(sonuc);
4 x5x32 x25 x2
> simplify(sonuc);
4 x5x32 x25 x2
> pol1;
4 x5x32 x25 x2
Cebirsel İfadelerin Açılımları
Herhangi p(x) ve q(x) polinomlarının çarpımı bulunmak isteniyorsa matematiksel olarak
açık halini “expand” komutu verir.
> (3*x^2-2*x+1)*(x-1);
( 3 x22 x1 ) ( x1 )
> expand(%);
3 x35 x23 x1
Çarpım polinomunun bir moda göre açılımı isteniyorsa “expand(polinom) mod n” komutu
kullanılır.
> expand((x^3+y^5+2)*(x*y^2+3)) mod 5;
x4 y23 x3y7 x3 y52 x y21
Ayrıca trigonometrik, üstel vs. gibi fonksiyonların açılımı için de bu komut kullanılabilir.
> expand(sin(A+B));
sin( A) cos( B )cos( A) sin( B )
> expand(cos(A+B+C));
cos( A ) cos( B ) cos( C )cos( A ) sin( B ) sin( C )sin( A ) sin( B ) cos( C )
sin( A ) cos( B ) sin( C )
> expand(ln(3*x));
ln( 3 )ln( x )
Polinomlar İçin En Büyük Ortak Bölen Ve En küçük Ortak Kat
Bir polinomu çarpanlarına ayırmak için “factor” komutu kullanılır.
> pol1;
4 x5x32 x25 x2
> factor(pol1);
( x1 ) ( x1 ) ( 4 x35 x2 )
İngilizcede “en büyük ortak bölen” anlamına gelen “greatest common divisor”
kelimelerinin baş harflerinden oluşan
“gcd(p(x),q(x))” komutu ile p(x) ve q(x)
polinomlarının en büyük ortak böleni bulunur.
> pol1;
4 x5x32 x25 x2
> pol2;
3 x22 x1
> gcd(pol1,pol2);
x1
İngilizcede “en küçük ortak kat” anlamına gelen “least common multiple” kelimelerinin baş
harflerinden oluşan “lcm(p(x),q(x))” komutu ile p(x) ve q(x) polinomlarının en küçük ortak
katı bulunur.
> pol1;
4 x5x32 x25 x2
> pol2;
3 x22 x1
> lcm(pol1,pol2);
( 4 x44 x35 x23 x2 ) ( 3 x22 x1 )
> expand(%);
12 x64 x53 x45 x317 x2x2
Terimlerin Düzenlenmesi
Bazı değişkenler bulunduran bir polinomu bu değişkenlerden birine göre düzenlemek
istendiğinde “collect(polinom,değişken)” komutu kullanılır.
> s1:=(x+y)^3+3*x*y^2+x^2-2*y+x^2*y^2+6*x;
s1 := ( xy )33 x y2x22 yx2 y26 x
> collect(s1,x);
x3( y213 y ) x2( 6 y26 ) xy32 y
> collect(s1,y);
y3( x26 x ) y2( 23 x2 ) yx3x26 x
“expand” komutunun tersine benzeyen bir işlem “combine” komutu ile yapılır.
> a1:=exp(2*x)^3+5*exp(x)^2-6;
a1 := ( e
( 2 x)
3
2
) 5 ( e x ) 6
> combine(a1,exp);
e
( 6 x)
5 e
( 2 x)
6
> combine(sin(A)*sin(B),trig);
1
1
cos( AB ) cos( AB )
2
2
> combine(sin(x)^3,trig);
1
3
 sin( 3 x ) sin( x )
4
4
Matematiksel İfadelerin Eşit Oldukları İfadelere Dönüştürülmesi
Bu da yine “convert” komutu ile yapılır.
> convert(sinh(x),exp);
1 x 1 ( x )
e  e
2
2
> convert(sin(x),exp);
(x I)
( I x )
-1
I ( e e
)
2
> convert(exp(x),trig);
cosh( x )sinh( x )
> convert(sin(x)+cos(x),tan);
2
x
x
2 tan 
1tan 
 2  
2
2
2
x
x


1tan 
1tan 
2
2
> convert(arcsin(x),ln);
I ln( 1x2 x I )
Bir trigonometrik ifadeye eşit olan diğer tüm ifadeler “trigsubs(trig.ifade)” ile bulunur.
> trigsubs(sin(2*x));
1
1
2 tan( x )
 sin( 2 x ), sin( 2 x ), 2 sin( x ) cos( x ),
,
,
,

csc( 2 x )
csc( 2 x ) 1tan( x ) 2

( 2 I x)
( -2 I x ) 
-1
I (e
e
)

2
> trigsubs((tan(x)^2));


 tan( x ) 2, sec( x ) 21, tan( x ) 2, tan( x ) 2,



x
4 tan 
2
2
2


 1tan x  



2 
x
4 cot  
2
,
2
sin( x ) 2
sin( 2 x ) 2
,
,
cos( x ) 2 ( 1cos( 2 x ) ) 2
2
( 1cos( 2 x ) ) 2
1
1
,
,
,
,
2
2
2
sin( 2 x )
cot ( x ) cot ( x ) 2 
2

 cot  x  1 
  2 

4
 cot  x tan x  
  
  
 2
 2 
2
,


( e e
)
sin( 2 x )
( 1cos( 2 x ) )
2


,
,
,
(
csc
(
2
x
)

cot
(
2
x
)
)
2

(x I)
( I x )
( 1cos( 2 x ) ) 2
sin( 2 x ) 2
( e e
)


(x I)
( I x )
2
2
2