Untitled

mail@pastecode.io avatar
unknown
plain_text
10 days ago
1.6 kB
2
Indexable
Never
# 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)


Leave a Comment