<a href="https://colab.research.google.com/github/ofenerci/2013_fall_ASTR599/blob/master/9Sinif_4Odev.ipynb" target="_parent"></a>

Kod yazmak istediğinde ``+ Code`` tuşuna basman, metin girmek istediğinde ``+ Text`` düğmesine basman yeterli. Metin  yazarken Colab'a ait özel markdown kelime işlemcesini kullanacağız. Bu Github'ın Markdown  bazı bakımdan farklı komutlar içerecek. 

Örnek olarak matematiksel formüller kollunacağız. Bir satır içeresinde matamatiksel ifade yazmak istersen, matematiksel ifadeyi iki dolar işareti arasına alman gerekir. Örnek olarak $x^2$ yazmak için yapmamız gereken \\$x^2\$ olarak yazman gerek.  Pisagor teoremi örnek olarak $a^2+b^2=c^2$ şeklinde verilir.  Eğer matematiği iki satır arasında göstermek istiyorsan, 

\\$$

x^2+y^2=c^2

\$$

olarak yazabilirsin. Mesela yukarıdaki denklemi şu şekilde yazabiliriz. 

$$
x^2+y^2=c^2 
$$
Mesela matematiğin  en ünlü formülünü yazalım:

$$
e^{i\pi}+1=0 
$$

