Alıştırmalar ve Problemler

Yazar

Taygun Bulmus

Yayınlanma Tarihi

26 Ağustos 2024

Problem 1

Kullanıcıdan dört sayı isteyin. Kullanıcının girdiği sayıları float formatına çevirin.

  1. 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.
  2. Bu listenin tüm elemanlarının iki katını, for döngüsü kullanarak elde edin ve sonucu ekrana yazdırın.
  3. 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 taktirde 5'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.

  1. Bilgilendirme: [3,7] listesinin birinci elemanı 7’dir. yeniListe listenin birinci, beşinci ve son elemanını ekrana yazdırın.
  2. yeniListe listesinin son beş elemanını ekrana yazdırın.
  3. yeniListe listesinin son elli elemanının toplamını ekrana yazdırın.
  4. yeniListe listesinin son elli elemanının çarpımını ekrana yazdırın.
  5. yeniListe listesindeki tüm çift elemanları yerine True, tüm tek elemanları yerine False yazın.
  6. yeniListe listesinin elemanlarını alt alta olacak şekilde yeniListe.txt dosyasına yazdırın.

Problem 3

  1. \(1\)’den \(42\) sayısına kadar olan tüm sayıları toplayın. Sonu ekrana yazdırın.
  2. \(1\)’den \(42\) sayısına kadar olan tüm çift sayıları toplayın. Ekrana yazdırın.
  3. \(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

  1. Bir fonksiyon yazın. Bu fonksiyon ekrana sadece Naber Dünyalı? yazdırsın.
  2. 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.
  3. Bir fonksiyon yazın. Bu fonksyion bir adet değişkeni alsın (Ör. fonksiyon1(sayi)) ve karesini geri döndürsün.
  4. 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.
  5. 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.
  6. 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 ise False döndürsün.
  7. 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.

  1. fiz365.py dosyasının içerisine numpy modülünü np ismiyle çağırın.
  2. 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ğilse False değeri döndürsün.
    1. isinstance(sayi, int) fonksiyonu, sayi degiskeninin int tipinde olup olmadığını sınar. Eğer int ise True değeri döndürür. Eğer değilse False değeri döndürür.
  3. 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ğilse False değeri döndürsün.
  4. 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ğilse False değeri döndürsün.
  5. 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ğilse False değeri döndürsün.
  6. 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şuyorsa True dönmüyorsa False değeri döndürsün.
    1. Sayıları sıralamak için np.sort([sayi1, sayi2]) fonksiyonunu kullanabilirsiniz.
  7. calistir.py dosyası içerisine fiz365 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.
    1. faktoriyel(5), faktoriyel(5.5)
    2. topla(5), topla(5.5)
    3. obeb(12, 28), obeb(12, 28.5)
    4. okek(8, 28), okek(8, 28.5), okek(8.3, 28). Sonuç neden tam sayı yani int şeklinde değil de .0 şeklinde oluyor? Açıklayınız.
    5. dik_mi(3, 5, 4), dik_mi(3, 4, 6)
  8. 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.

  1. 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.
  2. 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 ise False döndürsün.
  3. 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.
  4. 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 uymuyorsa False döndürsün.
  5. 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.
  6. 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.
  7. 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ı

  1. 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.
  2. Bu iki matrisi @ ile çarpın ve sonucu ekrana yazdırın.
  3. sonuc adında 3x3’lük sıfır matrisi oluşturun.
  4. İlk matrisin birinci, ikinci ve üçüncü satırlarını ekrana yazdırın.
  5. İkinci matrisin tüm sütunlarını ayrı ayrı ekrana yazdırın.
  6. İ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.
  7. İ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.
  8. İ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.
  9. İ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.
  10. 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.
    1. 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.
    2. 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.
    3. 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.
  11. Yukarıdaki yazdığınız fonksiyonu uyarı metinleri ekranda yazacak şekilde bir çok kez çağırın.
  12. 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

  1. normalize_et_dalgaFonk adında bir fonksiyon yazın. Bu fonksiyonun bir adet numpy array tipi değişken alsın.
    1. 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.
    2. 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.
    3. 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ğilse None değerini döndürsün.
  2. Bu fonksiyonu [1, 1] değerleri için çağırın.
  3. xAxis adında ve içeriği 0’dan 1’e kadar 100 elemanlı bir array oluşturun. Yardım: np.linspace(baslangicSayi, bitisSayi, adet)
  4. yAxis adında ve içeriği 0’dan 1’e kadar 100 elemanlı bir array oluşturun.
  5. Çizim yapmak için matplotlib.pyplot modülünü plt ismiyle çağırın ve x ve y eksenlerini çizdirin. Çizginin rengi siyah k olsun.
  6. [1, 1] arayini normalize ettiğimizde elde ettiğimiz arrayi de kırmızı ile r çizdirin.
    1. 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 ilki xAxis’in 0’dan o noktaya kadar olan değerlerini belirleyecek, ikincisi ise yAxis’in 0’dan o noktaya kadar olan değerlerini belirleyecek.
  7. 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?

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

  1. Ekrana “Hello World” yazdırın.
  2. 3 ve 2’yi toplayın. Cevabı ekrana yazdırın.
  3. 2’nin kökünü hesaplayın ve ekrana yazdırın.
  4. degisken1= 5 ve degisken2 = 3 olsun. degisken1 ve degisken2 değişkenlerinin değerlerini yer değiştirin.
  5. degisken1= 5 olsun. Bu değişkenin tek mi veya çift mi olduğunu sınayan bir program yazın.
  6. degisken1= 5 ve degisken2 = 3 olsun. Eğer degisken1, 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.
  7. 0’dan 30’a kadar olan sayıları (0 ve 30 dahil) ekrana yazdırın.
  8. 0’dan 30’a kadar olan sayıların iki katını (0 ve 30 dahil) ekrana yazdırın.
  9. 0’dan 30’a kadar olan sayılardan sadece çift olanlarını (0 ve 30 dahil) ekrana yazdırın.
  10. 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

  1. 0’dan 30’a kadar olan sayıları (0 ve 30 dahil) toplayın.

\[\sum_{i=0}^{30}i\]

  1. 1’dan 10’a kadar olan sayıları (1 ve 10 dahil) çarpın.

\[\prod_{i=1}^{10}i = 10!\]

  1. 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\]

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

  1. fonk1 adında bir fonksiyon yazın. Bu fonksiyon ekrana “Hello World” yazdırsın.
  2. 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.
  3. 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.
  4. 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.
  5. fonk5 adında bir fonksiyon yazın. Bu fonksiyon bir sayı alsın ve o sayının karesini geri döndürsün.
  6. 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.
  7. 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.
  8. fonk1’i çağırın.
  9. fonk2’yi, fonk3’ü, fonk4’ü, fonk5’i ve fonk6’yı 30 için çağırın.
  10. fonk7’yı, 30 ve 35 için çağırın.
  11. fonk8 adında bir fonksiyon yazın. Bu fonksiyon, fonk ve x adında iki parametre alsın. Burada fonk bir fonksiyon olacaktır. fonk8 ana fonksiyonumuzun içerisinde bu fonk fonksiyonunu x çağırın ve sonucu ekrana yazdırın.
  12. fonk8’i, fonk5 ve 30 için çağırın.

