Përmbajtje:

Si të bëni një program numerik të integrimit në Python: 10 hapa
Si të bëni një program numerik të integrimit në Python: 10 hapa

Video: Si të bëni një program numerik të integrimit në Python: 10 hapa

Video: Si të bëni një program numerik të integrimit në Python: 10 hapa
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Korrik
Anonim
Si të bëni një program numerik të integrimit në Python
Si të bëni një program numerik të integrimit në Python

Ky është një mësim se si të krijoni dhe drejtoni një program që do të vlerësojë integralet e caktuara duke përdorur një algoritëm të integrimit numerik. Unë i kam ndarë hapat në 3 seksione: të kuptuarit e algoritmit që do të përdoret për të bërë programin, kodimin e programit duke përdorur gjuhën e programimit Python dhe drejtimin e programit. Ky tutorial ka për qëllim dikë që mund të ketë nevojë të bëjë shpejt një kalkulator për të vlerësuar integralët e caktuar, ose ndoshta ka nevojë për algoritmin për t'u përdorur në një program në shkallë më të madhe. Njohuritë bazë të llogaritjes priten, por informacioni përkatës matematikor rishikohet. Njohja e programimit nuk pritet, por është e dobishme pasi unë vetëm shkurtimisht përshkruaj se si funksionon programimi në të vërtetë.

Çfarë do t'ju duhet:

Një kompjuter personal me qasje në internet

Hapi 1: Kuptimi i Algoritmit Pjesa 1: Integrali i Përcaktuar dhe Përdorimi i Tij

Kuptimi i Algoritmit Pjesa 1: Integrali i Përcaktuar dhe Përdorimi i Tij
Kuptimi i Algoritmit Pjesa 1: Integrali i Përcaktuar dhe Përdorimi i Tij

Unë do të supozoj se ju e dini pak se çfarë është një integral në kontekstin e llogaritjes bazë. Integralët janë të rëndësishëm sepse ato ju lejojnë të përmbledhni një grup vlerash të shumëzuara me një gjatësi pafundësisht të vogël; kjo është e dobishme në shumë fusha të financave, teorisë së numrave, fizikës, kimisë, si dhe shumë fusha të tjera. Ky program, megjithatë, do t'ju lejojë të llogaritni sipërfaqen nën një kurbë për një interval të kufizuar, ose me fjalë të tjera, nuk vlerëson anti-derivatet-një algoritëm shumë më i fuqishëm është i nevojshëm për këtë. Ky algoritëm është i dobishëm nëse keni nevojë të vlerësoni një integral të caktuar në një program më të madh të specifikuar për diçka tjetër, ose nëse doni të kontrolloni përgjigjen tuaj për ndonjë integral të caktuar të bërë me dorë.

Një integral themelor i përcaktuar përfaqëson zonën nën një kurbë të përcaktuar nga një funksion p.sh. f (x) Për një integral të caktuar, ne kërkojmë zonën midis dy pikave (të etiketuara përkatësisht a dhe b). Në foto, rajoni bruz është zona të cilës i referohem, dhe ekuacioni për përcaktimin e kësaj tregohet gjithashtu në atë rajon. Funksioni i treguar në figurë është arbitrar.

Hapi 2: Kuptimi i Algoritmit Pjesa 2: Përafrimi Numerik

Kuptimi i Algoritmit Pjesa 2: Përafrimi Numerik
Kuptimi i Algoritmit Pjesa 2: Përafrimi Numerik

