Skip to content

Commit db0d550

Browse files
committed
Added Newton-Raphson Method
1 parent 7aee5e9 commit db0d550

File tree

3 files changed

+141
-0
lines changed

3 files changed

+141
-0
lines changed

Newton-Raphson/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Newton-Raphson Metodu için Python Fonksiyonu
2+
3+
## Genel Bakış
4+
5+
Bu Python fonksiyonu, gerçek değerli bir fonksiyonun köklerini bulmak için Newton-Raphson metodunu uygular. Newton-Raphson metodu, gerçek değerli bir fonksiyonun köklerini (veya sıfırlarını) bulmak için kullanılan verimli bir algoritmadır.
6+
7+
## Metot Açıklaması
8+
9+
Newton-Raphson metodu, bir fonksiyonun köklerini yaklaşık olarak bulmak için yinelemeli bir yaklaşım kullanır. İlk tahminle başlayarak, belirli bir formül uygulanarak bu tahmini iteratif olarak iyileştirir.
10+
11+
### Görselleştirme
12+
13+
Newton-Raphson metodunu daha iyi anlamak için, genellikle grafiğin gösterilmesi yardımcı olur. Aşağıda, bir fonksiyona uygulanan Newton-Raphson metodunu gösteren bir grafik bulunmaktadır:
14+
15+
<img src="image.png" alt="Newton-Raphson Grafiği" width="300" height="200" />
16+
17+
### Formül
18+
19+
Newton-Raphson metodunda kullanılan formül:
20+
21+
$$
22+
x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}
23+
$$
24+
25+
Burada:
26+
27+
- \( x_n \) mevcut yaklaşım,
28+
- \( x\_{n+1} \) bir sonraki yaklaşım,
29+
- \( f(x) \) kökünü bulmaya çalıştığımız fonksiyon,
30+
- \( f'(x) \) \( f(x) \) fonksiyonunun türevidir.
31+
32+
## Fonksiyon Kullanımı
33+
34+
### Parametreler
35+
36+
- `f`: Kökünü bulmaya çalıştığımız fonksiyon.
37+
- `df`: `f` fonksiyonunun türevi.
38+
- `x0`: Kök için başlangıç tahmini.
39+
- `tol`: Kök yaklaşımı için tolerans. Varsayılan değer 1e-6.
40+
- `max_iter`: Maksimum iterasyon sayısı. Varsayılan değer 1000.
41+
42+
### Dönüş
43+
44+
- Fonksiyon, `f` fonksiyonunun yaklaşık kökünü döndürür. Belirtilen tolerans veya iterasyon limiti içinde kök bulunamazsa, `None` döndürür.
45+
46+
### Örnek
47+
48+
```python
49+
# Fonksiyonu ve türevini tanımlayın
50+
f = lambda x: 5/x - 2
51+
df = lambda x: -5/x**2
52+
53+
# Başlangıç tahmini
54+
x0 = 3
55+
56+
# Kökü bul
57+
root = newton_raphson_method(f, df, x0)
58+
print("Fonksiyonun yaklaşık kökü:", root)
59+
60+
```

Newton-Raphson/image.png

37.8 KB
Loading

Newton-Raphson/main.ipynb

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 5,
6+
"metadata": {},
7+
"outputs": [
8+
{
9+
"name": "stdout",
10+
"output_type": "stream",
11+
"text": [
12+
"4 iterasyon sonra çözüm bulundu.\n",
13+
"Fonksiyonun kökü: 2.4999999999836158\n"
14+
]
15+
}
16+
],
17+
"source": [
18+
"def newton_raphson_method(f, df, x0, tol=1e-6, max_iter=1000):\n",
19+
" \"\"\"\n",
20+
" Newton-Raphson yöntemi kullanarak f(x) fonksiyonunun kökünü bulun.\n",
21+
"\n",
22+
" Parametreler:\n",
23+
" f (fonksiyon): Kökünü bulmaya çalıştığımız fonksiyon.\n",
24+
" df (fonksiyon): f fonksiyonunun türevi.\n",
25+
" x0 (float): Kök için başlangıç tahmini.\n",
26+
" tol (float): Kök yaklaşımı için tolerans.\n",
27+
" max_iter (int): Maksimum iterasyon sayısı.\n",
28+
"\n",
29+
" Döndürür:\n",
30+
" float: Fonksiyonun yaklaşık kökü.\n",
31+
" \"\"\"\n",
32+
" xn = x0\n",
33+
" for n in range(max_iter):\n",
34+
" fxn = f(xn)\n",
35+
" if abs(fxn) < tol:\n",
36+
" print(f\"{n} iterasyon sonra çözüm bulundu.\")\n",
37+
" return xn\n",
38+
" dfxn = df(xn)\n",
39+
" if dfxn == 0:\n",
40+
" print(\"Sıfır türev. Çözüm bulunamadı.\")\n",
41+
" return None\n",
42+
" xn = xn - fxn / dfxn\n",
43+
" print(\"Maksimum iterasyon aşıldı. Çözüm bulunamadı.\")\n",
44+
" return None\n",
45+
"\n",
46+
"# Örnek kullanım:\n",
47+
"# Fonksiyonu ve türevini tanımlayın\n",
48+
"f = lambda x : 5/x - 2\n",
49+
"df = lambda x : -5/x**2\n",
50+
"\n",
51+
"# Başlangıç tahmini\n",
52+
"x0 = 3\n",
53+
"\n",
54+
"# Kökü bul\n",
55+
"root = newton_raphson_method(f, df, x0)\n",
56+
"print(\"Fonksiyonun kökü:\", root)\n"
57+
]
58+
}
59+
],
60+
"metadata": {
61+
"kernelspec": {
62+
"display_name": "Python 3",
63+
"language": "python",
64+
"name": "python3"
65+
},
66+
"language_info": {
67+
"codemirror_mode": {
68+
"name": "ipython",
69+
"version": 3
70+
},
71+
"file_extension": ".py",
72+
"mimetype": "text/x-python",
73+
"name": "python",
74+
"nbconvert_exporter": "python",
75+
"pygments_lexer": "ipython3",
76+
"version": "3.11.3"
77+
}
78+
},
79+
"nbformat": 4,
80+
"nbformat_minor": 2
81+
}

0 commit comments

Comments
 (0)