Alıştırmalar ve Problemler
Problem 1
Kullanıcıdan dört sayı isteyin. Kullanıcının girdiği sayıları float
formatına çevirin.
- Kullanıcının girdiği sayıları sırayla bir listeye yerleştirin. Yani 4 elemanlı tek boyutlu bir listenin elemanlarını kullanıcıya doldurtun. Listeyi ekrana yazdırın.
- Bu listenin tüm elemanlarının iki katını,
for
döngüsü kullanarak elde edin ve sonucu ekrana yazdırın. - Eğer girilen sayılardan en az bir tanesi 5’ten büyükse ekrana
... sayıları 5'ten büyüktür.
yazsın. Burada “…” yerine kullanıcının girdiği sayılar yazsın. Aksi taktirde5'ten büyük sayı girmediniz.
yazsın.
Problem 2
Bir liste oluşturun ve o listenin elemanları 4, 8, 15, 16, 23, 42
olsun. for
döngüsü ve .append()
fonksiyonu kullanarak listenin sonuna 1’den 80’a kadar sayılar ekleyin. Elde ettiğiniz yeni listenin adı yeniListe
olsun.
- Bilgilendirme:
[3,7]
listesinin birinci elemanı7
’dir.yeniListe
listenin birinci, beşinci ve son elemanını ekrana yazdırın. yeniListe
listesinin son beş elemanını ekrana yazdırın.yeniListe
listesinin son elli elemanının toplamını ekrana yazdırın.yeniListe
listesinin son elli elemanının çarpımını ekrana yazdırın.yeniListe
listesindeki tüm çift elemanları yerineTrue
, tüm tek elemanları yerineFalse
yazın.yeniListe
listesinin elemanlarını alt alta olacak şekildeyeniListe.txt
dosyasına yazdırın.
Problem 3
- \(1\)’den \(42\) sayısına kadar olan tüm sayıları toplayın. Sonu ekrana yazdırın.
- \(1\)’den \(42\) sayısına kadar olan tüm çift sayıları toplayın. Ekrana yazdırın.
- \(1\)’den \(89\)’a kadar (\(89\) dahil) olan tüm sayıları
for
döngüsünü kullanarak ekrana yazdıran bir betik yazın. Bu döngü, 18’de duracak şekilde olsun.
Problem 4
- Bir fonksiyon yazın. Bu fonksiyon ekrana sadece
Naber Dünyalı?
yazdırsın. - Bir fonksiyon yazın. Bu fonksiyon ekrana
Merhaba Dünyalı. Ben $100$'a kadar saymayı biliyorum.
yazsın ardından ekrana \(0\)’dan \(100\)’e kadar (\(100\) dahil) tüm sayıları yazdırsın. - Bir fonksiyon yazın. Bu fonksyion bir adet değişkeni alsın (Ör.
fonksiyon1(sayi)
) ve karesini geri döndürsün. - Bir fonksiyon yazın. Bu fonksiyon bir adet değişkeni alsın.
a sayısının kübü ...
yazsın ve kübünü geri döndürsün. Burada “a” fonksiyonun aldığı değişken ve “…” o değişkenin kübü olacaktır. - Bir fonksiyon yazın. Bu fonksiyon iki adet değişken alsın. Birinci değişkenden ikinci değişkene kadar olan tüm sayıların toplamını ekrana yazdırsın ve değerini döndürsün.
- Bir fonksiyon yazın. Bu fonksiyon bir adet değişken alsın. Girilen değişken \(x^2-1=0\) denkleminin çözümü ise
True
değil iseFalse
döndürsün. - Bir fonksiyon yazın. Bu fonksiyon beş adet değişken alsın. Bu değişkenler bir cismin uzay-zaman koordinatları x,y,z,t ve x eksenine göre göreli (rölatif) hızı olsun. Eğer hız değişkenin değeri ışık hızından büyükse ekrana bunun mümkün olamayacağını yazsın. Eğer hız değişkeni ışık hızından küçükse, uzay-zaman koordinatlarının yere göre (duran gözlemci) ne olacağını hesaplasın ve yeni koordinatları ekrana yazdırsın. Bunun için Lorentz Dönüşümünü kullanmanız gerekir. Buna ek olarak fonksiyon Galileo Dönüşümüne göre ne olacağını da hesaplasın ve ekrana yazdırsın. Fonksiyon, Lorentz dönüşümü ile elde ettiğiniz yeni uzay-zaman koordinatlarını döndürsün.
Problem 5
Modül
Aşağıdaki soruları, oluşturduğunuz fiz365.py
dosyası içerisine cevaplayın. Ardından calistir.py
adında bir betik dosyasında yazdıklarınızı çağırın.
fiz365.py
dosyasının içerisinenumpy
modülününp
ismiyle çağırın.faktoriyel()
adında bir fonksiyon yazın. Bu fonksiyon bir tam sayı alsın ve o sayının faktöriyelini döndürsün. Eğer verilen sayı tam sayı değilseFalse
değeri döndürsün.isinstance(sayi, int)
fonksiyonu,sayi
degiskenininint
tipinde olup olmadığını sınar. Eğerint
iseTrue
değeri döndürür. Eğer değilseFalse
değeri döndürür.
topla()
adında bir fonksyion yazın. Bu fonksyion bir tam sayı alsın ve birden o sayıya kadar olan tüm tam sayıların toplamını döndürsün. Eğer sayı tam sayı değilseFalse
değeri döndürsün.obeb()
adında bir fonksyion yazın. Bu fonksyion iki tam sayı alsın ve o sayıların ortak bölenlerinin en büyüğünü döndürsün. Eğer verilen sayı tam sayı değilseFalse
değeri döndürsün.okek()
adında bir fonksyion yazın. Bu fonksyion iki tam sayı alsın ve o sayıların ortak katlarının en küçüğünü döndürsün. Eğer verilen sayı tam sayı değilseFalse
değeri döndürsün.dik_mi()
adında bir fonksyion yazın. Bu fonksiyon üç sayı alsın ve bu üç sayıdan bir dik üçgen oluşuyor mu denesin. Eğer oluşuyorsaTrue
dönmüyorsaFalse
değeri döndürsün.- Sayıları sıralamak için
np.sort([sayi1, sayi2])
fonksiyonunu kullanabilirsiniz.
- Sayıları sıralamak için
calistir.py
dosyası içerisinefiz365
modülünüf365
ismi ile çağırın ve aşağıdaki fonksiyonları çalıştırın. Çıktılarını ekrana ne olduklarını belirterek yazdırın.faktoriyel(5)
,faktoriyel(5.5)
topla(5)
,topla(5.5)
obeb(12, 28)
,obeb(12, 28.5)
okek(8, 28)
,okek(8, 28.5)
,okek(8.3, 28)
. Sonuç neden tam sayı yaniint
şeklinde değil de.0
şeklinde oluyor? Açıklayınız.dik_mi(3, 5, 4)
,dik_mi(3, 4, 6)
fizik365.py
dosyasını kaydedin ve yedekleyin. Bu dosyayı dersin geri kalanında kullanacağız.
Problem 6
Karışık Alıştırmalar
Aşağıdaki sorularda fonksiyonları yazın. Ardından uygun değerler için fonksyionları çağırın ve çıktısını ekrana yazdırın.
- Bir fonksiyon yazın. Bu fonksiyon iki adet değişken alsın. Birinci değişkenden ikinci değişkene kadar (ikinci değişken dahil değil) olan tüm sayıların toplamını ekrana yazdırsın ve değerini döndürsün.
- Bir fonksiyon yazın. Bu fonksiyon bir adet değişken alsın. Girilen değişken \(x^3+2x^2-x-1=0\) denkleminin çözümü ise
True
değil iseFalse
döndürsün. - Bir fonksyion yazın. Bu fonksiyon bir adet değişken alsın. Bu değişken uzaklık gibi olsun ve 1 boyutlu negatif elektrik yükünün girilen (değişken) uzaklıktaki elektrik potansiyelini birimiyle beraber ekrana yazdırsın ve değerini döndürsün.
- Bir fonksiyon yazın. Bu fonksiyon iki adet değişken alsın. Birinci değişken konumdaki belirsizlik gibi olsun.İkinci değişken de momentumdaki belirsizlik gibi olsun. Girilen değerleri Heisenberg Belirsizlik İlkesine uyup uymadığını kontrol etsin. Eğer uyuyorsa
True
eğer uymuyorsaFalse
döndürsün. - Bir fonksiyon yazın. Bu fonksiyon üç adet değişken alsın. Bu değişkenler; kütle 1, kütle 2 ve uzaklık olsun. Fonksiyonda, girilen kütle ve uzaklık değerleri kullanılarak iki kütle arasında oluşan çekim kuvvetinin değerini birimiyle beraber ekrana yazdırsın. Sonuç değerini de döndürsün.
- Bir fonksiyon yazın. Bu fonksiyon dört adet değişken alsın. Bu değişkenler; ilk uzaklık, ilk hız, zaman ve ivme olsun. Fonksiyonda, girilen değerler kullanılarak, başlangıçta \(x_0\) konumunda olan ve ilk hızı \(v_0\) olan bir cismin \(a\) ivmesi altında \(t\) saniye sonra hangi konumda olacağı belirlensin. Sonucu birimiyle beraber ekrana yazdırın. Sonuç değerini döndürsün. Burada tüm büyüklüklükler skalerdir.
- Bir fonksiyon yazın. Bu fonksiyon iki adet değişken alsın. Bu değişkenler; başlangıç hızı ve atış açısı olsun. Fonksiyonda, yatay düzlemde, \(v_0\) ile \(\theta\) açısıyla atılan bir cismin hangi konumda tekrar yatay düzlemde olacağı bulunsun. Atıştan sonra hangi konumda olduğu, havada geçirdiği süre ve maksimum çıkabileceği yükseklik ekrana yazdırılsın. Bu üç değerden oluşan bir tuple oluşturun. Fonksiyon bu tuple’ı döndürsün. Burada tüm büyüklüklükler skalerdir.
Problem 7
Matris çarpımı
- 2 adet 3x3 matris oluşturun. Bunlardan bir tanesi 1’den 10’a kadar (10 dahil değil) diğeri ise 10’dan 19’a kadar olsun.
- Bu iki matrisi
@
ile çarpın ve sonucu ekrana yazdırın. sonuc
adında 3x3’lük sıfır matrisi oluşturun.- İlk matrisin birinci, ikinci ve üçüncü satırlarını ekrana yazdırın.
- İkinci matrisin tüm sütunlarını ayrı ayrı ekrana yazdırın.
- İlk matrisin ilk satırını ikinci matrisin ilk sütunu ile çarpın. Çıkan sonucu
sonuc
elemanın birinci satır birinci sütunundaki elemanına atayın. - İlk matrisin ikinci satırını ikinci matrisin ilk sütunu ile çarpın. Çıkan sonucu
sonuc
elemanın birinci satır ikinci sütunundaki elemanına atayın. - İlk matrisin üçüncü satırını ikinci matrisin ilk sütunu ile çarpın. Çıkan sonucu
sonuc
elemanın birinci satır üçüncü sütunundaki elemanına atayın. - İlk matrisin ikinci satırını ikinci matrisin ilk sütunu ile çarpın. Çıkan sonucu
sonuc
elemanın ikinci satır birinci sütunundaki elemanına atayın. mat_carp
adında bir fonksiyon oluşturun ve bu fonksiyon iki adet matris alsın. İki matrisi,for
döngü(leri)sü yardımı ile çarpsın. Adımlar aşağıdaki gibidir.- Bu fonksiyon, matrislerin boyutlarını incelesin. Eğer matrislerin boyutu, ilk matrisin boyutu NxM, ikinci matrisin boyutu MxT şeklinde değilse
False
değerini döndürsün. - Eğer herhangi bir matrisin tüm elemanları 0 ise Bir matrisin tüm elemanları sıfırdır. şeklinde ekrana yazı yazsın ve
for
döngüsüne girmeden sonucu uygun boyutta 0 matrisi döndürsün. - Eğer herhangi bir matris birim matris ise … matrisi birim matristir. şeklinde ekrana yazı yazsın ve
for
döngüsüne girmeden sonucu ekrana yazsın.
- Bu fonksiyon, matrislerin boyutlarını incelesin. Eğer matrislerin boyutu, ilk matrisin boyutu NxM, ikinci matrisin boyutu MxT şeklinde değilse
- Yukarıdaki yazdığınız fonksiyonu uyarı metinleri ekranda yazacak şekilde bir çok kez çağırın.
- Eğer
mat_carp()
fonksiyonunu çağırırken girdilerden birisi bir boyutlu array olursa, hata alacaksınız. Bunun nedeni hakkında düşünün ve gerekli düzenlemeyi yapın.
Problem 8
Dalga Fonksiyonun Normalizasyonu
normalize_et_dalgaFonk
adında bir fonksiyon yazın. Bu fonksiyonun bir adet numpy array tipi değişken alsın.- Alınan array en genel olarak sanal sayılardan oluşsun. Array’in her elemanını kendisinin sanal eşleniği (
np.conj()
) kendisini çarpsın ve çıkan sonuçları toplayıp bir adet sayı elde etsin. - Fonksiyona girdi olarak verilen arrayi, elde edilen bu sayının kareköküne (
np.sqrt()
) bölsün ve elde edilen arrayi geri döndürsün. - Girdi 1 boyutlu array değilse, bu fonksiyon sadece arrayler için çalışmaktadır. yazsın. Bunun için
np.ndim()
fonksiyonunu kullanbilirsiniz. Fonksiyon girdisi bir boyutlu array değilseNone
değerini döndürsün.
- Alınan array en genel olarak sanal sayılardan oluşsun. Array’in her elemanını kendisinin sanal eşleniği (
- Bu fonksiyonu
[1, 1]
değerleri için çağırın. xAxis
adında ve içeriği0
’dan1
’e kadar 100 elemanlı bir array oluşturun. Yardım:np.linspace(baslangicSayi, bitisSayi, adet)
yAxis
adında ve içeriği0
’dan1
’e kadar 100 elemanlı bir array oluşturun.- Çizim yapmak için
matplotlib.pyplot
modülünüplt
ismiyle çağırın ve x ve y eksenlerini çizdirin. Çizginin rengi siyahk
olsun. [1, 1]
arayini normalize ettiğimizde elde ettiğimiz arrayi de kırmızı iler
çizdirin.- Bunun için 3. ve 4. adımı
normalize_et_dalgaFonk
fonksiyonunu kullanarak tekrarlamanız gerekir. Fonksiyonu çağırdığınızda geri dönen iki değerden ilkixAxis
’in 0’dan o noktaya kadar olan değerlerini belirleyecek, ikincisi iseyAxis
’in 0’dan o noktaya kadar olan değerlerini belirleyecek.
- Bunun için 3. ve 4. adımı
- Bu adımda bilgisayar kod yazmanıza gerek yoktur. Kuantum dalga fonksiyonu aşağıdaki gibi verilmiştir. Aşağıdaki verilen gösterimler eşdeğerdir.
\[ |\psi> = A \left(\sin\theta|\uparrow> + \cos\theta|\downarrow>\right) \]
\[ |\psi> = A\sin\theta \left(\begin{matrix}1\\0\end{matrix}\right) + A\cos\theta\left(\begin{matrix}0\\1\end{matrix}\right) \]
\[ |\psi> = A\left(\begin{matrix}\sin \theta\\\cos \theta\end{matrix}\right) \]
Bu kuantum durumu normalize olması için A ne olmalıdır? Yardım: \(|<\psi|\psi>|^2=1\) için \(A\) ne olmalıdır?
- Aşağıdaki dalga fonksiyonunu el ile normalize ediniz.
normalize_et_dalgaFonk
fonksiyonunu kullanarak yaptığınız hesabı kontrol ediniz.
\[ |\psi> = A \left((1+i)|\uparrow> + (1-i)|\downarrow> \right) \]
Problem 9
Temel Python
- Ekrana “Hello World” yazdırın.
- 3 ve 2’yi toplayın. Cevabı ekrana yazdırın.
- 2’nin kökünü hesaplayın ve ekrana yazdırın.
degisken1= 5
vedegisken2 = 3
olsun.degisken1
vedegisken2
değişkenlerinin değerlerini yer değiştirin.degisken1= 5
olsun. Bu değişkenin tek mi veya çift mi olduğunu sınayan bir program yazın.degisken1= 5
vedegisken2 = 3
olsun. Eğerdegisken1
,degisken2
’den büyükse ekrana “degisken1 büyük” yazdırın. Aksi durum için ise “degisken2 büyük” yazdırın.- 0’dan 30’a kadar olan sayıları (0 ve 30 dahil) ekrana yazdırın.
- 0’dan 30’a kadar olan sayıların iki katını (0 ve 30 dahil) ekrana yazdırın.
- 0’dan 30’a kadar olan sayılardan sadece çift olanlarını (0 ve 30 dahil) ekrana yazdırın.
- 0’dan 30’a kadar olan sayıları ekrana yazdırın, ancak 12 ve 27’yi yazdırmayın.
Problem 10
Kendisiyle İşlem Yaptırma
- 0’dan 30’a kadar olan sayıları (0 ve 30 dahil) toplayın.
\[\sum_{i=0}^{30}i\]
- 1’dan 10’a kadar olan sayıları (1 ve 10 dahil) çarpın.
\[\prod_{i=1}^{10}i = 10!\]
- 0’dan 30’a kadar olan sayıları (0 ve 30 dahil) toplayın ancak 12 ve 27’yi toplamaya dahil etmeyin.
\[\sum_{i=0,i\ne12,27}^{30}i\]
- 0’dan 30’a kadar olan sayıların iki katını (0 ve 30 dahil) toplayın.
\[\sum_{i=0}^{30}2i\]
Problem 11
Fonksiyonlar
fonk1
adında bir fonksiyon yazın. Bu fonksiyon ekrana “Hello World” yazdırsın.fonk2
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve bu sayının iki katını ekrana yazdırsın.fonk3
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve o sayının tek mi çift mi olduğunu ekrana yazdırsın.fonk4
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve o sayının 0’dan büyük olup olmadığını ekrana yazdırsın.fonk5
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve o sayının karesini geri döndürsün.fonk6
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve sıfırdan o sayıya kadar olan tüm sayıları toplayıp sonucu geri döndürsün.fonk7
adında bir fonksiyon yazın. Bu fonksiyon iki sayı alsın ve bu sayıların toplamını geri döndürsün.fonk1
’i çağırın.fonk2
’yi,fonk3
’ü,fonk4
’ü,fonk5
’i vefonk6
’yı 30 için çağırın.fonk7
’yı, 30 ve 35 için çağırın.fonk8
adında bir fonksiyon yazın. Bu fonksiyon,fonk
vex
adında iki parametre alsın. Buradafonk
bir fonksiyon olacaktır.fonk8
ana fonksiyonumuzun içerisinde bufonk
fonksiyonunux
çağırın ve sonucu ekrana yazdırın.fonk8
’i,fonk5
ve 30 için çağırın.
Problem 12
Numpy Arrayler
- Elemanları 3,4,9,1 olan ve adı
arr1
olan bir numpy arrayi oluşturun. arr1
arrayinin 2. elemanını ekrana yazdırın. (9 olan elemanı)- Elemanları 11,22,33,44,55,66,77,88,99,100 olan ve adı
arr2
olan bir numpy arrayi oluşturun. arr2
arrayinin 3. elemanından 7. elemanına kadar olan elemanları ekrana yazdırın. (elemanlar 0’dan başlar)arr2
arrayinin elemanlarınıfor
döngüsü kullanarak toplayın.
Problem 13
Matrisler
- Birinci satırı 3,4,5 ikinci satırı 9,1,2 ve üçüncü satırı 11,12,13 olan ve adı
mat1
olan bir numpy arrayi oluşturun. - Bu matrisin 0. satırını ekrana yazdırın.
- Bu matrisin 2. sütununu ekrana yazdırın.
- Bu matisin 1. satırının 1. sütunundaki elemanı ekrana yazdırın.
- Bu matrisin elemanları
for
döngüsü kullanarak toplayın.
Problem 14
Algoritmalar
algo1
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve o sayının faktöriyelini geri döndürsün.algo2
adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve o sayıya kadar olan tüm sayılara bölünüp bölünmediğini ekrana yazdırsın. Örn. 8 için 1’e, 2’ye, 4’e bölünür.algo3
adında bir fonksiyon yazın. Bu fonksiyon iki sayı alsın ve bu sayıdan büyük olanını ekrana yazdırsın.algo4
adında bir fonksiyon yazın. Bu fonksiyon bir array alsın ve arrayin ortasındaki elemanı ekrana yazdırsın. Örn: [1,2,3] -> 2. Eğer arrayin eleman sayısı çift ise ortadaki iki elemanı ekrana yazdırın. Örn: [1,2,3,4] -> 2,3algo5
adında bir fonksiyon yazın. Bu fonksiyon bir array alsın ve bu arrayin elemanlarının yerini tersten yazsın. Örn: [1,2,3] -> [3,2,1]. (numpy’ınreverse
özelliğini kullanmayın.)algo6
adında bir fonksiyon yazın. Bu fonksiyon bir arrayin içindeki elemanları küçükten büyüğe sıralasın. (numpy’ınsort
özelliğini kullanmayın.)algo7
adında bir fonksiyon yazın. Bu fonksiyon bir array alsın ve elemanlarının simetriğindeki elemanları toplayıp ekrana yazdırsın. Örn: [1,3,5,9] -> 1+9=10, 3+5=8. Eğer arrayin eleman sayısı tek ise ortadaki elemanı toplamadan ekrana yazdırsın. Örn: [1,3,5,9,11] -> 1+11=12, 3+9=12, 5.algo8
adında bir fonksiyon yazın. Bu fonksiyon bir array alsın ve bu array her elemanını bir sonraki elemanla toplayıp bir array yaratsın. Örn. [1,2,3,4] -> [1+2, 2+3, 3+4] -> [3,5,7].algo9
adında bir fonksiyon yazın. bir matris alsın ve bu matrisin transpozunu geri döndürsün. (numpy’ınT
özelliğini kullanmayın.)algo10
adında bir fonksiyon yazın. bir matris alsın ve bu matrisin elemanlarının toplamını geri döndürsün. (numpy’ınsum
özelliğini kullanmayın.)algo11
adında bir fonksiyon yazın. iki matris alsın ve bu matrislerin çarpımını geri döndürsün. (numpy’ındot
özelliğini veya@
özelliğini kullanmayın.)
Problem 15
Formülden Algoritma Yazma
algofonk1
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x)=x^{2}+4x-7\]
algofonk2
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x)=\frac{sin(x)}{x}\]
algofonk3
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x)=\prod_{i=1}^{x}i=x!\]
algofonk4
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x)=\sum_{i=0}^{x}i\]
algofonk5
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x)=\sum_{i=0}^{x}\sqrt{i}\]
algofonk6
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x)=\sum_{i=3}^{x-5}i^{2}\]
algofonk7
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x,a)=\sum_{i=0}^{a}x\]
algofonk8
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.
\[f(x,a,b)=\sum_{i=a}^{b}\frac{x \times i}{a \times b}\]
algofonk9
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradax
bir array.
\[f(x)=\sum_{i}x_{i}\]
algofonk10
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradax
bir array.
\[f(x)=\prod_{i}x_{i}\]
algofonk11
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradax
, n boyutlu bir array.
\[f(x)=\sum_{i}^{n-1}x_{i}+x_{i+1}\]
algofonk12
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradax
, n boyutlu bir array.
\[f(x,a,b)=\sum_{i=0}^{n-1}a \times x_{i}+b \times x_{i+1}\]
algofonk13
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradag
, tek değişkenli bir fonksiyon.
\[f(g)= g(3)\]
algofonk14
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradag
, tek değişkenli bir fonksiyon vex
bir sayı.
\[f(g,x)= g(3)\times x\]
algofonk15
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradag
, tek değişkenli bir fonksiyon vex
bir sayı.
\[f(g,x)= g(x)\times g(x)\]
algofonk16
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradag
, tek değişkenli bir fonksiyon vex
n boyutlu bir array.
\[f(g,x)= \frac{g(x_{0})+g(x_{1})}{2}\]
algofonk17
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradag
, tek değişkenli bir fonksiyon vex
n boyutlu bir array.
\[f(g,x)= \sum_{i=0}^{n}g(x_{i})\]
algofonk18
adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Buradag
, tek değişkenli bir fonksiyon vex
n boyutlu bir array.
\[f(g,x)= \sum_{i=0}^{n-1}g(x_{i})+g(x_{i-1})\]
Problem 16
Zor Algoritmalar
algoZor1
adında bir fonksiyon yazın. iki matris alsın ve bu matrislerin çarpımını ters bir şekilde yapsın. Yani birinci matrisin sütunları ile ikinci matrisin satırları çarpılsın. Bu fonksiyon sadece kare matrisler için çalışsın.algoZor2
adında bir fonksiyon yazın. Bu fonksiyon bir kompleks matris alsın. Bu matrisin hermisyen olup olmadığını kontrol edip sonucu ekrana yazdırsın. Yani kompleks konjugesinin transpozu (dagger’ı) kendine eşit mi değil mi kontrol etsin.algoZor3
adında bir fonksiyon yazın. Bu fonksiyonx
,y
vez
kartezyen koordinatlarını alsın ve bu koordinatlarır
,theta
vephi
küresel koordinatlarına çevirip değerleri geri döndürsün.algoZor4
adında bir fonksiyon yazın. Bu fonksyionvec2d
adında iki bileşenli array vetheta
adında bir açı alsın. Bu fonksiyonvec2d
vektörünütheta
açısıyla döndürsün ve bu fonksiyon yeni dönmüş vektörü geri döndürsün.algoZor5
adında bir fonksiyon yazın. Bu fonksiyonvec3d
adında bir üç bileşenli bir array,theta
vephi
adında açılar alsın. Bu fonksiyonvec3d
vektörünütheta
vephi
açılarıyla döndürsün ve yeni dönmüş vektörü geri döndürsün.algoZor6
adında bir fonksiyon yazın. Bu fonksiyonspinFermi
adında iki bileşenli bir array,theta
adında bir açı,xBool
,yBool
vezBool
adlarında 3 adet mantıksal değişken alsın. Bu fonksiyonspinFermi
fermion spin vektörünü Pauli-spin matrislerini kullanarak iletheta
açısıyla döndürsün. EğerxBool
doğru isex
eksenine göre döndürsün,yBool
doğru isey
eksenine göre döndürsün,zBool
doğru isez
eksenine göre döndürsün. Bu fonksiyon döndürülen vektörü geri döndürsün.algoZor7
fonksiyonunu kullanarak Stern-Gerlach deneyini simüle edin. Bunun için spini \(z\) yönünde olan bir parçacığın spin vektörünü önce \(x\) yönünde, sonra da \(y\) yönünde döndürün.algoZor8
adında bir fonksiyon yazın. Bu fonksiyonhamilt
adında Hamiltonyen matrisini alsın ve enerji özdeğerlerini ve buna karşılık gelen özdurumları bulup ekrana yazdırsın.algoZor9
adında bir fonksiyon yazın. Bu fonksiyonyuk
yük miktarı,x
,y
vez
koordinatlarını alsın ve bu yükün \(x,y,z\) noktasındaki elektrostatik potansiyelini geri döndürsün.algoZor10
adında bir fonksiyon yazın. Bu fonksiyonyuk1
,yuk2
yük miktarlarını,x
,y
vez
aralarındaki mesafeyi veren koordinatları alsın ve bu iki yük arasındaki Coulomb kuvvetinin büyüklüğünü geri döndürsün.algoZor11
adında bir fonksiyon yazın. Bu fonksiyon düzgün yoğunluğa sahip bir sonsuz uzunluktaki bir çubuğun yük dağılımını veren fonksiyonuyukDagılımıFonk
,r
koordinatını alsın ve çubuktanr
kadar uzaklıktaki elektrostik potansiyel değerini geri döndürsün.yukDagılımıFonk
fonksiyonux
koordinatında yük dağılımının değerini veren bir fonksiyon olmalı.
Problem 17
Aşağıdaki denklemde verilen ve \(g\) fonksiyonunu hesaplayan fonk1
adında bir python fonksiyonu yazın.
fonk1
fonksiyonuf1
,f2
fonksiyonlarını ve bir adetxVec
adında numpy arrayini input olarak alsın.fonk1
fonksiyonu \(g\) fonksiyonun değerini döndürsün.- Denklemdeki \(n\),
xVec
değişkeninin uzunluğudur ve \(x_{i}\), \(\vec{x}\) vektörünün (arrayinin) bileşenleridir.
Fonksiyon: \[ g(f_{1}(\vec{x}),f_{2}(\vec{x}),\vec{x}) = x_{0}\sum_{i=1}^{n} \frac{f_1(x_i)}{f_2(x_{i-1})} \]
Problem 18
fonk2
adında bir fonksiyon yazın. Bu fonksiyon xVec
adında bir adet array alsın ve her elemanını kendinden bir sonraki elemanla toplayıp sonucu döndürsün. Örneğin [1,2,3,4]
alsın, [3,5,7]
döndürsün.
fonk2
fonksiyonunu[11,22,33,44,55,66,77,88,99]
dizisiyle çağırın ve sonucu ekrana yazdırın.
Problem 19
\(42\) ile \(100\) arasındaki (100 dahil değil) tüm tek sayıları ekrana yazdırın.
Problem 20
Aşağıdaki kodun nasıl çalıştığını açıklayın.
- En altta bu kodun nasıl çalışmaya başladığı ile ilgili satırlar verilmiştir. Bu adımların devamını siz yazın.
- Cevabınızı, sisteme yükleyeceğiniz
.py
dosyasına yorum şeklinde yani#
ile başlayan satırlarla açıklayın. - Aşağıda yazılı olan betiği cevap kağıdınıza tekrar yazmayın.
- Cevabınızı yazarken önce aşağıda yazılan açıklamaları yazın.
sayi= 5 # Satır 1
asalCarp= [] # Satır 2
for i in range(2,sayi): # Satır 3
if sayi%i==0: # Satır 4
asalMi= True # Satır 5
for j in range(2,i): # Satır 6
if i%j==0: # Satır 7
asalMi= False # Satır 8
break # Satır 9
if asalMi: # Satır 10
asalCarp.append(i) # Satır 11
asalCarp.append(sayi) # Satır 12
print(asalCarp) # Satır 13
Betiğin çalışması:
# (satır 1) sayi değişkenine 6 ata.
# (satır 2) asalCarp değişkenine boş bir liste ata.
# (satır 3) for döngüsüne gir. --> i=>2, sayi=>6
# (satır 4) sayi=>6 sayısı i=>2'ye tam bölünüyor mu? --> Evet --> if koşuluna gir.
# (satır 5) asalMi değişkenine True ata.
# (satır 6) 2. for döngüsüne gir. --> j=>2 --> for döngüsünden çık çünkü range(2,2) boş bir liste.
# (satır 10) asalMi değişkeni True mu? --> Evet.
# (satır 11) i'yi yani 2'yi asalCarp değişkeninin sonuna ekle.
# (satır 3) ...... DEVAM EDİN ......
Problem 21
- Ekrana
Soru başlamıştır.
yazdırın. - Elemanları
4,8,15,16,23,42
olan bir liste oluşturun. Numpy array de kabul edilecektir. for
döngüsü kullanarak tüm elemanları teker teker ekrana yazdırın.- Ardından ekrana
Soru bitmiştir.
yazdırın.
Problem 22
Numpy
Numpy paketini kullanarak aşağıdaki matrisi oluşturun ve mat1
değişkenine atayın. mat1
değişkeninin ilk sütunundaki tüm elemanları yazdırın. Son satırdaki tüm elemanları ekrana yazdırın. Not: Elemanları teker teker print etmeyin.
\[ \begin{bmatrix*} 1 & 2 & 3 & 4\\ 5 & 6 & 7 & 8\\ 9 & 10 & 11 & 12\\ 13 & 14 & 15 & 16 \end{bmatrix*} \]
Problem 23
Numpy
fonk_tekIndis42
adında bir fonksiyon yazın. Bu fonksiyon bir adet bir boyutlu numpy arrayini alsın. Bu arrayin tüm tek sayılı indekslerini 0 yapsın ve sonucu geri döndürsün.fonk_tekIndis42
fonksiyonunu 4, 8, 15, 16, 23, 42 sayılarından oluşan array için çağırın ve fonksiyondan dönen arrayi ekrana yazdırın.
Problem 24
Numpy
fonk_diag42
adında bir fonksyion yazın. Bu fonksiyon bir adet iki boyutlu numpy arrayi yani matrisi alsın. Bu arrayin köşegen elemanlarını 42 yapsın ve sonucu geri döndürsün.fonk_diag42
fonksiyonunu 12x12 boyutlu birim matris için çağırın ve geri dönen sonucu ekrana yazdırın.
Problem 25
- Fibonacci dizisinde sayıları veren,
fonk_fibonacci
isimli bir fonksiyon yazın. Bu fonksiyon bir tam sayı,n
, alsın ve o tam sayı kadar elemanı olan bir numpy arrayi döndürsün. Örneğin;n=4
verilmiş isefonk_fibonacci(n)
fonksiyonu \(F_{1}\), \(F_{2}\), \(F_{3}\), \(F_{3}\) elemanlarından oluşan arrayi döndürmeli. fonk_fibonacci(10)
fonksiyonunu çağırın ve sonucu ekrana yazdırın.
Bilgilendirme: Fibonacci dizisi \(F_{n}=F_{n-1} + F_{n-2}\) ve \(F_{1}=1\) ve \(F_{2}=1\) olarak tanımlanır.
Problem 26
Numpy
- Ekrana
Soru başlamıştır.
yazdırın. - Elemanları
421,142,412,42
olan iki boyutlu (\(2\times2\) matris gibi) bir numpy array oluşturun.421,142
ilk satırda,412,42
ikinci satırda olsun. for
döngüsü kullanarak tüm elemanları teker teker ekrana yazdırın. Yazım formatıMATRIS [0,0] = 421
şeklinde olmalıdır.- Ekrana
2. soru bitmiştir.
yazdırın.
Problem 27
- Satırları
1,2,3
,4,5,6
ve7,8,9
olan bir matris oluşturun. - Oluşturduğunuz matrisin tüm elemanlarını
for
döngüsü kullanarak çarpın.
Referanslar
- https://www.programiz.com/python-programming/examples
- https://www.freecodecamp.org/news/python-code-examples-sample-script-coding-tutorial-for-beginners/#-for-loops-in-python
- Algorithms in Python – Full Course for Beginners: https://www.youtube.com/watch?v=fW_OS3LGB9Q
- Vektör döndürme: https://stackoverflow.com/questions/14607640/rotating-a-vector-in-3d-space, https://en.wikipedia.org/wiki/Euler%E2%80%93Rodrigues_formula
- Bir vektörü Pauli-Spin matrisleri ile döndürme: https://quantummechanics.ucsd.edu/ph130a/130_notes/node279.html
- Sonsuz uzunluktaki çubuğun elektrostatik potansiyeli: http://hyperphysics.phy-astr.gsu.edu/hbase/electric/potlin.html