Një kompjuter ka nevojë për një grup të gjerë udhëzimesh për llogaritjen e asaj zone nën një funksion arbitrar që do të funksionojë për çdo funksion, kështu që metodat analitike me të cilat mund të njiheni nuk kanë përdorim pasi ato janë shumë të veçanta. Një metodë për llogaritjen e integralëve afërsisht, që një kompjuter mund të trajtojë, bëhet duke mbushur zonën e interesit me një sasi drejtkëndëshe të përcaktuar nga përdoruesi me gjerësi të barabartë dhe lartësi të ndryshueshme, duke përmbledhur të gjitha zonat e drejtkëndëshit. Vetitë e ngurta të drejtkëndëshave do të lënë një pjesë të sipërfaqes totale të paprekur, prandaj kjo konsiderohet një përafrim; megjithatë, sa më shumë drejtkëndësha që mund të mblidheni midis kufijve (a dhe b), aq më i saktë do të jetë përafrimi pasi rajonet e paprekura bëhen më të rralla. Meqenëse një kompjuter do të kryejë detyrën, mund të vendosni që numri i drejtkëndëshave në rajonin e dëshiruar të jetë një numër shumë i madh, duke e bërë përafrimin jashtëzakonisht të saktë. Në figurën mbështetëse, imagjinoni që çdo drejtkëndësh në zonën e caktuar është me gjerësi të barabartë. Unë bëra çmos për t'i bërë ato me gjerësi të barabartë në Microsoft Paint, por nuk bëra punën më të mirë.

Hapi 3: Kuptimi i Algoritmit Pjesa 3: Rregulli i Pikës së Mesme

Kuptimi i Algoritmit Pjesa 3: Rregulli i Pikës së Mesme
Kuptimi i Algoritmit Pjesa 3: Rregulli i Pikës së Mesme

Ky rregull përcakton se si drejtkëndëshat bëhen dhe përdoren në përafrimin. Çdo drejtkëndësh nga drejtkëndëshat "N" duhet të ketë një gjerësi të barabartë, Δx, por çdo drejtkëndësh i nëntë nuk mund të jetë i njëjtë saktësisht: faktori i ndryshëm është lartësia e cila ndryshon si funksioni i vlerësuar në një pikë të caktuar. Rregulli i mesit merr emrin nga fakti që ju po vlerësoni lartësinë e çdo drejtkëndëshi si f (x_n), ku "x_n" është pika qendrore përkatëse e secilit drejtkëndësh, siç vendoset në të majtë ose në të djathtë të drejtkëndëshit. Përdorimi i pikës së mesit është si të zbatosh një mesatare e cila do ta bëjë përafrimin më të saktë sesa nëse do të përdornit djathtas ose majtas. Fotografia mbështetëse për këtë hap përmbledh sesi rregulli i pikës së mesme përcaktohet matematikisht.

Hapi 4: Krijimi i Programit Pjesa 1: Shkarkimi i një përpiluesi/redaktuesi Python

Tani që e keni kuptuar algoritmin që duhet të zbatohet, është çështje e marrjes së një kompjuteri për të kryer llogaritjen për ju. Hapi i parë për t’i thënë një kompjuteri se çfarë të bëjë është marrja e mjeteve për ta bërë këtë. Ky algoritëm mund të kodohet në çdo gjuhë; për thjeshtësi, ky program do të kodohet në gjuhën Python. Për të komanduar kompjuterin tuaj për të kryer operacione me Python, do t'ju duhet një redaktues që merr udhëzime të shkruara në atë gjuhë, të cilat më pas do të përpilohen në gjuhën e makinerisë që kompjuteri juaj mund ta kuptojë, në mënyrë që të kryejë detyrat që i thoni të bëjë. Në këtë kohë dhe epokë, një redaktues dhe përpilues zakonisht integrohen, megjithatë kjo nuk është gjithmonë rasti. Ju mund të përdorni çdo redaktues/përpilues me të cilin jeni të kënaqur, por unë do t'ju tregoj se si të merrni të preferuarin tim personal për Python: Canopy. Nëse tashmë keni një redaktues/përpilues, mund t'i kaloni këto hapa.

  1. Shkoni te
  2. Klikoni Shkarkoni kulm
  3. Klikoni butonin e shkarkimit që korrespondon me sistemin tuaj operativ

    Shkarkimi do të fillojë automatikisht

  4. Ndiqni udhëzimet e instilimit pasi të filloni skedarin e ekzekutimit
  5. Drejtoni Programin
  6. Klikoni "Editor" nga menyja kryesore e programit
  7. Klikoni "krijoni një skedar të ri" në qendër të ekranit

Nga kjo pikë ju duhet të shihni një dritare të bardhë bosh me një kursor që i ngjan një dokumenti bazë të përpunimit të tekstit. Tani jeni gati për të filluar kodimin e algoritmit të integrimit numerik për zgjidhjen e integraleve të caktuara. Hapat në vazhdim do të kenë një pjesë të kodit që do të kopjoni dhe një shpjegim të asaj që bën ai fragment për programin në tërësi.