Bu formülün niçin matematiğin en ünlü formülü olduğunu öğrenmek için [buraya](https://www.youtube.com/watch?v=IUTGFQpKaPU) bakabilirsin. Tabiki de daha güzel denklemleri de yazabilirsin. Bunun gibi:

\begin{align} 
(a+b)^3 &= (a+b)^2(a+b)\\
&=(a^2+2ab+b^2)(a+b)\\
&=(a^3+2a^2b+ab^2) + (a^2b+2ab^2+b^3)\\
&=a^3+3a^2b+3ab^2+b^3
\end{align}

Matematik ve fizik formüllerini kullanırken LaTeX matematik yazım kurallarını kullanacağız. Daha fazla bilgi için [buraya](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference) bakabilirsin.

**Ödev 1** Yukarıda verilen bağlantıyı kullanırak LaTeX ile bir fizik veya matematik formülünü aşağıya yaz. 

*Not:* Colab LaTeX'in bütün yazım kurallarını kapsamıyor. Onun için LaTeX'in bütün özelliklerini Colab'da kullanımıyabilirsin. Yukarıdaki bağlantıdaki bazı örnekleri yazamıyabilirsin. 

1'den $n$'e kadar sayıların toplamını kısaca $\sum_{}{}$ işareti ile göstereceğim. Örnek olarak 1'den n'e kadar sayıların toplamı

$$
\sum_{i=0}^n i = \frac{n(n+1)}{2}
$$

formülü ile verilir. 

Örnek olarak 1'den 100'ye kadar sayıların toplamını kısaca 

$$
\sum_{i=0}^{100} i = \frac{100(100+1)}{2}
$$

verilir. Yukarıdaki toplamın cevabı 5050'dir. Yukarıdaki formülü ilkokulda Gauss'un bulduğu  söyleniyor. Bunu aşağıdaki kodu kullanarak ispatlıyalım.




```
sum = 0
for i in range(1,101):
  sum = sum +i
print (sum)       
```

Şimdi de yukarıda yazdığımız kodu bir fonksiyonun içine koyalım.


```
def Gauss(n):
  sum = 0
  for i in range(1,101):
    sum = sum +i
  return sum



```


```
Gauss(100)
```




    5050



Şimdi de *Collatz Sanısı'na* (Collatz Conjecture) bakalım. Biz buna sanı diyeceğiz. Matematiksel olarak ispatlanmadı ama şimdiye kadar yanlışlanamadı da. Eğer doğru olduğunu ispatlarsan Matematikteki en büyük ödülü (Field Medal) alacağın kesindir. (Matematikte Nobel ödülü verilmiyor.)

**Collatz Sanısı:** Verilen bir $n$ ile diziye başlayın. Eğer $n$ çift ise ikiye bölün, eğer tek sayı ise bu sayıyı 3 ile çarpıp 1 ekleyin. Bu dizi 1'e ulaştığında dizi sonar erer.  Hangi $n$ ile başlarsak başlayalım, her zaman 1'e ulaşır. Bunu matematiksel ifade olarak yazarsak:

$$
f(n) =
\begin{cases}
n/2,  & \text{eğer $n$ çift ise } \\
3n+1, & \text{eğer $n$ is tek ise}
\end{cases}
$$

Yukarıdaki ifadeyi kodun içine koyalım:







```
def Collatz(n):
  while n>1:
    if n%2 == 0: # % operatörü bölümden kalan sayıyı verir. Kendin dene istersen
       n = n/2
    else:
      n= 3*n +1
    print(n, end=" ") # end' burada çıktıyı bir sıraya koymak için kullandım. 

```


```
Collatz(19)
```

    58 29.0 88.0 44.0 22.0 11.0 34.0 17.0 52.0 26.0 13.0 40.0 20.0 10.0 5.0 16.0 8.0 4.0 2.0 1.0 

Yukarıdaki fonksiyonu değiştirip, ulaştığı en yüksek sayıyı da bulan bir fonksiyon yazalım. Örnek olarak şöyle bir çıktı versin:

Collatz sanısı 19 için doğrulandı ve bu sınama sonunda ulaşılan en yüksek sayı 88 oldu. 


```

```


```
def Collatz_max(n):
  n_init = n
  max_number = n
  while n>1:
    if n%2 == 0: # % operatörü bölümden kalan sayıyı verir. Kendin dene istersen
       n = n/2
    else:
      n= 3*n +1
    if (n > max_number):
      max_number = n
  print("Collatz sanısı " + str(n_init) + " için doğrulandı ve bu sınama sonunda ulaşılan en yüksek sayı " + str(max_number)+" oldu")


```


```
Collatz_max(19)
```

    Collatz sanısı 19 için doğrulandı ve bu sınama sonunda ulaşılan en yüksek sayı 88.0 oldu




**Ödev 2 (Çözümlü):** Matematikçi Leibniz aşağıdaki formülü vermiştir.

$$
\frac{\pi}{4}= \sum_{k=0}^{\infty}\frac{(-1)^k}{2k+1}
$$
Yukarıdaki formülün açılımı

$$
\frac{\pi}{4}= 1 - \frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\ldots
$$
şeklinde yazabiliriz. ```Leibniz_pi(n)``` isimli bir fonksiyon yazınız ve fonksiyon ```n```'e kadar Leibniz formülünü kullansın. Sonuçta $\pi$'nin değerini ekrana bassın. 


```
def Leibniz_pi(n):
  sum=0
  for i in range(0,n+1):
    sum= sum+(-1)**i/(2*i+1)
  result = sum*4
  print("Pi="+ str(result))

```


```
Leibniz_pi(1000)
```

    Pi=3.1425916543395442


**Ödev 3:**  3 ve 5'in katları

Eğer 10'dan düşük (10 dahil değil) sayılardan 3 veya 5'in katları olan sayıları dizersek, 3,5,6,9 sayılarını elde ederiz. Bu sayıların toplamı 23 dir.

1000'den düşük olan (1000 dahil değil) 3 veya 5'in katları olan sayıların toplamını yazan bir fonksiyon yazınız.


```
def multiples(n):
  # Burayı doldur. 

```

**Ödev 4:** Çift Fibonacci Sayıları

Fibonaci dizisinde her yeni terim kendinden önceki iki terimin toplamından elde edilir. 1 ve 2 ile başlayarak, ilk 10 terimin Fibonacci  dizisi

$$
1,2,3,5,8,13,21,34,55,89,\ldots
$$
olur. 

Yukarıdaki diziyi matematiksel olarak yazarsak

$$
F_n=
\begin{cases}
  0, & n=0\\
  1, & n=1 \\
  F_{n-1}+F_{n-2}, & n> 1
\end{cases}
$$


Fibonacci dizisinde değeri  4,000,000 (4 milyon dahil)'u geçmeyen sayıya kadar çift değerli Fibonacci terimlerinin toplamını bulun. 

Yardım: Aşağıdaki ```Fibonacci_term(n)``` n'ninci Fibonacci terimini vermektedir. Bu fonksiyonu başka bir fonksiyon içinde kullanarak ```Fibonacci_evenSum``` çift sayıların toplamını yapın. 


```
def Fibonacci_term(n): 
  if (n == 1):
    return 1
  if (n == 2):
    return 2
  else:
    return Fibonacci_term(n-1) + Fibonacci_term(n-2)
  





```


```
Fibonacci_term(3)
```




    3




```
def Fibonacci_evenSum(nlast):
  # burayı doldur. nlast burada 4,000,000 olarak deneyeceksin. 
```


```
Fibonacci_evenSum(10)
```




    44




```

```

216e380a41a8ee4a3224ca0e8829cfb950595a56
ipynb
Jupyter Notebook
9Sinif_4Odev.ipynb
ofenerci/2013_fall_ASTR599
b9ed92c24dce7676549f0f575ec1f1dc7c7a474a
Apache-2.0
9Sinif_4Odev.ipynb
ofenerci/2013_fall_ASTR599
b9ed92c24dce7676549f0f575ec1f1dc7c7a474a
Apache-2.0
9Sinif_4Odev.ipynb
ofenerci/2013_fall_ASTR599
b9ed92c24dce7676549f0f575ec1f1dc7c7a474a
Apache-2.0
2020-04-27T11:23:57.000Z
2020-04-27T11:23:57.000Z
Qwen/Qwen-72B
1. YES
2. YES