Untitled
unknown
plain_text
a year ago
1.6 kB
10
Indexable
# Ryan Suryaputra Adiwidodo (18022030)
# Marcelinus Aryo Wicaksono (18022031)
# Tugas 1 Komputasi dan Analisis Numerik
import math
# Fungsi untuk menjalankan iterasi Fixed Point
def fixed_point_iteration(func, x0, toleransi, iterasi_maksimum):
iterasi_ke = 0
while iterasi_ke < iterasi_maksimum:
x1 = func(x0)
print(f"Iterasi-{iterasi_ke + 1}: x = {x1}")
# Memeriksa apakah perbedaan antara nilai saat ini dan sebelumnya lebih kecil dari toleransi
if abs(x1 - x0) < toleransi:
print(f"Solusi ditemukan: {x1} setelah {iterasi_ke + 1} iterasi.")
return x1
# Perbarui nilai x0 untuk iterasi selanjutnya
x0 = x1
iterasi_ke += 1
# Jika tidak konvergen dalam batas iterasi
print("Tidak ada konvergensi dalam batas iterasi yang diberikan.")
return None
# Fungsi untuk mengonversi string menjadi fungsi matematika
def buat_fungsi(func_str):
return lambda x: eval(func_str)
# Contoh eksekusi program
if __name__ == "__main__":
# Menerima masukan fungsi dari pengguna dalam bentuk string
func_str = input("Masukkan fungsi g(x) dalam format Python: ")
# Mengonversi string menjadi fungsi
g = buat_fungsi(func_str)
# Mengambil input nilai awal, toleransi, dan jumlah iterasi dari pengguna
x0 = float(input("Masukkan tebakan awal x0: "))
toleransi = float(input("Masukkan nilai toleransi: "))
iterasi_maksimum = int(input("Masukkan jumlah maksimum iterasi: "))
# Memulai iterasi Fixed Point
fixed_point_iteration(g, x0, toleransi, iterasi_maksimum)
Editor is loading...
Leave a Comment