Hapi 5: Krijimi i Programit Pjesa 2: Importimi i Funksioneve dhe Përcaktimi i Ndryshoreve

Krijimi i Programit Pjesa 2: Importimi i Funksioneve & Përcaktimi i Ndryshoreve
Krijimi i Programit Pjesa 2: Importimi i Funksioneve & Përcaktimi i Ndryshoreve

Kopjoni kodin në figurë.

Për çdo program që mund ta gjeni duke koduar, do të ketë variabla. Një ndryshore është një emër që i jepet një vlere që do të operohet dhe që mund të ndryshojë. Në shumicën e gjuhëve të programimit (nëse jo të gjitha) ju duhet të inicializoni një ndryshore para se programi të bëjë ndryshime në të. Në rastin e këtij programi unë i kam emëruar ndryshoret "N", "a" dhe "b". Këto vlera përfaqësojnë numrin e përsëritjeve (numri AKA i drejtkëndëshave), kufiri i poshtëm dhe kufiri i sipërm respektivisht. Ju mund t'i emërtoni ato çfarë të doni, por që të përputhen me formulat e dhëna në "Kuptimi i Algoritmit Pjesa 3: Rregulli i Pikës së Mesme", është mirë t'i mbani ato të njëjta. Vini re se ato nuk janë vendosur vetëm në një vlerë të caktuar. Kjo ndodh sepse ato bëhen hyrje që, kur programi ekzekutohet, përdoruesi i programit mund të përcaktojë se cila do të jetë vlera. Teksti në thonjëza, pas komandës hyrëse, shfaqet kur drejtoni programin duke ju treguar se çfarë lloj vlere duhet të shkruani. Ju gjithashtu do të vini re se "int" dhe "float" përdoren para përcaktimeve hyrëse. Këto terma i tregojnë kompjuterit se çfarë lloj ndryshoreje do të jetë kjo vlerë. Një "int" është një numër i plotë, dhe një "noton" është një vlerë e pikës lundruese (domethënë një dhjetore). Duhet të jetë e qartë pse këto janë caktuar si të tilla.

Çdo tekst i pranishëm pas një "#" është një koment që lejon programuesin të ndjekë kodin në një mënyrë humaniste; Unë kam bërë komente të caktuara në kodin tim të cilat do t'i kopjoni, por mos ngurroni të shtoni ndonjë koment që ju ndihmon në mënyrë specifike. Programi nuk do të lexojë asgjë me një "#" para tij si një komandë.

Pjesa e kodit që lexon "nga importi i matematikës *" i thotë programit të importojë një sërë funksionesh matematikore që mund të përdoren pa qenë nevoja t'i programoni ato në veten tuaj. "*" Thjesht do të thotë "të gjitha". Lexoni këtë pjesë të kodit si: nga biblioteka e matematikës importoni të gjitha funksionet. Kjo ju lejon të përdorni funksione matematikore si sinus, kosinus, log, exp, etj. Këto funksione mund të integrohen matematikisht brenda kodit.

Hapi 6: Krijimi i Programit Pjesa 3: Krijimi i një funksioni për integrim

Krijimi i Programit Pjesa 3: Krijimi i një Funksioni për Integrim
Krijimi i Programit Pjesa 3: Krijimi i një Funksioni për Integrim

Kopjoni kodin në figurë poshtë kodit të mëparshëm.

KUJDES: Ky seksion është i dendur dhe unë dua të sqaroj disa gjëra që mund të jenë konfuze. Kur flasim për programim, fjala "funksion" shfaqet shumë. Ky term gjithashtu shfaqet shumë kur jeni duke folur për matematikë. Pra, nga kjo pikë e tutje, kur flas për një funksion në kuptimin e programimit, do të shkruaj "funksioni Python" dhe kur flas për funksionin matematikor, do të them "funksion matematikor". Në një moment ne do të përdorim një funksion Python si një paraqitje për funksionin matematikor në fjalë.

