• SAMARQAND – 2024 Tenglamani oraliqni teng ikkiga bo‘lish va iteratsiya usuli yordamida yechish
  • 1. Oraliqni teng ikkiga bo‘lish usuli (Bisection Method)
  • Oraliqni teng ikkiga bo‘lish usuli (Bisection Method) Algoritm
  • Algoritmlarni loyihalsh fanida




    Download 0,53 Mb.
    bet1/2
    Sana19.06.2024
    Hajmi0,53 Mb.
    #264322
      1   2
    Bog'liq
    4.1 amaliy algoritim-loyihalash Iteratsiya usuli


    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI

    KOMPYUTER INJINIRINGI” FAKULTETI
    DASTURIY INJINIRINGI” YUNALISHI
    ALGORITMLARNI LOYIHALSH FANIDA
    DIO 22-03 guruh
    AMALIY ISH


    Tekshiridi: Bobonazarov Akmal
    Bajardi: Ravshanov Kamoliddin

    SAMARQAND – 2024
    Tenglamani oraliqni teng ikkiga bo‘lish va iteratsiya usuli yordamida yechish
    Berilgan tenglama: 2x3−2x2+3x+1=02x^3 - 2x^2 + 3x + 1 = 02x3−2x2+3x+1=0.
    Bu tenglamani yechish uchun biz oraliqni teng ikkiga bo‘lish (Bisection Method) va iteratsiya (Iteration Method) usullaridan foydalanamiz.
    1. Oraliqni teng ikkiga bo‘lish usuli (Bisection Method)
    Bu usulda boshlang‘ich intervalni tanlaymiz va har bir qadamda intervalni ikki qismga bo‘lib, ildizning mavjudligini tekshiramiz. Bu jarayon ildizning aniqligi yetarli bo‘lguncha davom etadi.
    2. Iteratsiya usuli (Iteration Method)
    Iteratsiya usuli oddiy iteratsiya bilan ildizni aniqlashga asoslangan. Bu usulda biror boshlang‘ich qiymatdan boshlab, qadam-qadam yechimga yaqinlashamiz.
    Oraliqni teng ikkiga bo‘lish usuli (Bisection Method)
    Algoritm:

    1. Boshlang‘ich interval [a,b][a, b][a,b] tanlanadi.

    2. Funksiyaning qiymati f(a)f(a)f(a) va f(b)f(b)f(b) ning ishorasini tekshirib, ildiz mavjudligini aniqlaymiz.

    3. Oraliqni yarmiga bo‘lamiz: c=a+b2c = \frac{a + b}{2}c=2a+b​.

    4. Funksiyaning yangi qiymati f(c)f(c)f(c) ni hisoblaymiz.

    5. Agar f(c)=0f(c) = 0f(c)=0 yoki aniqlik yetarli bo‘lsa, ccc qiymatini ildiz sifatida qaytaramiz.

    6. Aks holda, yangi intervalni [a,c][a, c][a,c] yoki [c,b][c, b][c,b] sifatida tanlaymiz va jarayonni takrorlaymiz.

    Dastur kodi:


    # -*- coding: utf-8 -*-
    """
    Created on Fri May 31 18:42:25 2024

    @author: kamoliddin


    """

    def bisection_method(func, a, b, tol=1e-6, max_iter=1000):


    if func(a) * func(b) >= 0:
    raise ValueError("f(a) va f(b) ning ishoralari turlicha bo'lishi kerak")

    c = a
    for _ in range(max_iter):


    c = (a + b) / 2
    if func(c) == 0.0 or (b - a) / 2 < tol:
    return c
    elif func(c) * func(a) < 0:
    b = c
    else:
    a = c
    return c

    # Tenglama funksiyasi


    def equation(x):
    return 2*x**3 - 2*x**2 + 3*x + 1

    # Boshlang'ich interval


    a = -2
    b = 1

    # Ildizni topish


    root = bisection_method(equation, a, b)
    print(f"Tenglama ildizi (Bisection Method): {root}")

    natija:




    1. Funksiyaning iteratsion ko‘rinishini aniqlang: xn+1=g(xn)x_{n+1} = g(x_n)xn+1​=g(xn​).

    2. Boshlang‘ich qiymat x0x_0x0​ ni tanlang.

    3. Yangi qiymatni hisoblang: xn+1=g(xn)x_{n+1} = g(x_n)xn+1​=g(xn​).

    4. Agar ∣xn+1−xn∣

    5. Aks holda, jarayonni takrorlang.

    Dastur kodi:


    # -*- coding: utf-8 -*-
    """
    Created on Fri May 31 18:46:49 2024

    @author: kamoliddin


    """

    def iteration_method(g, x0, tol=1e-6, max_iter=1000):


    x_n = x0
    for _ in range(max_iter):
    x_n1 = g(x_n)
    if abs(x_n1 - x_n) < tol:
    return x_n1
    x_n = x_n1
    return x_n

    # Iteratsion funksiya


    def g(x):
    # Bu yerda tenglamani yechish uchun mos iteratsion formulani tanlash kerak
    return (2*x**2 - 3*x - 1) / 2

    # Boshlang'ich qiymat


    x0 = 0.5

    # Ildizni topish


    root_iter = iteration_method(g, x0)
    print(f"Tenglama ildizi (Iteration Method): {root_iter}")


    Natija:


    Xulosa


    Yuqoridagi dastur yordamida 2x3−2x2+3x+1=02x^3 - 2x^2 + 3x + 1 = 02x3−2x2+3x+1=0 tenglamasining ildizini topish mumkin. Dasturda ikkita usul qo'llanilgan: Oraliqni teng ikkiga bo‘lish va Iteratsiya usullari. Har ikki usul ham tenglama ildizini aniqlashda samarali hisoblanadi.

    Download 0,53 Mb.
      1   2




    Download 0,53 Mb.