Problem 12

Numpy Arrayler

  1. Elemanları 3,4,9,1 olan ve adı arr1 olan bir numpy arrayi oluşturun.
  2. arr1 arrayinin 2. elemanını ekrana yazdırın. (9 olan elemanı)
  3. Elemanları 11,22,33,44,55,66,77,88,99,100 olan ve adı arr2 olan bir numpy arrayi oluşturun.
  4. arr2 arrayinin 3. elemanından 7. elemanına kadar olan elemanları ekrana yazdırın. (elemanlar 0’dan başlar)
  5. arr2 arrayinin elemanlarını for döngüsü kullanarak toplayın.

Problem 13

Matrisler

  1. 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.
  2. Bu matrisin 0. satırını ekrana yazdırın.
  3. Bu matrisin 2. sütununu ekrana yazdırın.
  4. Bu matisin 1. satırının 1. sütunundaki elemanı ekrana yazdırın.
  5. Bu matrisin elemanları for döngüsü kullanarak toplayın.

Problem 14

Algoritmalar

  1. 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.
  2. 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.
  3. 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.
  4. 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,3
  5. algo5 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’ın reverse özelliğini kullanmayın.)
  6. algo6 adında bir fonksiyon yazın. Bu fonksiyon bir arrayin içindeki elemanları küçükten büyüğe sıralasın. (numpy’ın sort özelliğini kullanmayın.)
  7. 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.
  8. 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].
  9. algo9 adında bir fonksiyon yazın. bir matris alsın ve bu matrisin transpozunu geri döndürsün. (numpy’ın T özelliğini kullanmayın.)
  10. 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’ın sum özelliğini kullanmayın.)
  11. algo11 adında bir fonksiyon yazın. iki matris alsın ve bu matrislerin çarpımını geri döndürsün. (numpy’ın dot özelliğini veya @ özelliğini kullanmayın.)

Problem 15

Formülden Algoritma Yazma

  1. algofonk1 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.

\[f(x)=x^{2}+4x-7\]

  1. algofonk2 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.

\[f(x)=\frac{sin(x)}{x}\]

  1. algofonk3 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.

\[f(x)=\prod_{i=1}^{x}i=x!\]

  1. algofonk4 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.

\[f(x)=\sum_{i=0}^{x}i\]

  1. algofonk5 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.

\[f(x)=\sum_{i=0}^{x}\sqrt{i}\]

  1. 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}\]

  1. algofonk7 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın.

\[f(x,a)=\sum_{i=0}^{a}x\]

  1. 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}\]

  1. algofonk9 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada x bir array.

\[f(x)=\sum_{i}x_{i}\]

  1. algofonk10 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada x bir array.

\[f(x)=\prod_{i}x_{i}\]

  1. algofonk11 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada x, n boyutlu bir array.

\[f(x)=\sum_{i}^{n-1}x_{i}+x_{i+1}\]

  1. algofonk12 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada x, n boyutlu bir array.