Ky fragment tjetër i kodit është thelbi i programit. Këtu, përcaktohet një funksion Python që kryen algoritmin e integrimit numerik duke përdorur rregullin e pikës së mesme. "def Integro (N, a, b)" lexohet si: përcaktoni një funksion të quajtur "Integro" që pranon variablat "N", "a" dhe "b" dhe kthen zonën nën kurbë (funksioni matematikor) i cili gjithashtu përcaktohet brenda funksionit "Integro" Python. Ju mund ta quani këtë funksion Python çdo gjë kur bëni kodimin, por ka kuptim ta quani atë të integruar pasi është një funksion që vërtet integron një funksion matematikor.

Në këtë pikë vlen të komentohet sesi Python ndan blloqet e kodit. Një bllok kodi është një seksion i tërë që kryen një detyrë të caktuar. Gjuhë të ndryshme programimi do të kenë caktuar mënyra për të dalluar këto "blloqe". Për Python, një bllok dallohet nga dhëmbëzimet: secili seksion i kryerjes së detyrave ka indentin e tij, dhe mund të ketë blloqe të prera brenda blloqeve të tjera të prera. Kjo përfaqëson detyrat brenda detyrave, dhe në thelb tregon rendin në të cilin kodi duhet të ekzekutohet. Në rastin e funksionit të përcaktuar Python "Integro", gjithçka brenda atij funksioni është e shënuar nga një bllok, duke dalluar kështu detyrat që do të ekzekutohen brenda atij funksioni. Ka pjesë të prera brenda këtij funksioni Python që kryejnë detyrat e tyre gjithashtu. Ajo shkon si më poshtë: një komandë (detyrë) përcaktohet, një zorrë e trashë ndjek komandën dhe ajo që bën komanda është e vendosur nën të.

Menjëherë pas përcaktimit të funksionit "integro" Python, do të përcaktosh një funksion tjetër Python të quajtur f (x). Kjo paraqet funksionin matematikor që do të integrohet. Për secilin funksion të ndryshëm matematikor që dëshironi të integroni, do të duhet të kaloni në këtë linjë programi për ta ndryshuar atë (ndryshe nga variablat që përcaktohen kur programi drejtohet). Çdo funksion Python do të ketë një vlerë kthyese, kjo është ajo që funksioni kthen kur i hedhni një vlerë. Në këtë rast vlera e hedhur është "x", dhe ky term "x" do të marrë vlerën e asaj që e hidhni ndonjëherë-është një vlerë e përkohshme.

Tjetra, një lak for-i vepron si përmbledhje e përcaktuar në formulat në seksionin "Kuptimi i Algoritmit" të këtij tutoriali. Ky përmbledhje kërkon disa ndryshore të tjera, njëra prej të cilave do të veprojë si vlerë kthyese për të gjithë funksionin "Integro" Python. Para lakut for, unë i kam caktuar këto ndryshore si "vlerë" dhe "vlerë2". detyra e for-loop është të përsëritet mbi një sërë vlerash për një ndryshore të caktuar, të cilat mund të përcaktohen me lehtësi brenda komandës for-loop; në këtë rast, ajo ndryshore është "n". Gama për të cilën ndodh përsëritja është 1 në N+1. Ju duhet të vini re se përmbledhja e përcaktuar në formulat e lartpërmendura shkon vetëm nga 1 në N. Ne e përcaktojmë atë në këtë mënyrë sepse gjuha Python numëron secilën vlerë të përsëritur duke filluar nga zero, kështu që ne në thelb duhet të zhvendosim gamën e vlerave për t'iu përshtatur dëshirës sonë varg. Lak-i për më pas lejon përmbledhjen e të gjitha lartësive të drejtkëndëshit së bashku dhe e ruan atë vlerë në ndryshoren të cilën e quajta "vlerë". Kjo shihet në pjesën e kodit që shfaqet si: vlerë += f (a +((n- (1/2))*((b-a)/N))).

Prej aty, pjesa tjetër e kodit përdor variablën e quajtur "vlera2" e cila më pas caktohet të jetë shuma e të gjitha lartësive të çdo drejtkëndëshi shumëzuar me gjerësinë e standardizuar të secilit drejtkëndësh-kjo është përgjigjja jonë përfundimtare që duam shfaqet nga programi ynë, dhe kështu është vlera kthyese e funksionit Python "Integro".

