linalg.inv(A)
Енді меншікті сандар мен векторларды қалай табуға болатынын қарастырайық. Ол үшін SciPy кітапханасында қазірдің өзінде жұпты бірден қайтаратын әдіс бар, онда бірінші мән меншікті сандар, ал екіншісі – меншікті векторлар болады.
eigenvalues, eigenvectors = linalg.eig(A)
Нәтижесінде, меншікті сандар жататын массив қайтарылады, сондай-ақ меншікті векторлар жататын матрица қайтарылады.
Енді оңтайландыруға көшейік және келесі функцияны қарастырайық.
def f(x):
return x**2 + 6*np.sin(x)
Егер біз осы функцияның графигін қарастыратын болсақ, онда оның локальды және глобалды минимумы бар екенін көреміз.
x = np.arange(-10, 10, 0.1)
plt.plot(x, f(x))
plt.show()
Глобалдық минимум -1 аймағында орналасқан. Осыны есептеп көрейік. Минималды функцияны есептеу үшін SciPy-де сәйкес minimize әдісі бар. Оны шақырайық және аргумент ретінде біздің функциямызды, сондай-ақ бастапқы жуықтауды, яғни минимумды іздей бастайтын аймақты берейік. Оны 0-ге тең етіп орнатайық.
x_initial=[0]
optimize.minimize(f, x_initial)
Функцияның нәтижесі көптеген параметрлері бар қандай да бір объект болады. Бұл параметрлердің көпшілігі таңдалған оңтайландыру әдісіне жатады, ал соңғысы функцияның минимумына сәйкес келеді. Біз әдіс -1 мәнін минимум ретінде қайтарғанын көреміз, бұл глобалдық минимумға сәйкес келеді.
Айта кету керек, minimize әдісі біз көрсеткеннен гөрі үлкен санды аргументтерге ие. Оңтайландыру әдісін бізде қандай функция бар екеніне, сондай-ақ минимумды тапқымыз келетін жуықтау дәлдігіне байланысты көрсетуге болады.
Графикке тағы бір рет қарап, minimize әдісі қандай жағдайларда қателесуі мүмкін екенін көрейік. Бізде локальды минимум болғандықтан, кездейсоқ глобальды минимумның орнына әдіс локальды минимумды қайтара алады және оған тек бір параметрді, мысалы, бастапқы жуықтауды өзгерту арқылы оңай қол жеткізуге болады. 0-ге тең емес мәнді берейік, мысалы, 3-ке тең мәнді алайық. Бұл жағдайда минимумға сәйкес келетін нәтиже 3 мәніне жақын екенін көреміз, бұл функцияның локальды минимумдарының біріне ұқсас.
Шындығында, SciPy кітапханасы әлдеқайда көп болуы мүмкін. Оның барлық мүмкіндіктерімен құжаттамадан танысуға болады. Онда көптеген жақсы мысалдар мен барлық жүзеге асырылған әдістердің егжей-тегжейлі сипаттамасын табуға болады.
Достарыңызбен бөлісу: |