\[f(x,a,b)=\sum_{i=0}^{n-1}a \times x_{i}+b \times x_{i+1}\]

  1. algofonk13 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada g, tek değişkenli bir fonksiyon.

\[f(g)= g(3)\]

  1. algofonk14 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada g, tek değişkenli bir fonksiyon ve x bir sayı.

\[f(g,x)= g(3)\times x\]

  1. algofonk15 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada g, tek değişkenli bir fonksiyon ve x bir sayı.

\[f(g,x)= g(x)\times g(x)\]

  1. algofonk16 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada g, tek değişkenli bir fonksiyon ve x n boyutlu bir array.

\[f(g,x)= \frac{g(x_{0})+g(x_{1})}{2}\]

  1. algofonk17 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada g, tek değişkenli bir fonksiyon ve x n boyutlu bir array.

\[f(g,x)= \sum_{i=0}^{n}g(x_{i})\]

  1. algofonk18 adında bir fonksiyon yazın. Bu fonksiyon aşağıdaki formülü hesaplasın. Burada g, tek değişkenli bir fonksiyon ve x n boyutlu bir array.

\[f(g,x)= \sum_{i=0}^{n-1}g(x_{i})+g(x_{i-1})\]

Problem 16

Zor Algoritmalar

  1. 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.
  2. 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.
  3. algoZor3 adında bir fonksiyon yazın. Bu fonksiyon x, y ve z kartezyen koordinatlarını alsın ve bu koordinatları r, theta ve phi küresel koordinatlarına çevirip değerleri geri döndürsün.
  4. algoZor4 adında bir fonksiyon yazın. Bu fonksyion vec2d adında iki bileşenli array ve theta adında bir açı alsın. Bu fonksiyon vec2d vektörünü theta açısıyla döndürsün ve bu fonksiyon yeni dönmüş vektörü geri döndürsün.
  5. algoZor5 adında bir fonksiyon yazın. Bu fonksiyon vec3d adında bir üç bileşenli bir array, theta ve phi adında açılar alsın. Bu fonksiyon vec3d vektörünü theta ve phi açılarıyla döndürsün ve yeni dönmüş vektörü geri döndürsün.
  6. algoZor6 adında bir fonksiyon yazın. Bu fonksiyon spinFermi adında iki bileşenli bir array, theta adında bir açı, xBool, yBool ve zBool adlarında 3 adet mantıksal değişken alsın. Bu fonksiyon spinFermi fermion spin vektörünü Pauli-spin matrislerini kullanarak ile theta açısıyla döndürsün. Eğer xBool doğru ise x eksenine göre döndürsün, yBool doğru ise y eksenine göre döndürsün, zBool doğru ise z eksenine göre döndürsün. Bu fonksiyon döndürülen vektörü geri döndürsün.
  7. 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.
  8. algoZor8 adında bir fonksiyon yazın. Bu fonksiyon hamilt adında Hamiltonyen matrisini alsın ve enerji özdeğerlerini ve buna karşılık gelen özdurumları bulup ekrana yazdırsın.
  9. algoZor9 adında bir fonksiyon yazın. Bu fonksiyon yuk yük miktarı, x, y ve z koordinatlarını alsın ve bu yükün \(x,y,z\) noktasındaki elektrostatik potansiyelini geri döndürsün.
  10. algoZor10 adında bir fonksiyon yazın. Bu fonksiyon yuk1, yuk2 yük miktarlarını, x, y ve z 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.
  11. 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 fonksiyonu yukDagılımıFonk, r koordinatını alsın ve çubuktan r kadar uzaklıktaki elektrostik potansiyel değerini geri döndürsün. yukDagılımıFonk fonksiyonu x 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 fonksiyonu f1, f2 fonksiyonlarını ve bir adet xVec 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

  1. 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.
  2. 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

  1. 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.
  2. fonk_diag42 fonksiyonunu 12x12 boyutlu birim matris için çağırın ve geri dönen sonucu ekrana yazdırın.

Problem 25

  1. 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ş ise fonk_fibonacci(n) fonksiyonu \(F_{1}\), \(F_{2}\), \(F_{3}\), \(F_{3}\) elemanlarından oluşan arrayi döndürmeli.
  2. 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 ve 7,8,9 olan bir matris oluşturun.
  • Oluşturduğunuz matrisin tüm elemanlarını for döngüsü kullanarak çarpın.

Referanslar

  1. https://www.programiz.com/python-programming/examples
  2. https://www.freecodecamp.org/news/python-code-examples-sample-script-coding-tutorial-for-beginners/#-for-loops-in-python
  3. Algorithms in Python – Full Course for Beginners: https://www.youtube.com/watch?v=fW_OS3LGB9Q
  4. 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
  5. Bir vektörü Pauli-Spin matrisleri ile döndürme: https://quantummechanics.ucsd.edu/ph130a/130_notes/node279.html
  6. Sonsuz uzunluktaki çubuğun elektrostatik potansiyeli: http://hyperphysics.phy-astr.gsu.edu/hbase/electric/potlin.html