Hapi 7: Krijimi i Programit Pjesa 4: Shfaqja e Përgjigjes

Krijimi i Programit Pjesa 4: Shfaqja e Përgjigjes
Krijimi i Programit Pjesa 4: Shfaqja e Përgjigjes

Kopjoni kodin në figurë poshtë kodit të mëparshëm.

Tani që përgjigja mund të merret përmes funksionit "Integro" Python, ne duam të jemi në gjendje ta shfaqim atë. Kjo është vetëm një çështje e vendosjes së vlerave që janë dhënë nga përdoruesi ("N", "a," dhe "b") në funksionin "Integro" Python dhe shtypjen e tij në ekran. Ky komandë tregohet në rreshtin 21 dhe është me të vërtetë gjithçka që duhet të bëni për të përfunduar këtë hap. Kodi në rreshtat 19 dhe 20 janë vetëm atje për të "bukuruar" daljen e të gjithë programit. "print (" ………………………. ")" ndan pjesën hyrëse të programit nga pjesa dalëse dhe "print (" Këtu është përgjigjja juaj: ")" është vetëm një përcaktim që përgjigja do të të printohet pas asaj rreshti teksti.

Hapi 8: Drejtimi i Programit Pjesa 1: Drejtimi i Programit ashtu siç është

Drejtimi i Programit Pjesa 1: Drejtimi i Programit ashtu siç është
Drejtimi i Programit Pjesa 1: Drejtimi i Programit ashtu siç është

Nëse nuk po përdorni Canopy, atëherë ndoshta nuk keni nevojë as të ndiqni këtë hap fare dhe ekzekutimi i programit mund të kërkojë procedura të ndryshme. Në Canopy, para se të jeni në gjendje të ekzekutoni programin, do t'ju duhet ta ruani atë. Lloji i skedarit për një program Python është një skedar.py-ai ruhet automatikisht si ky. Zgjidhni vendin ku dëshironi të ruhet skedari, atëherë do të jeni në gjendje të ekzekutoni programin.

Drejtimi i Programit:

  1. Shtypni butonin e gjelbër që duket si një "buton i luajtjes" i vendosur në shiritin e veglave pak më lart ku shfaqet emri i skedarit tuaj (referojuni figurës).
  2. Programi më pas do të ekzekutohet në ekranin e poshtëm të redaktorit i cili njihet si mjedisi i analizës së të dhënave Canopy. Duke supozuar se keni kopjuar kërkesat siç i kam shkruar, duhet të shihni në fund të mjedisit të analizës së të dhënave Canopy kërkesën: "Futni sa herë dëshironi të përmblidhni (më shumë herë = më të sakta):." (referojuni figurës)
  3. Vendosni një vlerë sa herë dëshironi të bëni përsëritjen dmth 10000 (sa drejtkëndësha doni të fusni në zonën tuaj), pastaj shtypni enter.
  4. Më shumë kërkesa do të shfaqen me deklarata që duhet të jenë kërkesat e njohura të hyrjes që keni koduar në program në hapin 5. Plotësoni ato në mënyrë të përshtatshme ashtu si në numrin 3 më lart.
  5. Integrali duhet të vlerësohet dhe një rezultat duhet të shfaqet.

Nëse e keni koduar programin siç tregohet në fotot e mësipërme, ju sapo keni integruar f (x) = x^2 në disa kufij. Integrali i x^2 është i lehtë për tu vlerësuar me dorë, prandaj duhet të kontrolloni dhe siguroheni që programi i ka dhënë një përgjigje shumë të afërt vlerës së saktë analitike të përcaktuar me dorë. Kur drejtoj programin me vlerat N = 10000, a = 0, dhe b = 10, marr përgjigjen 333.33333249999964. Përgjigja e saktë analitike, është 333.333. Kjo është tepër e saktë dhe e shpejtë. Ju keni shtypur në thelb 10, 000 drejtkëndëshe midis 0 dhe 10 në boshtin x dhe i keni përdorur ato për të përafruar zonën nën kurbën x^2!

Hapi 9: Drejtimi i Programit Pjesa 2: Integrimi i Funksioneve të tjera Matematikore

Drejtimi i Programit Pjesa 2: Integrimi i Funksioneve të tjera Matematikore
Drejtimi i Programit Pjesa 2: Integrimi i Funksioneve të tjera Matematikore

Në hapin e mëparshëm, nëse e keni ndjekur me besnikëri, keni integruar f (x) = x^2. Ky nuk është funksioni i vetëm matematikor që ky program mund të integrojë. Kujtoni nga hapi 5 që keni importuar grupin e bibliotekës matematikore të funksioneve Python në program. Kjo ju lejon të përdorni funksione më të ndërlikuara matematikore që mund të integrohen. Le t'i japim një të shtënë. Sigurisht, ju mund të përdorni çdo funksion që dëshironi, por unë do të demonstroj më tej saktësinë e këtij kodi duke integruar një funksion të veçantë matematikor që jep një vlerë të mirënjohur kur integrohet në një gamë të caktuar. Ky funksion është f (x) = Sin [x]. Ky funksion matematikor shfaqet në figurën e parë shoqëruese, të vizatuar nga 0 në 2π, dhe zona e interesit është e mbuluar me bruz. Ekziston një sasi e barabartë e zonës pozitive pasi ka zonë negative në këtë interval, kështu që nëse shtoni sipërfaqen e përgjithshme, duhet të merrni zero. Le të shohim nëse kjo ndodh në të vërtetë:

Vendosja e funksionit matematikor f (x) = Sin [x] në program:

  1. Para se të ekzekutoni përsëri programin, nën komentin "#type funksionin tuaj pas kthimit", shkruani: sin (x) ku aktualisht gjendet x ** 2. (referojuni figurës).
  2. Drejtoni programin duke shtypur përsëri butonin e gjelbër të lojës.
  3. Shkruani 10000 për vlerën N (sa herë dëshironi të shumoni).
  4. vendosni "0" për kufirin e poshtëm.
  5. Vendosni 6.2832 për kufirin e sipërm (afërsisht 2π).
  6. Shikoni se çfarë vlere merrni.

Kur e bëra këtë, përfundova duke marrë një vlerë prej 1.079e-10: kjo është e barabartë me.0000000001079, e cila është vërtet afër zeros, kështu që duket se është e saktë dhe tregon se algoritmi trajton në mënyrë adekuate zonën negative.

Hapi 10: Drejtimi i Programit Pjesa 3: Zgjerimi i Programit

Në këtë pikë ju keni mbaruar: ju keni një algoritëm integral të caktuar të punës të koduar në Python që funksionon pa probleme dhe jep përgjigje shumë të sakta. Sidoqoftë, ky program mund të përmirësohet. Unë nuk jam programues dhe kam përvojë minimale me Python. Në fakt, më duhej të rifreskohesha duke përdorur Python për të përfunduar këtë mësim, por kjo duhet t'ju japë besim se Python është një gjuhë kaq e lehtë për t'u mësuar. Pika ime është se ju mund ta zgjeroni këtë program duke e bërë atë më efikas, ndoshta të zbatoni ndonjë GUI dhe ta bëni atë më miqësor për përdoruesit.

Mendimet e mia për zgjerimin e programit:

  • Zbatoni një ndërfaqe grafike të përdoruesit që ju lejon të ekzekutoni programin pa përdorur mjedisin ndërveprues të analizës së të dhënave Canopy
  • Bëni atë në mënyrë që funksioni matematikor për t'u integruar të mos ketë nevojë të futet brenda programit, por mund të futet pasi programi të jetë ekzekutuar (fillimisht po përpiqesha ta bëja këtë, por nuk mund ta kuptoja).
  • Përcaktoni një funksion "Integro" Python në mënyrë që të marrë funksionin f (x) siç është caktuar për të përcaktuar funksionin f (x) brenda tij.

Këto janë vetëm disa shembuj të fushave të përmirësimit, por unë garantoj se ka shumë fusha të tjera që mund të përmirësohen. Kështu që unë e lë këtë hap si një shembull të të metave që ka ky program dhe ndoshta një ushtrim për këdo që dëshiron të përmirësojë programin më tej.

Recommended: