<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <id>https://www.yunseo.kim/am/</id><title>Yunseo Kim's Study Notes</title><subtitle>Yunseo Kim's personal blog on mathematics, physics, and engineering, now expanding to business, AI agent ecosystems, software supply chains, and digital trust.</subtitle> <updated>2026-04-11T20:15:30+09:00</updated> <author> <name>Yunseo Kim</name> <uri>https://www.yunseo.kim/am/</uri> </author><link rel="self" type="application/atom+xml" href="https://www.yunseo.kim/am/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://www.yunseo.kim/" /><link rel="alternate" type="text/html" hreflang="ko" href="https://www.yunseo.kim/ko/" /><link rel="alternate" type="text/html" hreflang="ja" href="https://www.yunseo.kim/ja/" /><link rel="alternate" type="text/html" hreflang="zh-TW" href="https://www.yunseo.kim/zh-TW/" /><link rel="alternate" type="text/html" hreflang="es" href="https://www.yunseo.kim/es/" /><link rel="alternate" type="text/html" hreflang="pt-BR" href="https://www.yunseo.kim/pt-BR/" /><link rel="alternate" type="text/html" hreflang="fr" href="https://www.yunseo.kim/fr/" /><link rel="alternate" type="text/html" hreflang="de" href="https://www.yunseo.kim/de/" /><link rel="alternate" type="text/html" hreflang="pl" href="https://www.yunseo.kim/pl/" /><link rel="alternate" type="text/html" hreflang="cs" href="https://www.yunseo.kim/cs/" /><link rel="alternate" type="text/html" hreflang="sw" href="https://www.yunseo.kim/sw/" /><link rel="alternate" type="text/html" hreflang="am" href="https://www.yunseo.kim/am/" /> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Yunseo Kim </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title xml:lang="am">የContributor Covenant 3.0 የስነ-ምግባር መመሪያ(Contributor Covenant 3.0 Code of Conduct) የኮሪያኛ ትርጉም ማስታወሻዎች</title><link href="https://www.yunseo.kim/am/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/" rel="alternate" type="text/html" hreflang="am" /><published>2026-03-20T00:00:00+09:00</published> <updated>2026-03-20T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/notes-on-the-korean-translation-of-the-contributor-covenant-3.0-code-of-conduct/</id> <author> <name>Yunseo Kim</name> </author> <category term="Dev" /> <category term="Dev Culture" /> <summary xml:lang="am">በ12025 ዓ.ም. ጁላይ የተለቀቀውን Contributor Covenant 3.0 የኮሪያኛ ትርጉም ስራ በመስራቴ ሂደት ውስጥ ያስተዋልኳቸውን ነጥቦች፣ በተለይም አንዳንድ አገላለጾችን እንደዚያ የተረጎምኩበትን ምክንያት እና የግል አስተያየቴን እዚህ አስመዝግባለሁ።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>በ12025 ዓ.ም. ጁላይ የተለቀቀውን Contributor Covenant 3.0 የኮሪያኛ ትርጉም ስራ በመስራቴ ሂደት ውስጥ ያስተዋልኳቸውን ነጥቦች፣ በተለይም አንዳንድ አገላለጾችን እንደዚያ የተረጎምኩበትን ምክንያት እና የግል አስተያየቴን እዚህ አስመዝግባለሁ።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><blockquote class="prompt-info"><p>Contributor Covenant 3.0 የስነ-ምግባር መመሪያ(Contributor Covenant 3.0 Code of Conduct) ኦፊሴላዊ የኮሪያኛ ትርጉም የተጨመረበት PR: <a href="https://github.com/EthicalSource/contributor_covenant/pull/1590">feat(i18n): add Korean translation for Contributor Covenant 3.0 (#1590)</a></p></blockquote><h2 id="የcontributor-covenant">የContributor Covenant</h2><p><a href="https://www.contributor-covenant.org/">Contributor Covenant</a> በ12014 በ<strong>ኮራላይን አዳ ኤምኬ(Coraline Ada Ehmke)</strong> ለመጀመሪያ ጊዜ ተዘጋጅቶ ይፋ የተደረገ ሲሆን፣ ከ12021 ጀምሮ ወደ <strong>OES(Organization for Ethical Source)</strong> ተላልፎ በአበርካቾቹ ጥገናና ማሻሻያ የሚደረግበት እና ዛሬ በዓለም ላይ ከሁሉ በስፋት የሚጠቀሙበት የዲጂታል ማህበረሰብ የስነ-ምግባር መመሪያ ነው። ማህበረሰቦች የሚጋሯቸውን ዝምተኛ እሴቶች በግልጽ ቃል በማስቀመጥ ሁሉም እንደተቀበሉ እና ደህንነታቸው እንደተጠበቀ የሚሰማቸውን የማህበረሰብ ባህል ለመገንባት ይደርሳል።</p><p>ቀደም ሲል የልማት ማህበረሰቦች በብቃት-አመራር በተባለው ስም ስር ከባድ ንግግር ወይም አድሎአዊ አስተያየቶች እንዲቀጥሉ መተው የተለመደ ነበር፤ Contributor Covenant ደግሞ የልማት ማህበረሰቦች ራሳቸውን በማስተካከል የተለያዩ ሰዎችን የሚያካትት፣ እርስ በርስ ክብርንና ገንቢ ግብረመልስን የሚያከብር ሰው-ተኮር ባህል ወደሚመራ ለውጥ አስፈላጊ መነሻ ሆኗል። ዛሬ Creative Commons፣ Linux፣ Apple፣ Mastodon፣ Microsoft፣ WordPress፣ IBM እና ሌሎች በዓለም ዙሪያ ያሉ በአስር ሺዎች የሚቆጠሩ ኦፕን ሶርስ ፕሮጀክቶች ይህን ስምምነት ተቀብለዋል።</p><h2 id="በcontributor-covenant-30-ማሻሻያ-የተቀየሩ-ነጥቦች">በContributor Covenant 3.0 ማሻሻያ የተቀየሩ ነጥቦች</h2><p>OES በ12024 የContributor Covenant 10ኛ ዓመት ክብረ በዓል አብሮ ስራውን ጀመረ፣ ከአንድ ዓመት ያህል ስራ በኋላ በ12025 ጁላይ የተለቀቀው 3.0 እትም ከቀድሞው 2.1 ጋር ሲነጻጸር የሚከተሉትን ዋና ለውጦች አሳይቷል።</p><ul><li>የማጣቀሻ ሰነዶች:<ul><li><a href="https://ethicalsource.dev/blog/contributor-covenant-3/">https://ethicalsource.dev/blog/contributor-covenant-3/</a><li><a href="https://www.contributor-covenant.org/faq/">https://www.contributor-covenant.org/faq/</a></ul></ul><h3 id="የተለዋዋጭነት-መስፋፋት">የተለዋዋጭነት መስፋፋት</h3><ul><li>ከቀድሞው በኦፕን ሶርስ ማህበረሰቦች ላይ ብቻ ያተኮረ እትም ጋር ሲነጻጸር፣ ከሶፍትዌር ልማት ውጭም ለተለያዩ የመስመር ላይ/ከመስመር ውጭ ማህበረሰቦች እንዲሰራ ተነድፏል<ul><li>ለምሳሌ <strong>‘프로젝트 유지 관리자(Project Maintainers)’</strong> ከማለት ይልቅ የበለጠ ገለልተኛና ያካትት የሆነ <strong>‘커뮤니티 중재자(Community Moderators)’</strong> የሚል ቃል ተጠቅሟል</ul><li>አሜሪካ ማዕከላዊ የሆኑ ምሳሌያዊ አገላለጾች ተወግደው፣ ሌሎች ባህሎች ነጋሪዎችም በቀላሉ ሊገነዘቡና ሊተረጉሙ በሚችሉ ግልጽ አገላለጾች ተተክተዋል</ul><h3 id="ከቅጣታዊ-ፍትሕ-ወደ-መልሶ-ማቋቋሚያ-ፍትሕ-የተደረገ-ፓራዳይም-ለውጥ">ከቅጣታዊ ፍትሕ ወደ መልሶ ማቋቋሚያ ፍትሕ የተደረገ ፓራዳይም ለውጥ</h3><p>በContributor Covenant 3.0 እትም ውስጥ ከቀድሞው እትም ጋር ሲነጻጸር ከተለወጡ ትልቁ ነጥቦች አንዱ ከ<strong>ቅጣታዊ ፍትሕ(Retributive Justice)</strong> ወደ <strong>መልሶ ማቋቋሚያ ፍትሕ(Restorative Justice)</strong> ያለው ፓራዳይም ለውጥ መሆኑ ነው። ቀድሞ በደረጃ-ተደረገ የቅጣት አፈጻጸም መስፈርቶች ላይ ያተኮረው <strong>집행 지침(enforcement guidelines)</strong> ክፍል ወደ <strong>피해 대응 및 교정(Addressing and Repairing Harm)</strong> ክፍል እንደገና ተደራጅቷል።</p><ul><li>የአንዳንድ የምላሽ ደረጃዎች ስሞች ተቀይረዋል<li>ከቀድሞው የ대응(Consequence) ንጥል በተጨማሪ 교정(Repair) መመሪያ ንጥሎች ተጨምረው ተቀርበዋል፤ በዋነኝነት በዳዩን ብቻ መቅጣት ሳይሆን በኋላ በተሳታፊዎች መካከል የተሰበረውን ግንኙነት እንዴት እንደሚመለስ፣ ግጭቱ እንዴት እንደሚያርፍ እና ስህተቱ እንዴት እንደሚታረም ያካትታል<li>የሶስተኛ ወገን አፈጻጸምና ቅጣትን ብቻ ከማጉላት ይልቅ፣ ከቻለ የበለጠ ፈቃደኛ ነፍስ-ግምገማ፣ እርቅ እና መሻሻል እንዲፈጠር መነሳሳት እንዲሁም ችግር ከተፈጠረ በኋላ ማህበረሰቡን እንዴት እንደገና ጤናማ ማድረግ እንደሚቻል ማሰብ ወደሚያተኩር አቅጣጫ ባህሪው ተቀይሯል</ul><h3 id="የበለጠ-ግልጽ-የሆኑ-መመሪያዎች">የበለጠ ግልጽ የሆኑ መመሪያዎች</h3><ul><li><strong>표준(Our Standards)</strong> ክፍል ወደ <strong>장려하는 행동(Encouraged Behaviors)</strong> እና <strong>제한하는 행동(Restricted Behaviors)</strong> በሚሉ ሁለት ክፍሎች በግልጽ ተከፍሎ ንባብነቱን ከፍ አድርጓል<li>በተለይ <strong>제한하는 행동(Restricted Behaviors)</strong> ክፍል ውስጥ አንድ ክፉ ባህሪ በተግባር ማከናወን ብቻ ሳይሆን እንደሚፈጽሙት ማስፈራራት ወይም ማበረታታት እንኳ በግልጽ ተከልክሏል እና የመከላከል አቅሙ ተጠናክሯል<blockquote><p>We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct.</p></blockquote><li>በተጨማሪም ለ<strong>제한하는 행동(Restricted Behaviors)</strong> ንዑስ ክፍል እንደ <strong>기타 제한 사항(Other Restrictions)</strong> አዲስ ክፍል ተጨምሯል፤ ቀደም ሲል ግልጽ የክልከላ ደንቦች ያልነበሩባቸው የማንነት መምሰል(Misleading identity)፣ ምንጭ አለመጠቀስ(Failing to credit sources)፣ የማስታወቂያ ቁሳቁሶች(Promotional materials)፣ ኃላፊነት የጎደለው ግንኙነት(Irresponsible communication) ላይ የክልከላ መመሪያዎች በግልጽ ተጨምረዋል<li>Contributor Covenant ን በእውነት ተቀብለው ሲያስተዳድሩ የነበሩ የማህበረሰብ ተወካዮች ላይ የተደረገ ጥናት ምላሾችን በመንገድ ደረጃዊ የአፈጻጸም መስፈርት(enforcement ladder) አንድ የመነሻ መለኪያ ብቻ መሆኑን እና የማህበረሰብ አስተዳዳሪዎች የውሳኔ ሥልጣን እንዳይገደብ በግልጽ አድርጓል<blockquote><p>This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community.</p></blockquote></ul><h3 id="የእኩልነት-መብትና-የአድሎ-ክልከላ-ደንቦች-መጠናከር">የእኩልነት መብትና የአድሎ ክልከላ ደንቦች መጠናከር</h3><p>በመጀመሪያው <strong>서약(Our Pledge)</strong> ክፍል የተያዙት የእኩልነት መብትና የአድሎ ክልከላ ደንቦች ተጠናክረዋል፤ አንዳንድ ቃላት የበለጠ ያካትቱ ቃላት ተተክተው እና አንዳንድ ዘመናዊ የብዝሃነት እሴቶች በተጨማሪ በግልጽ ተጠቅሰዋል።</p><ul><li>‘신체 크기(body size)’ እና ‘개인적 외양(personal appearance)’ የሚሉት ሁለት አገላለጾች የበለጠ ያካትቱ በሆነ ‘신체적 특징(physical characteristics)’ ተተክተዋል<li>‘종교(religion)’ የሚለው የበለጠ ያካትት በሆነ ‘신념 또는 종교(philosophy or religion)’ ተተክቷል<li>‘국적(nationality)’ የሚለው የበለጠ ያካትት በሆነ ‘출신 국가 또는 사회적 배경(national or social origin)’ ተተክቷል<li>‘신경다양성(neurodiversity)’ በተጨማሪ በግልጽ ተጠቅሷል<li>‘언어(language)’ በተጨማሪ በግልጽ ተጠቅሷል፣ እንግሊዝኛ ካልሆኑ ቋንቋ ተናጋሪዎችን ይበልጥ በአሳቢነት ያካትታል<li>ከጾታ እኩልነትና ብዝሃነት ጋር በተያያዘ በአጠቃላይ የአገላለጽ ማሻሻያዎች ተደርገዋል<blockquote><p><strong>v2.1</strong><br /> sex characteristics, gender identity and expression, or sexual identity and orientation</p><p><strong>v3.0</strong><br /> sex or gender, gender identity or expression, sexual orientation</p></blockquote></ul><h2 id="በዚህ-የኮሪያኛ-ትርጉም-ስራ-ውስጥ-ያስተዋልኳቸው-ነጥቦች">በዚህ የኮሪያኛ ትርጉም ስራ ውስጥ ያስተዋልኳቸው ነጥቦች</h2><h3 id="የጋራ-ግምት-ነጥቦች">የጋራ ግምት ነጥቦች</h3><h4 id="የክብር-ቋንቋ-አጠቃቀም">የክብር ቋንቋ አጠቃቀም</h4><p>ስምምነትን እና የስነ-ምግባር መመሪያን በኮሪያኛ ሲጻፉ፣ ከክብር ቋንቋ እና ከቀጥታ ዘይቤ መካከል የትኛውን መምረጥ እንደሚገባ የሚወስነው በሚመራው አቅጣጫ፣ በድርጅታዊ ባህል እና ማስተላለፍ በሚፈልጉት አመለካከት ላይ ነው። ቀደም ሲል ሥልጣንንና ደንብን የሚያጎላ ቀጥታ ዘይቤ እጅግ የተለመደ ቢሆንም፣ በቅርቡ ግን አግድም ያለ እና ክብር የሚሰጥ ባህል ለማጉላት የክብር ቋንቋ በብዛት ይጠቀማሉ።</p><table><thead><tr><th>የጽሑፍ ዘይቤ<th>ክብር ቋንቋ(~합니다, ~하겠습니다)<th>ቀጥታ ዘይቤ(~한다)<tbody><tr><td>የሚፈጥረው ስሜት<td>እርስ በርስ ክብር፣ ፈቃደኛ ቃል ኪዳን፣ ምክር<td>ጥብቅነት፣ ሕጋዊ ኃይል፣ ተጨባጭ ደንብ<tr><td>የድርጅት ባህል<td>የተለዋዋጭና አግድም ባህል<td>በአንጻራዊነት ጠንካራ ባህል<tr><td>ዋና ዋና የመተግበሪያ ሁኔታዎች<td>የስነ-ምግባር መመሪያ፣ የሥነ-ምግባር መግለጫ<td>የደህንነት ቃል ኪዳን፣ የስራ ውል፣ ሕጋዊ የቅጣት ደንቦች<tr><td>ስነ-ልቦናዊ ውጤት<td>‘우리는 함께 지킨다’ (ፈቃደኛ ስምምነት)<td>‘지켜야 한다’ (የግዴታ ባህሪን ይበልጥ ያጎላል)</table><p><a href="https://github.com/EthicalSource/contributor_covenant/pull/895#pullrequestreview-563210153">ቀደም ሲል የነበረውን ውይይት</a> ብንመለከት ቀድሞውን 2.0 እትም ወደ ኮሪያኛ ሲተረጉሙም መጀመሪያ የክብር ቋንቋን አስበው ከዚያ <a href="https://github.com/EthicalSource/contributor_covenant/commit/3971299d81149b3fc0ce603a5dd26400509f090f">በቀጥታ ዘይቤ እንደገና የጻፉት</a> ይታያል። ቀደም ሲል የነበሩትን ውይይቶችና የደረሱበትን ውሳኔ አከብራለሁ፤ ሆኖም በዚህ ጊዜ እንደገና በክብር ቋንቋ የተረጎምኩበት ምክንያት እነዚህ ናቸው።</p><p>ዛሬ ያለው የኦፕን ሶርስ ማህበረሰብ ባህል በመሠረቱ ከግዴታ፣ ከጥብቅነት፣ ከአስገዳጅ አፈጻጸም ጋር በተወሰነ ርቀት ያለ ሲሆን፣ ከዚያ ይልቅ እርስ በርስ ክብርን፣ ፈቃደኛ ተሳትፎንና አስተዋጽኦን ይከተላል። <a href="#ከቅጣታዊ-ፍትሕ-ወደ-መልሶ-ማቋቋሚያ-ፍትሕ-የተደረገ-ፓራዳይም-ለውጥ">በዚህ የContributor Covenant 3.0 እትም ውስጥ በተለይ ይህ ፍልስፍና በጠንካራ መልኩ በአጠቃላይ ተንጸባርቋል</a>። በዚህ ማሻሻያ ውስጥ በመሰረታዊ ጽሑፉ የተላለፉትን ዋና እሴቶችና ፍልስፍና፣ እንዲሁም የማህበረሰብ ባህልና አዝማሚያዎችን ከግምት ውስጥ ስናስገባ፣ ይህን ጽሑፍ ወደ ኮሪያኛ ሲተረጉም የክብር ቋንቋ ተገቢ ነው ብዬ ፈረድኩ። በተመሳሳይ መልኩ የክብር ቋንቋን የሚጠቀሙት <a href="https://rust-kr.org/pages/code-of-conduct/">የኮሪያ Rust ተጠቃሚ ቡድን</a>፣ <a href="https://pythonkr.github.io/pycon-code-of-conduct/ko/coc/a_intent_and_purpose.html">PyCon KR የስነ-ምግባር መመሪያ</a> እና <a href="https://kubernetes.io/ko/community/code-of-conduct/">የKubernetes ማህበረሰብ የኮሪያኛ የስነ-ምግባር መመሪያ</a> ምሳሌዎችንም ጠቅሻለሁ።</p><h4 id="አላስፈላጊ-ተቀባይ-አገላለጾችን-ማስወገድ">አላስፈላጊ ተቀባይ አገላለጾችን ማስወገድ</h4><p>እንግሊዝኛ ተቀባይ ድርጊትን ብዙ ጊዜ ከሚጠቀም በተለየ፣ ኮሪያኛ በመሠረቱ ከተቀባይ አገላለጽ ይልቅ ንቁ አገላለጽን የሚመርጥ ቋንቋ ነው። በእንግሊዝኛ መሠረታዊ ጽሑፍ ተቀባይ ግንባታ ተጠቅመው ብለን በሜካኒካዊ መንገድ ወደ ኮሪያኛ ተቀባይ አገላለጽ ካመጣነው፣ የተተረጎመ ጽሑፍ መሆኑ በግልጽ የሚታይ ያልተፈጥሯዊ ጽሑፍ ይሆናል እና ከሰዋሰው አንጻርም ተገቢ አይሆንም።</p><p>በኮሪያኛም ተቀባይ አገላለጽ ሙሉ በሙሉ አይጠቀሙም ማለት ባይሆንም፣ የጽሑፉን ትርጉም ሳያበላሽ በተቻለ መጠን በመሠረታዊው ጽሑፍ ተቀባይ አገላለጽ ቢሆንም በኮሪያኛ ትርጉሙ ውስጥ ወደ ንቁ አገላለጽ ለመቀየር ሞክሬያለሁ።</p><p><strong>e.g.</strong></p><ul><li>“Encouraged Behaviors”: “장려<strong>되는</strong> 행동”(X), “장려<strong>하는</strong> 행동”(O)<li>“enforcement actions are carried out in private”: “집행 조치는 비공개로 진행<strong>된다</strong>“(X), “집행 조치는 비공개로 진행<strong>한다</strong>“(O)<li>“its own established enforcement process”: “자체적으로 확립<strong>된</strong> 집행 절차”(X), “자체적으로 확립<strong>한</strong> 집행 절차”(O)<li>“the following enforcement ladder may be used”: “다음의 단계적 집행 기준<strong>이 사용될</strong> 수 있습니다”(X), “다음의 단계적 집행 기준<strong>을 사용할</strong> 수 있습니다”(O)<li>“are provided at”: “에서 제공<strong>됩니다</strong>“(X), “에서 제공<strong>합니다</strong>“(O)</ul><h4 id="ከመዝገበ-ቃላት-ወይም-ከሜካኒካዊ-የቃል-ትርጉም-ይልቅ-ቃሉ-በጽሑፉ-ውስጥ-የተጠቀመበትን-አውድ-መገንዘብ">ከመዝገበ ቃላት ወይም ከሜካኒካዊ የቃል ትርጉም ይልቅ ቃሉ በጽሑፉ ውስጥ የተጠቀመበትን አውድ መገንዘብ</h4><p>እንግሊዝኛና ኮሪያኛ እርስ በርሳቸው በጣም የተራራቁ ቋንቋዎች ስለሆኑ፣ ቃል በቃል ትክክለኛ አንድ-ለ-አንድ መዛመድ እንደሌለ ግልጽ ነው። በመዝገበ ቃላት ተመሳሳይ ትርጉም አላቸው ቢባልም እንኳ።</p><p>ለምሳሌ፣ በሚከተለው ክፍል ውስጥ “intimate” የተጠቀመው በአውዱ መሰረት “친밀한” ሳይሆን “성적인” በሚል ትርጉም ነው።</p><blockquote><p><strong>Sexualization.</strong> Behaving in a way that would generally be considered inappropriately <u>intimate</u> in the context or purpose of the community.</p></blockquote><p>እንዲሁም፣ በሚከተለው ክፍል ውስጥ “process” ን በመዝገበ ቃላት መሰረት “처리할” ብለን ብንተረጉመው ያልተፈጥሯዊ ይሆናል። በጽሑፉ አውድ መሰረት እዚህ “process” ን “추스를” ብሎ መተርጎም ተገቢ ነው።</p><blockquote><p>… give the community members involved time to <u>process</u> the incident.</p></blockquote><blockquote class="prompt-tip"><p>(<a href="https://stdict.korean.go.kr/">표준국어대사전</a> 표제어 중)</p><p><strong>추스르다「3」</strong>: 일이나 생각 따위를 수습하여 처리하다.</p></blockquote><p>በሌላ በኩል፣ የሚመጥን የአገር ቃል አገላለጽ የሌላቸው የውጭ ቃላትም አሉ። ለምሳሌ “community” የሚለው ቃል በአገር ቃል ለመቀየር “공동체” ብሎ ማቀርብ ይቻላል፤ ግን በእንግሊዝኛ “community” የሚሰጠው ስሜት እና በኮሪያኛ “공동체” የሚለው ቃል የሚሰጠው ስሜት በመጠኑ የተለያየ መሆኑን ተገንዝቤያለሁ። በተቻለ መጠን የውጭ ቃላትን ወደ አገር ቃላት መቀየር እመርጣለሁ፤ ነገር ግን እንደዚህ በመሠረታዊው ጽሑፍ ትርጉም ወይም ስሜት መዛባት ሊፈጥር ይችላል ብዬ ካሰብኩ ጊዜ “커뮤니티” እንደሚለው በቀጥታ አስቀምጬዋለሁ።</p><p>እነዚህን ነጥቦች በማሰብ፣ መዝገበ ቃላት ያለ እና ሜካኒካዊ የቃል ቅያሪ ስራ ብቻ ሳይሆን በመሠረታዊው ጽሑፍ ትርጉምና አውድ በጣም ቀርቦ የሚያስቀምጥ የኮሪያኛ አገላለጽ ለመምረጥ ሞክሬያለሁ።</p><h4 id="ከዚህ-ውጭም-የኮሪያኛ-የቋንቋ-ደንቦችን-ማክበር">ከዚህ ውጭም የኮሪያኛ የቋንቋ ደንቦችን ማክበር</h4><p>የሀንጉል አጻጻፍ ደንቦችንና መደበኛ የቃላት ደንቦችን ጨምሮ የኮሪያኛ የቋንቋ ደንቦችን በተቻለ መጠን በትክክል ለማክበር ሞክሬያለሁ።</p><h3 id="서약our-pledge-ክፍል">“서약(Our Pledge)” ክፍል</h3><h4 id="ንዑስ-ርዕስ">ንዑስ ርዕስ</h4><p>“Our Pledge” ብንተረጉመው ቃል በቃል “우리의 맹세” ይሆናል፣ ነገር ግን <a href="https://www.contributor-covenant.org/ko/version/2/1/code_of_conduct/">በቀድሞው የኮሪያኛ ትርጉም</a> ውስጥ “서약” ብሎ የተተረጎመ ነበር እና የጽሑፉን ተፈጥሯዊነት ከግምት ውስጥ ስናስገባ በበቂ ሁኔታ የሚፈቀድ ክልል ነው ብዬ ስለተሰማኝ በዚህ ጊዜም “서약” እንደዚያው አስቀጠልኩት።</p><h4 id="caste-ቃል-ትርጉም">“caste” ቃል ትርጉም</h4><p><a href="https://www.contributor-covenant.org/ko/version/2/1/code_of_conduct/">በቀድሞው 2.1 እትም የኮሪያኛ ትርጉም</a> ውስጥ ይህ ቃል በቀጥታ “카스트 제도” ተብሎ ተተርጉሟል። caste የሚለው ቃል <u>በዓለም አቀፍ ደረጃ ጥብቅ የተጠናከረ የማህበራዊ ደረጃ ሥርዓት</u> የሚያመለክት ሳይንሳዊ አጠቃላይ ስም ስለሚሆን አጠቃላይ በስህተት ነው ማለት አይቻልም፤ ነገር ግን ይህ ዝርዝር የጀርባ መረጃ ባልተሰጠበት ጊዜ በኮሪያኛ ዕለታዊ አጠቃቀም “카스트 제도” ሲባል አብዛኞቹ ሰዎች “ማኑ ሕግ ወዘተ የመጣ በሕንድ ውስጥ የሚገኝ የሂንዱዎች ልዩ የማህበራዊ ደረጃ ስርዓት” ብለው ስለሚገነዘቡት የመሠረታዊውን ጽሑፍ አውድ በማሰብ “계급” ብዬ ተረጎምኩት። እዚህ ያለው “caste” በተወሰነ አገር(ሕንድ) ወይም ሃይማኖት(ሂንዱዝም) የተገደበ ሳይሆን ሁሉንም ዓይነት እና ቅርጽ ያላቸውን የማህበራዊ ደረጃ ስርዓቶችንና ከእነሱ የሚመጡ የክፍል ልዩነቶችን የሚያመለክት ነው ብሎ መተርጎም ተገቢ ነው።</p><h4 id="성별-ከማለት-ይልቅ-성-የሚለውን-አገላለጽ-መጠቀም">“성별” ከማለት ይልቅ “성” የሚለውን አገላለጽ መጠቀም</h4><blockquote><p>We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of … sex or gender, gender identity or expression, sexual orientation … or other status.</p></blockquote><p>መሠረታዊው ጽሑፍ ለማስተላለፍ የሚፈልገውን እሴትና አውድ ከግምት ውስጥ ስናስገባ፣ እዚህ የሚባሉት “sex”፣ “gender”፣ “sexual orientation” ወዘተ የወንድ/ሴት ሁለት-ጫፍ ክፍፍል ብቻ አይመስሉኝም። ስለዚህ የወንድ/ሴት ሁለት-ጫፍ ልዩነትን በስውር የሚያንጸባርቅ “성별” ከሚለው ቃል ይልቅ “성” የሚለውን ቃል ተጠቅሜ፣ በሰብአዊና ማህበራዊ ሳይንስ ውስጥ sex፣ gender፣ sexuality የሚሉት ሶስት ቃላት ያላቸውን ትርጉም ልዩነት በተቻለ መጠን ለማስቀመጥ እንዲህ ብዬ ተረጎምኩት።</p><blockquote><p>… 생물학적 또는 사회적 성, 성 정체성 또는 성 표현, 성적 지향…</p></blockquote><h3 id="장려하는-행동encouraged-behaviors-እና-제한하는-행동restricted-behaviors-ክፍሎች">“장려하는 행동(Encouraged Behaviors)” እና “제한하는 행동(Restricted Behaviors)” ክፍሎች</h3><h4 id="ኮሎን-ማስወገድ">ኮሎን(<code class="language-plaintext highlighter-rouge">:</code>) ማስወገድ</h4><blockquote><p>With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including:</p><ol><li>Respecting the <strong>purpose of our community</strong>, our activities, and our ways of gathering.<li>Engaging <strong>kindly and honestly</strong> with others. …</ol></blockquote><p>በእንግሊዝኛ መሠረታዊ ጽሑፍ ውስጥ ከአንድ የተሟላ ዓረፍተ ነገር በኋላ የምሳሌ ዝርዝር ለማስቀመጥ እንደ ላይ ኮሎን መጠቀም የተለመደ ነው፤ ነገር ግን በዘመናዊ ኮሪያኛ የቋንቋ ደንቦች መሰረት የሁለት ነጥብ አጠቃቀም በአብዛኛው ከርዕስ በኋላ ንጥሎችን ሲዘረዝሩ ወይም ማብራሪያ ሲያክሉ ያሉ አዋቂ አቀራረቦች ውስጥ ብቻ ይገደባል። ስለዚህ ሙሉ ጽሑፉ በአዋቂ አቀራረብ ያልተጻፈ ከሆነ በቀር ከሚከተለው በመልኩ መጻፍ በጣም ያልተፈጥሯዊ ሲሆን በማሽን ትርጉም ወይም LLM በጥፋት እንደተተረጎመ ስሜት ሊፈጥር ይችላል። በግሌ <a href="https://www.contributor-covenant.org/ko/version/2/1/code_of_conduct/">በ2.1 እትም የኮሪያኛ ትርጉም</a> ውስጥም እጅግ አሳዛኝ ያስመስለኝ ከነበሩ ነጥቦች አንዱ ይህ ነበር።</p><blockquote><p>이러한 점을 유념하며, 우리는 서로를 사려 깊게 대하고 우리가 공유하는 다음 가치를 중심으로 행동할 것에 동의합니다:</p><ol><li>우리 <strong>공동체의 목적</strong>, 활동 및 모임 방식을 존중합니다.<li><strong>친절하고 정직하게</strong> 다른 사람들과 소통합니다. …</ol></blockquote><p>ስለዚህ ከኮሪያኛ አጠቃቀም ጋር እንዲስማማ፣ ኮሎን ያለበትን ክፍል በቀጥታ ወደ ሁለት ነጥብ ከመቀየር ይልቅ በሙሉ ነጥብ(<code class="language-plaintext highlighter-rouge">.</code>) በመቀየር ተፈጥሯዊ ጽሑፍ እንዲሆን አደረግሁት።</p><h4 id="that-would-generally-be-considered-inappropriately-የሚለውን-አገላለጽ-መተርጎም">“that would generally be considered inappropriately” የሚለውን አገላለጽ መተርጎም</h4><p>እዚህ “generally” ን በቀጥታ “일반적으로” ብሎ ከመተርጎም ይልቅ በአውዱ መሰረት የበለጠ ተፈጥሯዊ እንዲሆን “대부분의 사람들에게” ብዬ ተረጎምኩት።</p><blockquote><p>…<u>대부분의 사람들이</u> 부적절하다고 간주할 만한…</p></blockquote><h3 id="act-on-የሚለውን-አገላለጽ-መተርጎም">“act on” የሚለውን አገላለጽ መተርጎም</h3><p>መጀመሪያ ላይ “act on” ን በቀላሉ “이용하다” ብዬ ልተረጉመው አስቤ ነበር፤ ግን በአውዱ መሰረት <u>ዓላማው ምንም እንኳ ይሁን በሌላ ሰው የግል መረጃ ወይም የግል ውሂብ ላይ ተመስርቶ የሚፈጸም ሁሉንም ድርጊት የሚከለክል</u> ይመስለኛል፤ ይህን በ”이용하다” መተርጎም ትርጉሙን እያጠበበ እንደሚያሳይ ስለተሰማኝ እንዲህ ብዬ ተረጎምኩት።</p><blockquote><p><strong>비밀 침해.</strong> 타인의 신상 관련 정보 또는 개인적인 정보를 당사자의 허락 없이 공유하거나, 그 정보<u>를 바탕으로 행하는</u> 모든 행위.</p></blockquote><h3 id="문제-신고reporting-an-issue-ክፍል">“문제 신고(Reporting an Issue)” ክፍል</h3><ul><li>“this Code of Conduct <strong>reinforces</strong> encouraged behaviors and norms that …”: “본 행동 강령은 …는 권장 행동 방식과 규범을 <strong>증진합니다</strong>” ብዬ ተረጎምኩት<li>“in a timely manner”: “적시에” ብዬ ተረጎምኩት<li>“while prioritizing safety and confidentiality”: “안전과 비밀 유지를 우선시한다는 전제 하에” ብዬ ተረጎምኩት<li>“In order to <strong>honor</strong> these values”: “이들 가치를 <strong>지키기</strong> 위해” ብዬ ተረጎምኩት<blockquote class="prompt-tip"><p>(<a href="https://www.oxfordlearnersdictionaries.com/">Oxford Learner’s Dictionaries</a> 표제어 중)</p><p><a href="https://www.oxfordlearnersdictionaries.com/definition/english/honor_2"><strong>honor</strong></a> <em>verb</em><br /> <u>keep promise</u> 3. <strong>honor something</strong> <em>(formal)</em> to do what you have agreed or promised to do</p></blockquote></ul><h3 id="피해-대응-및-교정addressing-and-repairing-harm-ክፍል">“피해 대응 및 교정(Addressing and Repairing Harm)” ክፍል</h3><ul><li>“Addressing”: “대응” ብዬ ተረጎምኩት<li>“Repairing”: “교정” ብዬ ተረጎምኩት</ul><h4 id="event-consequence-repair-ትርጉም"><code class="language-plaintext highlighter-rouge">Event:</code>, <code class="language-plaintext highlighter-rouge">Consequence:</code>, <code class="language-plaintext highlighter-rouge">Repair:</code> ትርጉም</h4><p>ወደ ኮሪያኛ ለመተርጎም አስቸጋሪ ስለነበረ ብዙ አስቤበት ነበር። “사건”, “결과”, “교정” ብለን በቀጥታ ብንተረጉማቸው ጽሑፉ እጅግ ያልተፈጥሯዊ ይሆናል።</p><p>ተፈጥሯዊ ጽሑፍ እንዲሆን ሲያደርግም <a href="#ከቅጣታዊ-ፍትሕ-ወደ-መልሶ-ማቋቋሚያ-ፍትሕ-የተደረገ-ፓራዳይም-ለውጥ">የመሠረታዊውን ጽሑፍ ፍልስፍና</a> በተቻለ መጠን ሙሉ ለሙሉ ለማስተላለፍ በጥልቅ ካሰብኩ በኋላ እንዲህ ብዬ ተረጎምኳቸው።</p><ul><li>“Event”: “적용 상황” ብዬ ተረጎምኩት።<li>“Consequence”: “대응 조치” ብዬ ተረጎምኩት።<li>“Repair”: መጀመሪያ ላይ “회복 조치” ብዬ ልተረጉመው አስቤ ነበር፣ ግን “조치” የሚለው አገላለጽ ከተሳታፊው ፈቃደኛ ነፍስ-ግምገማና መሻሻል ይልቅ ሌላ ሰው ገብቶ የሚያስፈጽም ስሜት ስለሚሰጥ ከመሠረታዊው ጽሑፍ ዓላማ ጋር አይስማማም ብዬ ተውኩት። በመጨረሻም “교정 노력” ብዬ ተረጎምኩት።</ul><h4 id="seeking-clarification-on-expectations-የሚለውን-አገላለጽ-መተርጎም">“seeking clarification on expectations” የሚለውን አገላለጽ መተርጎም</h4><p>“expectations” ን በቀጥታ “기대 사항” ብለን መተርጎም ይቻላል፣ እንዲህ ብለን ብንተረጉመውም ትርጉሙ ይደርሳል፤ ነገር ግን ጽሑፉ ይበልጥ እንዲፈስ ለማድረግ “준수 사항” ብዬ ተረጎምኩት።</p><blockquote class="prompt-tip"><p>(<a href="https://www.oxfordlearnersdictionaries.com/">Oxford Learner’s Dictionaries</a> 표제어 중)</p><p><a href="https://www.oxfordlearnersdictionaries.com/definition/english/expectation"><strong>expectation</strong></a> <em>noun</em><br /> 3. [countable, usually plural] a strong belief about the way something should happen or how somebody should behave</p></blockquote><p>“seeking clarification” ን “해명(clarification) 요구(seeking)” ብለን መተርጎም ይቻላል፣ ግን በአውዱ መሰረት በ교정 노력(Repair) ንጥል ውስጥ ችግር ያመጣው ሰው ሊወስድ የሚገባውን ተፈላጊ የኋላ ባህሪና አመለካከት እየተገለጸ ስለሆነ clarification እና seeking ን በየተናጠል እንደ 해명 እና 요구 መተርጎም ትርጉሙን ያሳሳት ያደርገዋል። እዚህ የራሱን ስህተት በማስተካከል እና እንደገና እንዳይደገም ለማድረግ <u>준수 사항</u>(expectations) ን <u>명확히 확인하고 숙지하기</u>(clarification) ለማድረግ የሚደረግ <u>노력</u>(seeking) ብሎ መተርጎም እጅግ ተገቢ ነው ብዬ አየሁ።</p><blockquote class="prompt-tip"><p>(<a href="https://www.oxfordlearnersdictionaries.com/">Oxford Learner’s Dictionaries</a> 표제어 중)</p><p><a href="https://www.oxfordlearnersdictionaries.com/definition/english/seek"><strong>seek</strong></a> <em>verb</em><br /> 2. [transitive] to ask somebody for something; to try to obtain or achieve something</p><p><a href="https://www.oxfordlearnersdictionaries.com/definition/english/clarification"><strong>clarification</strong></a> <em>noun</em><br /> [uncountable, countable] (formal)<br /> the act or process of making something clearer or easier to understand</p><ul><li><em>I am <strong>seeking clarification of</strong> the regulations.</em></ul></blockquote><h4 id="cooldown-የሚለው-አገላለጽ">“cooldown” የሚለው አገላለጽ</h4><p>በመዝገበ ቃላት ደረጃ ማቀዝቀዝ፣ (ከዋና እንቅስቃሴ በኋላ የሚደረግ) ማብረድ እንቅስቃሴ፣ መረጋጋት ወዘተ ትርጉሞች አሉት፤ እዚህ ግን በአውዱ መሰረት ለ”መረጋጋት” ቅርብ ትርጉም ነው የተጠቀመበት። “머리 좀 식혀라.” ሲሉ ያለው የ”식히다” ትርጉም ጋር በጣም ይቀራረባል።</p><p>ነገር ግን “time-limited cooldown period” ን “한시적 진정 기간” ብሎ መተርጎም ትንሽ ያልተፈጥሯዊ ስለሚመስል፣ በዚህ የኮሪያኛ ትርጉም ውስጥ “cooldown period” ን “자숙 기간” ብዬ ተረጎምኩት።</p><h4 id="time-to-process-the-incident-የሚለውን-አገላለጽ-መተርጎም">“time to process the incident” የሚለውን አገላለጽ መተርጎም</h4><p><a href="#ከመዝገበ-ቃላት-ወይም-ከሜካኒካዊ-የቃል-ትርጉም-ይልቅ-ቃሉ-በጽሑፉ-ውስጥ-የተጠቀመበትን-አውድ-መገንዘብ">ከላይ እንደተገለጸው</a>፣ “해당 일을 추스를 시간” ብዬ ተረጎምኩት።</p><h4 id="suspension-እና-ban-የሚሉ-አገላለጾች">“suspension” እና “ban” የሚሉ አገላለጾች</h4><p><a href="https://www.contributor-covenant.org/ko/version/2/1/code_of_conduct/">በቀድሞው 2.1 እትም የኮሪያኛ ትርጉም</a> ውስጥ “ban” ን “제재” ብለው ተርጉመውታል፤ ነገር ግን 제재 ማለት ከዝቅተኛ ደረጃዎች እንደ ማስጠንቀቂያ ወይም ጊዜያዊ የእንቅስቃሴ ገደብ ያሉ ሁሉንም በመደፈር ላይ ሊወሰዱ የሚችሉ እርምጃዎችን የሚያካትት ስለሆነ የሚያመለክተው ነገር ያልተገለጸ ይሆናል። እንግሊዝኛው “ban” ደግሞ ትርጉሙ መከልከል ወይም ማግደል መሆኑ ግልጽ ነው፣ እንዲሁም “(계정 등의) 영구 정지” የሚለው አገላለጽ በኮሪያኛም በዕለታዊ ጥቅም ውስጥ በተደጋጋሚ የሚውል ተፈጥሯዊ አገላለጽ ስለሆነ ይህን በመሸሸግ በሌላ አገላለጽ መተርጎም የሚያስፈልግ ምክንያት የለም ብዬ አየሁ።</p><p>“suspension” ምንም እንኳ እንዲሁ ነው፤ እንደ 정직 ወይም 정학 እንደሚሉት “정지” የሚል ግልጽ ትርጉም አለው እና በግድ በሌላ አገላለጽ መተርጎም አያስፈልግም።</p><p>ስለዚህ “Temporary Suspension” እና “Permanent Ban” ን በተከታታይ “일시적 정지” እና “영구 정지” ብዬ ተረጎምኳቸው።</p><h4 id="this-enforcement-ladder-is-intended-as-a-guideline-የሚለውን-ዓረፍተ-ነገር-መተርጎም">“This enforcement ladder is intended as a guideline.” የሚለውን ዓረፍተ ነገር መተርጎም</h4><p>“enforcement ladder” የሚለውን አገላለጽ “단계적 집행 기준” ብዬ ተረጎምኩት። እንዲሁም ይህ ዓረፍተ ነገር ከላይ የተገለጹት ደረጃዊ የአፈጻጸም መስፈርቶች ከብዙ ሊኖሩ ከሚችሉ አማራጮች አንዱ ብቻ እንደ መመሪያ የቀረቡ ሲሆን የማህበረሰብ አስተዳዳሪዎች የውሳኔ ሥልጣናቸውን እና የፍርድ ችሎታቸውን መጠበቅ በሚል አውድ ውስጥ ስለተጠቀመ፣ ቅድመ ቃሉ “a” ን “하나의” ብዬ ተረጎምኩት። ስለዚህ በትርጉም ጽሑፉ ውስጥ እንዲህ ብዬ ጻፍኩ።</p><blockquote><p><u>이 단계적 집행 기준은 하나의 기준선으로 마련한 것입니다.</u> 이는 커뮤니티의 최선의 이익에 부합하는 커뮤니티 관리자의 재량권과 판단 권한을 제한하지 않습니다.</p></blockquote><h2 id="ማጠቃለያ">ማጠቃለያ</h2><p>እንደዚህ ያሉ የህዝብ ጥቅም ባህሪ ያላቸው ሰነዶችና ፕሮጀክቶች መካከል ብዙዎቹ በበጎ ፈቃደኞችና አበርካቾች በተለያዩ ቋንቋዎች ወደ ትርጉም ስራ ሲገቡ ይታያል። ነገር ግን በኮሪያኛ ትርጉም ጉዳይ ግን አሳዛኝ ሁኔታ አለ፤ አበርካች ስለሌለ ትርጉም የሌለው ይሆናል፣ ወይም ቢኖርም በሜካኒካዊ መንገድ እንደተተረጎመ የሚታይ ያልተፈጥሯዊ ጽሑፍ ስለሆነ ኮሪያዊ እየሆንኩም ‘በእንግሊዝኛው እንብበው ይሻላል’ ብዬ ወደ እንግሊዝኛ ገጽ የተመለስኩበት ሁኔታ ከብዙ ጊዜ አልነሰሰም።</p><p>በዚህ ጊዜ የኮሪያኛ ትርጉም አስተዋጽኦ ለማድረግ ወስኜ ስሰራ፣ ከተገባ ጥረት ጋር ጀመርኩ፤ አንድ ነገር እንደምናበረክት ከወሰንኩ በኋላ፣ አንባቢው የኮሪያ ጸሐፊ ከመጀመሪያው ጀምሮ በኮሪያኛ የጻፈው ጽሑፍ ቢሆንም እንኳ ምንም የእንግዳ ስሜት እንዳይሰማው የሚያደርግ ጥራት ያለው ትርጉም ለማቅረብ እጅግ ሞከርኩ። መሠረታዊው ጽሑፍ ለመያዝ የፈለገውን ፍልስፍናና ስለሰለባቸው አውዶች፣ በተለይም ከ2.1 እትም ጋር ሲነጻጸር በዚህ 3.0 እትም የተቀየሩት አገላለጾች ምን እንደሆኑ እና ዋና ጸሐፊዎቹ በምን ምክንያት እንዲህ ያሉ ምርጫዎችን እንደወሰዱ ለመረዳትና በትርጉሙ ውስጥ ለማቀናበር በጥልቅ አስቤያለሁ።</p><p>የተፈጥሮ ቋንቋ ባህሪ ስለሆነ፣ ትርጉም ማለት አንድ ዓይነት መሠረታዊ ጽሑፍ ለመግቢያ ቢሰጥም እንደ አንድ ተግባር ሁሉ ተመሳሳይ ውጤት የሚሰጥ አይደለም። ተርጓሚዎች በትንሹ ቢሆንም የተለያዩ ትርጉሞችን ያቀርባሉ፤ ይህም የተርጓሚው ክህሎት ጉዳይ ብቻ ሳይሆን በመሠረቱ አንድ የተወሰነ ትክክለኛ መልስ የሌለው የትርጉም፣ ከዚያም በላይ የጽሑፍ ማቀናበር ባህሪ ነው። በቅርቡ እኔ በአብዛኛው ስራዬ ላይ AIን እንደ አጋዥ መሣሪያ እጠቀማለሁ፣ እንዲሁም በዚህ ብሎግ ላይ የሚወጡ ፖስቶችን እንኳ ከLLM API ጋር በማገናኘት ወደ ብዙ ቋንቋዎች በራስ-ሰር እተረጉማለሁ እና እታትማለሁ። ነገር ግን ቢያንስ ይህን ስራ ግን በእውነት ጥልቅ ትኩረት በማድረግ፣ በእኔ እጅ የሚቻለውን ምርጥ ትርጉም ለማቅረብ ፈለግሁ። እያንዳንዱን አገላለጽ በብዙ ጊዜ በቀጥታ እየመረመርኩ፣ የመሠረታዊውን ጽሑፍ ትርጉም በትንሹ ሳያዛባ በሙሉ እና በተፈጥሯዊ መልኩ ለማቅረብ የትኛው አገላለጽ እንደሚመጥን በጥልቅ አሰብኩ፤ የተገኘውም ውጤት የእኔን ግለሰባዊ ግን ከምንም በላይ ምርጥ ውሳኔና ትርጓሜ የሚያንጸባርቅ ነው። ሁሉም ሰው AI የሚጠቀምበት ዘመን ላይ፣ ቢያንስ እንደዚህ ያሉ አስፈላጊ ሰነዶችን ለምሳሌ ቃል ኪዳኖችና የስነ-ምግባር መመሪያዎችን ሲተረጉሙ፣ መሠረታዊውን ጽሑፍ በቀጥታ ለAI ሰጥተን እንዲተረጉም ከማለት የተሻለ ዋጋ ካልነበረው ትርጉም እንደ ትርጉም ዋጋ የለውም ብዬ አምናለሁ። ቢያንስ በ12026 መጋቢት ወር ያለውን የአሁኑን ወቅት መሠረት ካደረግን፣ በማሽን ትርጉም ወይም በLLM ሙሉ በሙሉ ሊጠበቁ የማይችሉትን የመሠረታዊውን ጽሑፍ ስለሰለባ ስሜቶችና አውዶች <a href="https://github.com/EthicalSource/contributor_covenant/pull/1590">በዚህ ትርጉም</a> ውስጥ በሙሉ ጠብቄአለሁ ብዬ በእምነት እናገራለሁ።</p><p>በ12026 መጋቢት 20 ያለውን ወቅታዊ ሁኔታ መሠረት ካደረግን፣ Contributor Covenant 3.0 እትም ከእንግሊዝኛ መሠረታዊ ጽሑፍ እና እኔ በዚህ ጊዜ ልሰጥ ከምችለው የኮሪያኛ ትርጉም በስተቀር በብቸኝነት ወደ ቤንጋሊኛ፣ ጀርመንኛ እና የዋና መሬት ቻይንኛ ብቻ ተተርጉሟል፤ <a href="https://github.com/EthicalSource/contributor_covenant/pulls">ክፍት ያሉ የPR ዝርዝሮችን</a> ብንመለከት የትርጉም ረቂቆች እንደ PR የቀረቡ ቢሆንም እንኳ ገምጋሚ ስለሌለ የመጨረሻ ፈቃድ ያላገኙ ብዙ ቋንቋዎች አሉ። እንዲያውም 3.0 እትም ሳይሆን እስካሁን 1.4 እትም ላይ ያሉ ቋንቋዎችም ብዙ ናቸው። በማንኛውም ምክንያት ይህን ጽሑፍ የሚያነብ ከኮሪያኛ ውጭ ቋንቋ ተናጋሪ ካለ፣ <a href="https://github.com/EthicalSource/contributor_covenant?tab=contributing-ov-file#translators-and-native-speakers">መሳተፍ የሚያስፈልገው ሂደት እጅግ አስቸጋሪ ስላልሆነ</a> በሳምንቱ መጨረሻ ወይም ቢያንስ አንድ ቀን ጊዜ ሰጥቶ አበርክቶ ቢረዳ ለOES እና ለዚያ ቋንቋ ተጠቃሚዎች በእርግጥ ትልቅ እገዛ ይሆናል። እኔም እንደዚህ ባለ ትርጉም ስራ ላይ ያበረከትኩት ልምድ ይሁን ወይም ሙሉውን የስነ-ምግባር መመሪያ በጥልቅ እንደተነበብኩት ይህ የመጀመሪያዬ ጊዜ ነበር፤ ነገር ግን ጥቂት ሰዓታት ጊዜ ለመስጠት በቂ ዋጋ ያለው ስራ ነበር ብዬ አስባለሁ። ኮሪያ ከጠቅላላ ህዝብ ቁጥርዋ ጋር ሲነጻጸር GitHub ወዘተ ባሉ የኦፕን ሶርስ ማህበረሰቦች ውስጥ በንቃት የሚሰሩ ልማት ሰዎች ብዛት ከፍ ካለባቸው አገሮች አንዷ ነች፤ ስለዚህም በዚህ ጊዜ ተተርጉሞ የቀረበው የContributor Covenant 3.0 የስነ-ምግባር መመሪያ <a href="https://github.com/EthicalSource/contributor_covenant/pull/1590">የኮሪያኛ ትርጉም</a> ሌሎች ኮሪያውያንም በግምገማ እንዲሳተፉበት፣ እንዲሁም ከተቻለ በብዙ ቦታዎች በጥቅም እንዲውልና እንዲተገበር ብዙ ሰዎች ቢተባበሩበት ደስ ይለኛል።</p><p><a href="https://ethicalsource.dev/blog/contributor-covenant-3/">በOES የብሎግ ጽሑፍ</a> ውስጥ እንደተጠቀሰው የ<strong>ናታን ሽናይደር(Nathan Schneider)</strong> ፕሮፌሰር ቃል፣ Contributor Covenant ኃላፊነት ያለበትን እና ግልጽ የሆነ ማህበረሰብ ለመገንባት አስፈላጊ መሠረት እንደሚሰጥ ይሠራል፣ በተግባርም ግጭቶችን ለመፍታት አስተዋጽኦ አድርጓል። በልማድ ብዙ ጊዜ GitHub ወዘተ ላይ “Add a code of conduct” የሚለውን ቁልፍ በመጫን ቴምፕሌቱን በቀጥታ የሚለጥፉ ሁኔታዎች የተለመዱ ናቸው፤ ነገር ግን GitHub በራሱ የሚያቀርበው ቴምፕሌት በምን ምክንያት እንደሆነ አላውቅም 2.0 እትም ላይ ብቻ ቆሞ ቆይቷል። 3.0 እትም ከቀድሞው 2.0 እና 2.1 እትም ጋር ሲነጻጸር ትልቅ ለውጦችና ማሻሻያዎች አሉት፤ ስለዚህ ከተቻለ <a href="https://www.contributor-covenant.org/adopt/">ኦፊሴላዊ ገጹን</a> በመጠቀም የቅርብ እትም መቀበል እንዲመረጥ እንደ ምክር እጠቁማለሁ። ይዘቱ በእውነት እጅግ ረዥም አይደለምና፣ በዚያ ሂደት ውስጥ ቢያንስ አንድ ጊዜ ሙሉውን ጽሑፍ በቀስታ አንብበው ከሆነ ይበልጥ ትርጉም ያለው ይሆናል ብዬ አስባለሁ። ለContributor Covenant 3.0 የስነ-ምግባር መመሪያ እና በዚህ ጊዜ ላይ ለተሰራው <a href="https://github.com/EthicalSource/contributor_covenant/pull/1590">የኮሪያኛ ትርጉም</a> ብዙ ፍላጎት እንድታሳዩ ተስፋ አደርጋለሁ፤ በዚህ ላይ እቆማለሁ።</p>]]> </content> </entry> <entry><title xml:lang="am">የIR ማቴሪያሎችን እንዴት ማዘጋጀት ይቻላል (How to Prepare IR Materials)</title><link href="https://www.yunseo.kim/am/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/how-to-prepare-ir-materials/" rel="alternate" type="text/html" hreflang="am" /><published>2026-01-11T00:00:00+09:00</published> <updated>2026-01-11T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/how-to-prepare-ir-materials/</id> <author> <name>Yunseo Kim</name> </author> <category term="Startup" /> <category term="IR" /> <summary xml:lang="am">IR ማቴሪያል ምን እንደሆነ እና በተሳካ ሁኔታ ኢንቨስትመንት ለመሰብሰብ በጥሩ IR ማቴሪያሎች ውስጥ ምን መካተት እንዳለበት እንመለከታለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>IR ማቴሪያል ምን እንደሆነ እና በተሳካ ሁኔታ ኢንቨስትመንት ለመሰብሰብ በጥሩ IR ማቴሪያሎች ውስጥ ምን መካተት እንዳለበት እንመለከታለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="ir-ማቴሪያሎች-ምንድን-ናቸው">IR ማቴሪያሎች ምንድን ናቸው?</h2><p><strong>IR</strong> የ <strong>Investor Relations</strong> አጭር ስም ሲሆን፣ ኩባንያውን ለኢንቨስተሮች መግለጽ፣ ማስተዋወቅ፣ ግንኙነት መገንባት እና ኢንቨስትመንት ለመሳብ የሚያስፈልጉ ሁሉንም ሰነዶችና እንቅስቃሴዎች በሰፊው የሚያካትት ቃል ነው። IR ማቴሪያሎች ተብለው ሲጠሩ ብዙውን ጊዜ ኩባንያው ኢንቨስትመንት ለመሰብሰብ ለኢንቨስተሮች የሚያቀርባቸውን ሰነዶች ያመለክታሉ።</p><h2 id="በir-ማቴሪያሎች-ውስጥ-መካተት-ያለበት-ይዘት">በIR ማቴሪያሎች ውስጥ መካተት ያለበት ይዘት</h2><p>የIR ማቴሪያሎች ዋና ዓላማ ኢንቨስትመንት መሰብሰብ ስለሆነ፣ ከኢንቨስተሩ እይታ ይህ ኩባንያ ለምን መነሻ እንደሚገባው በማሳመን መቅረብ ያስፈልጋል። ስለዚህ የአገልግሎት ማጠቃለያ፣ የገበያ አካባቢ፣ የምርት/አገልግሎት ማብራሪያ፣ የተወዳዳሪ አካባቢ፣ ውጤቶች፣ የንግድ ሞዴል፣ የወደፊት ዕድገት እቅድ፣ የቡድን አዋቂነት ወዘተ የንግዱን አጠቃላይ ይዘት መካተት ይገባል።</p><ul><li><strong>ፒች ዴክ(Pitch Deck)</strong>:<ul><li><strong>አጭርና ኃይለኛ</strong> ሆኖ፣ ለሰፊ የሆኑ የሚችሉ ኢንቨስተሮች <strong>አዎንታዊ የመጀመሪያ ግምት</strong> ለመተው የተዘጋጀ<li>በመጀመሪያ ደረጃ የኢንቨስትመንት ማሰባሰብ ጊዜ ይጠቀሙበታል<li>10-15 ስላይዶች ያሉት ሲሆን፣ አጭርና በእይታ የተመረተ ማቴሪያል ላይ ያተኮረ ይሆናል</ul><li><strong>IR ዴክ(IR Deck)</strong>:<ul><li>የኩባንያውን <strong>ጥልቅ የፋይናንስ መረጃና የረጅም ጊዜ ስትራቴጂ</strong> ያቀርባል<li>አንደኛ ፍላጎት ማሳየት የጀመሩ፣ ውሳኔ ለማድረግ በቀረቡ ሙያዊ ኢንቨስተሮች ይሰጣል<li>ኢንቨስተሮች <strong>ይበልጥ ጥልቅ ግምገማና ፍርድ</strong> እንዲያደርጉ ያግዛል<li>20-30 ስላይዶች ያሉት ሲሆን፣ የበለጠ ዝርዝር <strong>የፋይናንስ እቅድ፣ የገበያ ትንተና፣ የቡድን አዋቂነት፣ የተወዳዳሪ ትንተና</strong> ወዘተ ያቀርባል</ul></ul><h3 id="ተልዕኮራዕይ-missionvision">ተልዕኮ/ራዕይ (Mission/Vision)</h3><ul><li>ኩባንያችን ሊያቀርብ የሚፈልገው ዋና እሴት ምንድን ነው?</ul><blockquote class="prompt-tip"><p>ይህ የኩባንያው ዋና መለያ ሊባል የሚችል ክፍል ስለሆነ፣ በIR ማቴሪያሎች መጀመሪያ ክፍል ላይ የኩባንያውን ተልዕኮና ራዕይ እያንዳንዱን በአንድ አረፍተ ነገር አጭር እና ግልጽ በሆነ መልኩ መግለጽ ጥሩ ነው።</p></blockquote><h3 id="የአገልግሎት-ማጠቃለያ">የአገልግሎት ማጠቃለያ</h3><h4 id="ችግር-problem">ችግር (Problem)</h4><ul><li>ይህ አገልግሎት ሊፈታው የሚፈልገው በገበያ ውስጥ ያለው ምን ችግር ነው?<li>ተጠቃሚዎች በዚህ ችግር ምን ያህል እየተቸገሩ ነው?<li>ይህ ችግር ለምን አስፈላጊ ነው?<li>ለችግሩ መፍትሔ ፍላጎት አለን? ዒላማው ማን ነው?</ul><h4 id="መፍትሔ-solution">መፍትሔ (Solution)</h4><ul><li>ከዚህ በፊት የተጠቀሰውን ችግር በተግባር እንዴት እንፈታዋለን?<li>ከነባር መንገዶች ጋር ሲነጻጸር ተጠቃሚዎችና መጨረሻ ተጠቃሚዎች የሚያገኙት ጥቅም ምንድን ነው?</ul><blockquote class="prompt-tip"><p>ኢንቨስተሮች ብዙ ጊዜ በዚህ መስክ ሙያዊ ባለሙያዎች አይሆኑም፣ ስለዚህ አገልግሎቱን ከገንቢ ሳይሆን ከተጠቃሚ እይታ መግለጽ ይሻላል፤ ቴክኒካዊ ዝርዝሮች ግን በኋላ ጥያቄ ቢመጣ በተናጠል ማብራራት ይቻላል።</p></blockquote><h3 id="የገበያ-መጠን-market-size">የገበያ መጠን (Market Size)</h3><p>የገበያ መጠንን በገንዘብ ቁጥር በቀጥታ ሲያቀርቡ፣ እንደ ሂሳብ ስሌት መንገድ ወይም እንደ ተለያዩ ተለዋዋጮች ውጤቱ በእጅጉ ሊለያይ ይችላል፣ እንዲሁም አስተያየት ልዩነት ሊነሳ የሚችል አደጋ እንዲሁም ከፍ ያለ ነው።<br /> ይልቁንም ሊኖሩ የሚችሉ የተጠቃሚ ብዛት፣ የግብይት ብዛት/ድግግሞሽ ያሉ ሌሎች መለኪያዎችን በማቅረብ የገበያ መጠኑን ይበልጥ ደህናና ውጤታማ መንገድ ማሳየት ይቻላል።</p><ul><li><strong>TAM(Total Addressable Market, አጠቃላይ ገበያ)</strong>: ሁሉንም ተወዳዳሪዎች በመተው በዓለም ገበያ 100% ድርሻ እንደሚያገኙ የሚገምት አስተሳሰብ ላይ የተመሠረተ፣ ምርቱን ወይም አገልግሎቱን በዓለም አቀፍ ደረጃ ሲያቀርቡ በሐሳብ ደረጃ ሊደረስበት የሚችለው ከፍተኛ የገበያ መጠን<li><strong>SAM(Service Available Market, ውጤታማ ገበያ)</strong>: የአካባቢ፣ የመሠረተ ልማት፣ የደንብ ገደቦችን በመያዝ በተግባር አገልግሎት ሊሰጥበት የሚችለው፣ በእውነትም ኩባንያችን የሚመለከተው ክልል ያለው የገበያ መጠን<li><strong>SOM(Service Obtainable Market, የገቢ ገበያ)</strong>: የተወዳዳሪ ሁኔታ፣ የኩባንያው ችሎታ፣ የማርኬቲንግ ስትራቴጂ ወዘተን ሲያስቡ፣ ከSAM ውስጥ በመጀመሪያ ደረጃ በተግባር ሊያገኙት የሚችሉት የገበያ መጠን</ul><blockquote class="prompt-tip"><p>የገበያ መጠንን ሲገመቱ ስለ አጠቃላይ ገበያ ወይም ስለ ውጤታማ ገበያ መጠን የሦስተኛ ወገን የገበያ ጥናት መረጃ በመጥቀስ ተወላጅ ቁጥሮችና መለኪያዎች ይቀርባሉ፤ ነገር ግን ለስታርትአፕ በቅርብ ጊዜ በእርግጥ አስፈላጊ የሆነውን የገቢ ገበያ መጠን ሲመጣ ግን “በዚህ ገበያ ስንት በመቶ ድርሻ ካገኘን ስንት የሽያጭ ገቢ እንደምንያገኝ” በሚል መንገድ መግለጽ የተለመደ ነው። እውነቱን ለመናገር፣ እኔም ንግድ ለመጀመር ስነሳ በመጀመሪያ ውስጣዊ የIR ሰነድ ረቂቄን እንዲህ ነበር ያዘጋጀሁት።</p><p>ነገር ግን ይህ መንገድ ያለው ችግር ከኢንቨስተሩ እይታ የገበያውን ስንት በመቶ እንደምትይዙ የሚለው እቅድ ለመታመን አስቸጋሪ መሆኑ ነው። አገልግሎት መልቀቅ ብቻ በቀላሉ የገበያ ድርሻ ማግኘት አያስችልም፣ በግልጽ መሠረት ሳይኖር በገበያው ውስጥ ያሉ ሁሉንም ተሳታፊዎች በዒላማ በማድረግ ስንት በመቶ ድርሻ እንደምትይዙ ማለት የማሳመን ኃይል ያነሰ ነው።</p><p>የታለመው አጠቃላይ ገበያና ውጤታማ ገበያ መጠን በቂ እንደሆነ እያሳዩ፣ በአንድ ጊዜ <strong>የመጀመሪያ የደንበኛ ቡድን(Immediate Market)</strong> እንዴት እንደምታዩት እና ከዚያ በኋላ የትኞቹን የደንበኛ ቡድኖች በደረጃ በደረጃ በመጨመር የገቢ ገበያውን እንደምታሳድጉ የሚያብራራ ሎጂክ ማቅረብ አስፈላጊ ነው።</p></blockquote><blockquote class="prompt-tip"><p><strong>የንግድ ጊዜ ምርጫ</strong></p><ul><li>በንግድ ውስጥ ጊዜ ምርጫ በጣም አስፈላጊ ነው<li>ለምን ይህ ንግድ አሁን ሊሳካ እንደሚችል እና ለምን አሁን መነሻ እንደሚገባ ለኢንቨስተሮች ማብራራት መቻል አለብዎት<li>የቴክኖሎጂ አቅም፣ የሰዎች ባህሪ ለውጥ፣ ማህበራዊ አቅጣጫ፣ የአካባቢ ለውጥ ወዘተን ጨምሮ ይህን ንግድ አሁን ለማስኬድ የሚያስማሙ ምክንያቶችን ማቅረብ አለብዎት</ul></blockquote><h3 id="የምርትአገልግሎት-ማብራሪያ-product">የምርት/አገልግሎት ማብራሪያ (Product)</h3><ul><li>የምርቱ/የአገልግሎቱ ዋና ባህሪያትና ተግባራት ምንድን ናቸው?<li>በተግባር እንዴት ይሰራል? ምሳሌዎች ምንድን ናቸው?</ul><h3 id="የንግድ-ሞዴል-business-model">የንግድ ሞዴል (Business Model)</h3><ul><li>ገንዘብ እንዴት እናመጣለን?<li>ገንዘብ የሚከፍለው ማን ነው? (መጨረሻ ተጠቃሚውና ገንዘብ የሚከፍለው ደንበኛ ሁልጊዜ አንድ አይሆኑም፣ ስለዚህ በእርግጥ ገቢ የሚያመነጨው ደንበኛ ማን እንደሆነ ግልጽ ማድረግ ያስፈልጋል)<li>የትኛውን ክፍል እናስከፍላለን? ዋጋ እንዴት እንወስናለን?</ul><h3 id="የተወዳዳሪ-አካባቢ-competition">የተወዳዳሪ አካባቢ (Competition)</h3><ul><li>ዋና ተወዳዳሪዎች ማን ናቸው?<li><strong>ከደንበኛ እይታ</strong> ሲታይ ከሌሎች ኩባንያዎች አገልግሎቶችና ምርቶች ጋር ሲነጻጸር የኩባንያችን አገልግሎትና ምርት በምን ይበልጣል? ምን ጥቅሞች አሉት?<li>ምንን እንደ ተወዳዳሪ አገልግሎት እንወስዳለን? እና ዋና ዒላማ የደንበኛ ቡድን ማን ነው?</ul><blockquote class="prompt-tip"><p>ተወዳዳሪዎችን በአግባቡ መተንተን ኢንቨስተሮች ፊት የገበያ ሁኔታውን በደንብ እንደምታውቁ በውጤታማ ሁኔታ ለማሳየት ያግዛል።</p></blockquote><h3 id="ውጤቶች-እና-የገበያ-ግባት-ስትራቴጂ-go-to-market-strategy">ውጤቶች እና የገበያ ግባት ስትራቴጂ (Go-to Market Strategy)</h3><ul><li>በንግዱ ስኬት ውስጥ ከሁሉ በላይ አስፈላጊ ዋና መለኪያ ምንድን ነው?<ul><li>e.g. የትዕዛዝ ብዛት፣ ወርሃዊ ንቁ ተጠቃሚዎች(MAU)፣ ወርሃዊ የግብይት መጠን ወዘተ</ul><li>በዚያ መለኪያ ላይ ተመስርቶ ምን ውጤቶች ተገኝተዋል?<li>የኩባንያው ዋና የማርኬቲንግ መንገዶችና ቻናሎች ምንድን ናቸው?<li>አዲስ ደንበኞችን ለማግኘት መንገዶችና ወጪያቸው ስንት ነው?<li>*<strong>የደንበኛ የሕይወት ዋጋ(LTV)</strong> ስንት ነው?</ul><blockquote class="prompt-info"><p>*<strong>የደንበኛ የሕይወት ዋጋ(Customer Lifetime Value, LTV)</strong>: አንድ ተጠቃሚ አገልግሎቱን በሙሉ የሚጠቀምበት ጊዜ ውስጥ በአጠቃላይ ምን ያህል ትርፍ እንደሚያመጣ በቁጥር የሚያሳይ መለኪያ ነው</p></blockquote><blockquote class="prompt-tip"><p>ከዋና መለኪያዎች ውጪ ያሉ አጋዥ መለኪያዎችን መተው ይሻላል።</p></blockquote><blockquote class="prompt-tip"><p><strong>እስካሁን ገቢ የሌለው በጣም መጀመሪያ ደረጃ ስታርትአፕ ከሆነ</strong></p><ul><li>ሊሰጥ የሚፈልገው አገልግሎት <strong>የትርፍ-ኪሳራ መጣጣኝ ነጥብ</strong> ያዘጋጁ እና ያቅርቡ<li>በዚህ ጊዜ ከገቢ ጋር የተያያዙ መለኪያዎችን አታጋኙ፤ ከጥንቃቄ እይታ በተግባራዊ ሁኔታ ያቀርቡ<li>ገቢ ለመጀመሪያ ጊዜ በሚፈጠርበት ዓመት የገቢ ሲናሪዮ ያቅርቡ፣ እና ለሚቀጥሉት አንዳንድ ዓመታት የሽያጭ እቅድ በመጨመር በእውነት ቀጣይ ዕድገት ማሳየት እንደሚችሉ እምነት መስጠት ይሻላል<ul><li>1 ዓመት አጭር ጊዜ ትንበያ<li>3 ዓመት መካከለኛ ጊዜ ትንበያ<li>5 ዓመት ረጅም ጊዜ ትንበያ</ul><li>ይዘቱ በአንድ እይታ እንዲታይ ግራፎችንና ሰንጠረዦችን በንቃት ይጠቀሙ<li><strong>የሐሳብ ማረጋገጫ ስላይድ</strong> በመካተት ዋና መለኪያዎችንና የገቢ ሲናሪዮዎችን በምን ምክንያት እንደተወሰኑ በማሳመን መልኩ ያብራሩ እና መሠረቱን ያጠናክሩ<ul><li>ብዙ ሙከራዎችና የሐሳብ ማረጋገጫ ሂደቶች በኩል የተጠናከረ የተጠበቀ የገቢ ሲናሪዮ መሠረት መዘጋጀት አለበት</ul></ul></blockquote><h3 id="የቡድን-አዋቂነት-the-team">የቡድን አዋቂነት (The Team)</h3><ul><li>ሁሉንም ከማስተዋወቅ ይልቅ፣ ሥራ አስኪያጁን ጨምሮ ዋና ሚና የሚያከናውኑ ቁልፍ አባላትን በመምረጥ ማቅረብ<li>የሥራ ልምድና ችሎታዎችን 2-3 ዋና ነጥቦች ያህል በሎጎ ወዘተ በመጠቀም እንዲነበብ ቀላል በሆነ መልኩ ማቅረብ<li>ቁልፍ ሚና የተጫወቱ ወይም እየተጫወቱ ያሉ ኢንቨስተሮች ወይም አማካሪዎች ካሉ እነሱንም አብሮ ማካተት ጥሩ ነው</ul><h3 id="የወደፊት-ዕድገት-እቅድ-milestones">የወደፊት ዕድገት እቅድ (Milestones)</h3><ul><li>በጊዜ እና በደረጃ መሠረት ሊደረስባቸው የሚፈለጉ ግቦችን ማቅረብ<li>ቀጣዩ የኢንቨስትመንት ደረጃ በፊት የሚደረሱ ግቦችን መወሰን የተለመደ ነው (seed ከሆነ ከSeries A በፊት፣ Series A ከሆነ ከSeries B በፊት)<li>የሚፈለገውን የኢንቨስትመንት መጠንና የአጠቃቀም እቅድ ማቅረብ<li>በዚህ ጊዜ የክፍለ ጊዜ መለያየትን ከግማሽ ዓመት በላይ እጅግ ረጅም ከማድረግ ይልቅ፣ በ2 ወር ያህል ክፍተቶች መክፈል ይሻላል</ul><h3 id="የፋይናንስ-እቅድ-financials">የፋይናንስ እቅድ (Financials)</h3><p>የIR ዴክ(IR Deck) ከሆነ የፋይናንስ እቅድ መካተት አለበት።</p><ul><li>ለሚቀጥሉት 3-5 ዓመታት የፋይናንስ እቅድ ሰንጠረዥ<li><strong>Unit Economics</strong>: በአንድ ደንበኛ ወይም በአንድ ክፍል መሠረት የንግዱ ገቢና ወጪ<li><strong>የወጪ መቃጠል ፍጥነት(Burn rate)</strong>: በአዲስ ኩባንያዎች ውስጥ በጥሬ ገንዘብ የሚወጡ የመጀመሪያ ንግድ ወጪዎች፣ የምርምርና ልማት ወጪዎች፣ እና ሌሎች ወጪዎች ፍጥነት<li>አጠቃላይ ገቢና ወጪ<li>EBITDA ወይም የጥሬ ገንዘብ ፍሰት ሰንጠረዥ ወዘተ</ul><blockquote class="prompt-warning"><ul><li>እጅግ ከእውነታ የራቀ የፋይናንስ እቅድ እንዳይቀርብ ጥንቃቄ ማድረግ አለበት<li>የተጠበቀ ሽያጭ ገቢ ከመጠን በላይ ሲገምቱ እና የሚያስፈልጉ ወጪዎችን ዝቅ አድርገው ሲገምቱ ብዙ ጊዜ ይታያል፣ ስለዚህ የተጠበቀ የሽያጭ መጠን ሲወሰን በጥንቃቄ መሄድ አለበት<li>የሚያስፈልጉ ወጪዎችን የምርት/አገልግሎት ልማት ወጪ፣ የአስተዳደር ወጪ ወዘተን በመያዝ በተቻለ መጠን ትክክለኛ በሆነ ሁኔታ መገመት አለበት</ul></blockquote><h2 id="በኢንቨስትመንት-ደረጃ-መሠረት-ማጠናከር-ያለባቸው-ነጥቦች">በኢንቨስትመንት ደረጃ መሠረት ማጠናከር ያለባቸው ነጥቦች</h2><h3 id="seed">Seed</h3><ul><li>MVP ማበልጸግ፣ የገበያ ምላሽ ማረጋገጥ እና የንግድ ሞዴሉ ተገቢነት ማረጋገጥ የሚደረግበት ደረጃ<li>የመጀመሪያ ሐሳብና የንግድ ሞዴል ማረጋገጫ ውጤቶች፣ የMVP ሙከራ ውጤቶችና ከእነሱ የመጣ ገቢ ላይ በተለይ ትኩረት ማድረግ አለበት</ul><h3 id="pre-a">Pre-A</h3><ul><li>የዕድገት አቅምን ማረጋገጥ እና ለምርት ልማት፣ ለማርኬቲንግ፣ ለሰው ቅጥር ወዘተ የሚያስፈልግ ተጨማሪ ገንዘብ ማሰባሰብ የሚጠይቅ ደረጃ<li>የንግዱ ዋና መለኪያዎች ምንድን እንደሆኑ፣ በምን እንቅስቃሴዎች ስንት ያህል በጥሩ ሁኔታ እያደገ እንደሆነ፣ እና የወደፊት ዕድገት እድል ማብራሪያ ያስፈልጋል</ul><h3 id="ሲሪዝa">ሲሪዝA</h3><ul><li>በተግባር እያደገ የኩባንያ ዋጋን የሚያሳድግ ደረጃ<li>በዚህ ወቅት የሐሳብ ማረጋገጫ ሂደት መጠናቀቅ ነበረበት ስለሆነ፣ በንግድ ውጤቶች ላይ ያሉ መጠናዊ ውጤቶች በመጠቀም የኢንቨስተር እምነት ማግኘት አለበት</ul><h2 id="ጥቂት-ጠቃሚ-ምክሮች">ጥቂት ጠቃሚ ምክሮች</h2><ul><li>የመጀመሪያዎቹ አምስት ስላይዶች በተለይ በጥንቃቄ ማዘጋጀት አለባቸው፣ እንዲሁም አዎንታዊ የመጀመሪያ ግምት እንዲተው ማድረግ አለባቸው<li>የመጀመሪያውን ገጽ ተልዕኮ/ራዕይ በመጨረሻው ገጽ ላይ እንደገና መጨመር ጥሩ ነው<li>ሁሉንም ይዘት ዋና ነጥቡን በመጀመሪያ በማቅረብ ይግለጹ<li>የኢንቨስትመንት ዒላማው <strong>ኩባንያው</strong> ስለሆነ፣ በIR ማቴሪያሎች ውስጥም ከአገልግሎት ስም ይልቅ የኩባንያ ስም ቀዳሚ መሆን አለበት<li>IR ማቴሪያሎችን የሚያነቡ የሚችሉ ኢንቨስተሮች ከዚህ ኢንዱስትሪ የሚመጡ ሳይሆኑ ይችላሉ፣ ስለዚህ በተቻለ መጠን ቀላል ቃላት በመጠቀም ማብራራት እና ሙያዊ ቃላት መጠቀም ካስፈለገ ትርጓሜ መጨመር አለበት<li>የገበያ ችግርንና መፍትሔን አትቀላቀሉ፤ በተለያዩ ክፍሎች ያቅርቡ<li>ጽሑፍ በቁልፍ ቃላት ላይ ያተኮር፣ ምስል ሲጠቀሙ ግን የስክሪንሾት ምስሎችን ከመጠቀም ይቆጠቡ እንዲሁም ንባብ ቀላል ያድርጉ<li>ትክክለኛና ግልጽ የሆኑ ቁጥሮችን በሰንጠረዥ ወይም በግራፍ ያቅርቡ<li>የቡድን አባላት ማስተዋወቂያ፣ የሚፈለገው የኢንቨስትመንት መጠን እና የአጠቃቀም እቅድ እንዳይረሱ ይጠንቀቁ<li>የኢንቨስትመንት ገንዘብ መመለሻ ስትራቴጂ አብሮ ማቅረብ ጥሩ ነው<li>የባለአክሲዮኖች አቀራረብ በምን መጠን እንደሚከፈል እቅድ ፍጹም ባይሆንም በአጭሩ ቢሆንም መጠቀም አለበት<li>በዋናው የሰነድ ክፍል ውስጥ መረጃ በጣም ብዙ አታስገቡ፤ ካስፈለገ በተለየ አባሪ ማቴሪያል ይከፍሉት<li>በመጨረሻው ስላይድ ላይ የመገናኛ መረጃ (ኢሜይል፣ ስልክ ቁጥር፣ ስም) ይጻፉ<li>ፎንትም በጣም አስፈላጊ ስለሆነ <a href="https://cactus.tistory.com/306">Pretendard</a> ያሉ ለንባብ ቀላል የሆኑ ፎንቶችን ይጠቀሙ፣ እና ፎንቱ እንዳይበላሽ በPDF መልክ ያዘጋጁ</ul><h2 id="የማጣቀሻ-ማቴሪያሎች">የማጣቀሻ ማቴሪያሎች</h2><h3 id="የኩባንያ-ማሳወቂያ-ቻናል-kind">የኩባንያ ማሳወቂያ ቻናል KIND</h3><p><a href="https://kind.krx.co.kr/corpgeneral/irschedule.do?method=searchIRScheduleMain&amp;gubun=iRMaterials">https://kind.krx.co.kr/corpgeneral/irschedule.do?method=searchIRScheduleMain&amp;gubun=iRMaterials</a></p><ul><li>በኮሪያ ልውውጥ ገበያ የሚተዳደር የኩባንያ ማሳወቂያ ቻናል<li>በKOSPI, KOSDAQ, KONEX ላይ የተዘረዘሩ ኩባንያዎች የማሳወቂያ መረጃ ይሰጣል<li>የተዘረዘሩ ኩባንያዎች የIR ማቴሪያሎችን ማየት ስለሚቻል፣ በቅርቡ የተሰሩ ሌሎች IR ማቴሪያሎች እንዴት እንደተዋቀሩ ለማየት ይረዳል</ul>]]> </content> </entry> <entry><title xml:lang="am">የክሪፕቶግራፊ መሠረታዊ ጽንሰ-ሐሳቦች</title><link href="https://www.yunseo.kim/am/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/basic-concepts-of-cryptography/" rel="alternate" type="text/html" hreflang="am" /><published>2025-11-26T00:00:00+09:00</published> <updated>2025-11-26T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/basic-concepts-of-cryptography/</id> <author> <name>Yunseo Kim</name> </author> <category term="Dev" /> <category term="Cryptography" /> <summary xml:lang="am">ክሪፕቶግራፊ ምን እንደሆነ በመረዳት፣ ሲሜትሪክ ክሪፕቶግራፊ፣ አሲሜትሪክ ክሪፕቶግራፊ፣ የኬርክሆፍስ መርህ ያሉ መሠረታዊ ጽንሰ-ሐሳቦችን እንመለከታለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>ክሪፕቶግራፊ ምን እንደሆነ በመረዳት፣ ሲሜትሪክ ክሪፕቶግራፊ፣ አሲሜትሪክ ክሪፕቶግራፊ፣ የኬርክሆፍስ መርህ ያሉ መሠረታዊ ጽንሰ-ሐሳቦችን እንመለከታለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="ክሪፕቶግራፊ-ምንድን-ነው">ክሪፕቶግራፊ ምንድን ነው</h2><p><strong>ክሪፕቶግራፊ(cryptography)</strong> በመሠረቱ፣ <strong>ፕሮቶኮል(protocol)</strong>ን ከጠላታዊ ተግባራት ለመከላከል የሚያተኩር የሳይንስ ንዑስ ዘርፍ ነው።</p><p>እዚህ ላይ ፕሮቶኮል ማለት አንድ ወይም ከአንድ በላይ ሰዎች አንድ ነገር ለማሳካት መከተል ያለባቸው የደረጃዎች ዝርዝር ሲሆን፣ ለምሳሌ በመሣሪያዎች መካከል ክሊፕቦርድ መጋራት እንፈልጋለን ብንል የሚከተለው ለክሊፕቦርድ መጋራት ፕሮቶኮል ነው።</p><ol><li>በአንዱ መሣሪያ ላይ በክሊፕቦርድ ውስጥ ለውጥ ሲኖር፣ ያንን የክሊፕቦርድ ይዘት ቅጂ በማድረግ ወደ ሰርቨር ይላካል።<li>ሰርቨሩ በተጋራው ክሊፕቦርድ ላይ ለውጥ እንደተፈጠረ ለቀሩት መሣሪያዎች ያሳውቃል።<li>ቀሪዎቹ መሣሪያዎች የተጋራውን የክሊፕቦርድ ይዘት ከሰርቨሩ ያወርዳሉ።</ol><p>ነገር ግን ይህ ጥሩ ፕሮቶኮል አይደለም፣ ምክንያቱም የክሊፕቦርድ ይዘቱን በግልጽ ጽሑፍ ቅጽ ወደ ሰርቨር እንደሚላክ እና እንደሚወርድ ከሆነ በመገናኛ ሂደቱ መካከል አንድ ሰው ወይም ሰርቨሩ ራሱ የክሊፕቦርድ ይዘቱን ሊሰርቅ ሊያይ ይችላል። እዚህ ላይ የክሊፕቦርድ ይዘቱን ለመሰለይ የሚሞክር ጠላት መኖሩን በመገመት መከላከል የክሪፕቶግራፊ ሚና ነው።</p><h2 id="ሲሜትሪክ-ክሪፕቶግራፊ">ሲሜትሪክ ክሪፕቶግራፊ</h2><h3 id="ሲሜትሪክ-ምስጠራ">ሲሜትሪክ ምስጠራ</h3><blockquote><p>አሊስ(Alice) ለቦብ(Bob) ደብዳቤ መላክ ያለባት ሁኔታ እንዳለ እንያስብ። አሊስ ለቦብ ሚስጥራዊ መረጃ ለማስተላለፍ ደብዳቤውን እንዲወስድ እና እንዲያደርስ ለመልእክተኛ(messenger) ትእዛዝ ትሰጣለች። ነገር ግን አሊስ መልእክተኛውን ሙሉ በሙሉ አትታመነውም፣ እና እየተላለፈ ያለው መልእክት ደብዳቤውን ከሚወስደው መልእክተኛ ጨምሮ ከቦብ በስተቀር ለማንም ሰው ሚስጥር እንዲቆይ ትፈልጋለች።</p></blockquote><p>እንዲህ ያለ ሁኔታ ለመጠቀም ከብዙ ዘመን በፊት የተፈጠረው የክሪፕቶግራፊ አልጎርይዝም የሚባለው <strong>ሲሜትሪክ የምስጠራ አልጎርይዝም(symmetric encryption algorithm)</strong> ነው።</p><blockquote class="prompt-info"><p><strong>ፕሪሚቲቭ(primitive)</strong><br /> ፕሪሚቲቭ(primitive) የሚለው ቃል በመደበኛ ትርጉሙ ‘መሠረታዊ’, ‘ቀዳማዊ ነገር’ ማለት ነው። ነገር ግን በክሪፕቶግራፊም ይህ ፕሪሚቲቭ የሚለው ቃል ብዙ ጊዜ ይጠቀማል፣ እዚህ ላይ ፕሪሚቲቭ ማለት የክሪፕቶግራፊ ስርዓትን የሚያቀናብሩ ትንሹ የሆኑ ተግባሮች ወይም አልጎርይዝሞች ማለት ነው። ‘መሠረታዊ አካል’, ‘መሠረታዊ ሎጂክ’ እንደሚለው ማስተዋል ይቻላል።</p></blockquote><p>የሚከተሉትን ሁለት ተግባሮች የሚሰጥ አንድ ፕሪሚቲቭ እንዳለ እንመልከት።</p><ul><li><code class="language-plaintext highlighter-rouge">ENCRYPT</code>: <strong>ሚስጥራዊ ቁልፍ(secret key)</strong>ን(ብዙ ጊዜ ትልቅ ቁጥር) እና <strong>መልእክት(message)</strong>ን እንደ ግቤት በመቀበል፣ ተከታታይ የቁጥር ሕብረትን እንደ የተመሰጠረ መልእክት ይወጣል<li><code class="language-plaintext highlighter-rouge">DECRYPT</code>: የ<code class="language-plaintext highlighter-rouge">ENCRYPT</code> ተቃራኒ ተግባር ሲሆን፣ ተመሳሳይ ሚስጥራዊ ቁልፍ እና የተመሰጠረ መልእክትን እንደ ግቤት በመቀበል ዋናውን መልእክት ይወጣል</ul><p>እንዲህ ያለ የምስጠራ ፕሪሚቲቭ በመጠቀም መልእክተኛውን ጨምሮ ሶስተኛ ወገኖች የአሊስን መልእክት እንዳያነቡ ለመደበቅ፣ መጀመሪያ አሊስ እና ቦብ ቀድሞ በመገናኘት የትኛውን ሚስጥራዊ ቁልፍ እንደሚጠቀሙ መወሰን አለባቸው። ከዚያ በኋላ አሊስ <code class="language-plaintext highlighter-rouge">ENCRYPT</code> ተግባሩን በመጠቀም በተስማሙበት ሚስጥራዊ ቁልፍ መልእክቷን ማመስጠር ትችላለች፣ እና ይህን የተመሰጠረ መልእክት በመልእክተኛው አማካኝነት ለቦብ ታደርሳለች። ከዚያም ቦብ ተመሳሳይ ሚስጥራዊ ቁልፍን በመጠቀም <code class="language-plaintext highlighter-rouge">DECRYPT</code> ተግባሩ አማካኝነት ዋናውን መልእክት ያገኛል።</p><p>እንዲህ በሚስጥራዊ ቁልፍ ዒላማውን ማመስጠር እና በውጫዊ እይታ ከማይረባ ድምፅ ጋር ለመለየት የማይቻል ማድረግ በክሪፕቶግራፊ ውስጥ ፕሮቶኮሎችን ለመጠበቅ የተለመደ ዘዴ ነው።</p><p>ሲሜትሪክ ምስጠራ የ<strong>ሲሜትሪክ ክሪፕቶግራፊ(symmetric cryptography)</strong> ወይም <strong>ሚስጥራዊ ቁልፍ ክሪፕቶግራፊ(secret key cryptography)</strong> ተብሎ በሚጠራ ትልቅ የክሪፕቶግራፊ አልጎርይዝሞች ምድብ ውስጥ ይገባል፣ እና እንደ ሁኔታው ከአንድ በላይ ቁልፎች ሊኖሩ ይችላሉ።</p><h2 id="የኬርክሆፍስ-መርህ">የኬርክሆፍስ መርህ</h2><p>ዛሬ እኛ ከወረቀት ደብዳቤ እጅግ የበለጠ ኃይለኛ የሆኑ ኮምፒውተርና ኢንተርኔት የሚባሉ የመገናኛ መንገዶችን በመጠቀም በቅርብ ወይም እስከ ቅጽበታዊ ጊዜ ድረስ መግባባት እንችላለን። ነገር ግን ይህን በሌላ አገላለጽ ማለት ክፉ አላማ ያላቸው መልእክተኞችም ከዚህ በላይ ኃይለኛ ሆነዋል ማለት ነው፤ እነሱ ካፌ ወይም ተመሳሳይ ያልተጠበቁ የህዝብ Wi‑Fi ሊሆኑ ይችላሉ፣ ወይም የመገናኛ ኩባንያዎች(ISP)ን ጨምሮ ኢንተርኔቱን የሚያቀናብሩ እና መልእክቶችን የሚያስተላልፉ የተለያዩ የመገናኛ መሳሪያዎችና ሰርቨሮች፣ የመንግስት ተቋማት፣ እንዲሁም አልጎርይዝሙን የሚያስኬድ የራስዎ መሣሪያ ውስጥ እንኳ ሊገኙ ይችላሉ። ጠላቶች ብዙ መልእክቶችን በቅጽበት ማየት ይችላሉ፣ እና ሰዎች ሳያስተውሉ መልእክቶችን በናኖ ሰከንድ ደረጃ ሊቀይሩ፣ ሊያዳምጡ ወይም ሊሰናክሉ ይችላሉ።</p><p>ክሪፕቶግራፊ በረጅም የሙከራና የስህተት ሂደት ውስጥ አስተማማኝ ደህንነት ለማግኘት የወጣ አንድ ታላቅ መርህ አለ፤ <u>ፕሪሚቲቮች በግልጽ ሁኔታ ለትንተና መቀረብ አለባቸው</u> የሚለው ነው። ከዚህ ጋር ተቃራኒ የሆነው ዘዴ <strong>በግልጽ አለመሆን ላይ የተመሰረተ ደህንነት(security by obscurity)</strong> ሊባል ይችላል፣ እና ገደቦቹ ግልጽ ስለሆኑ ዛሬ ተተውቷል።</p><p>ይህ ታላቅ መርህ በ11883 ዓመት በኔዘርላንድስ የቋንቋ ምሁርና ክሪፕቶግራፈር የነበረው ኦጉስት ኬርክሆፍስ(Auguste Kerckhoffs) ለመጀመሪያ ጊዜ የቀየረው ሲሆን፣ <strong>የኬርክሆፍስ መርህ(Kerckhoffs’s principle)</strong> ተብሎ ይጠራል። ተመሳሳይ መርህን የአሜሪካ የሂሳብ ምሁር፣ የኮምፒውተር ሳይንስ ምሁር፣ ክሪፕቶግራፈር እና የመረጃ ንድፈ ሐሳብ አባት የሆነው ክሎድ ሻኖን(Claude Shannon) “ጠላት ስርዓቱን ያውቃል(The enemy knows the system)” በማለት፣ ማለትም “ማንኛውንም ስርዓት ሲነድፉ ጠላት ያንን ስርዓት እንደሚያውቀው መገመት አለብዎት” ብሎ ገልጿል፣ ይህም <strong>የሻኖን ንግግር(Shannon’s maxim)</strong> ተብሎ ይጠራል።</p><p>የክሪፕቶ ስርዓት ደህንነት በቁልፉ ሚስጥራዊነት ላይ ብቻ መመስረት አለበት፣ እና የክሪፕቶ ስርዓቱ ራሱ ቢታወቅም ችግር መፍጠር የለበትም፣ እንዲሁም በAES ምሳሌ እንደሚታየው ብዙ <strong>ክሪፕቶ ተንታኞች(cryptanalyst)</strong> ሊያረጋግጡት እንዲችሉ በንቃት ሊገለጥ ይገባል። ሚስጥር ሁልጊዜ የመፈሳቱ አደጋ አለው፣ ስለዚህ እሱ የሚችል የውድቀት ነጥብ ነው፤ ስለዚህ ሚስጥር ሆኖ መቆየት ያለበት ክፍል ትንሽ እየሆነ ሄደ በመጠኑ ለመከላከያ በተሻለ ሁኔታ ይጠቅማል። እንደ ክሪፕቶ ስርዓት ያለ ትልቅና ውስብስብ ስርዓትን በሙሉ ለረጅም ጊዜ ሚስጥር አድርጎ ማቆየት በጣም ከባድ ነው፣ ነገር ግን ቁልፉን ብቻ ሚስጥር አድርጎ ማቆየት አንፃራዊ ቀላል ነው። ከዚህ በላይ ሚስጥሩ ቢፈስም እንኳ፣ ሙሉ የክሪፕቶ ስርዓትን ከመቀየር ይልቅ የፈሰሰውን ቁልፍ በአዲስ ቁልፍ መቀየር እጅግ ቀላል ነው።</p><h2 id="አሲሜትሪክ-ክሪፕቶግራፊ">አሲሜትሪክ ክሪፕቶግራፊ</h2><p>ብዙ ፕሮቶኮሎች በእውነት በሲሜትሪክ ክሪፕቶግራፊ ላይ ተመስርተው ይሰራሉ፣ ነገር ግን ይህ ዘዴ ቁልፉን ለመወሰን ሁለቱም ተሳታፊዎች ቢያንስ አንድ ጊዜ ቀድሞ በተናጠል መገናኘት እንዳለባቸው ይገምታል። ስለዚህ ቁልፉን እንዴት እንደሚወስኑ እና በደህና እንዴት እንደሚጋሩ ችግር ይፈጠራል፣ ይህንንም <strong>ቁልፍ ስርጭት(key distribution)</strong> ይላሉ። የቁልፍ ስርጭት ችግር ለረጅም ጊዜ አስቸጋሪ ጉዳይ ነበር፣ እና በ11970ዎቹ መጨረሻ <strong>አሲሜትሪክ ክሪፕቶግራፊ(asymmetric cryptography)</strong> ወይም <strong>የሕዝብ ቁልፍ ክሪፕቶግራፊ(public key cryptography)</strong> ተብሎ የሚጠራ የክሪፕቶግራፊ አልጎርይዝም ሲፈጠር ብቻ ተፈታ።</p><p>የአሲሜትሪክ ክሪፕቶግራፊ ዋና ዋና ፕሪሚቲቮች <strong>ቁልፍ ልውውጥ(key exchange)</strong>፣ <strong>አሲሜትሪክ ምስጠራ(asymmetric encryption)</strong>፣ <strong>ዲጂታል ፊርማ(digital signature)</strong> ናቸው።</p><h3 id="ቁልፍ-ልውውጥ">ቁልፍ ልውውጥ</h3><p><strong>ቁልፍ ልውውጥ</strong> በአጠቃላይ እንዲህ ይሰራል።</p><ol><li>አሊስ እና ቦብ አንድ የመለኪያ ስብስብ $G$ በጋራ ለመጠቀም ይስማማሉ<li>አሊስ እና ቦብ እያንዳንዳቸው የሚጠቀሙትን <strong>ሚስጥራዊ ቁልፍ(private key)</strong> $a, b$ ይወስናሉ<li>አሊስ እና ቦብ መጀመሪያ ለመጠቀም በተስማሙበት የጋራ መለኪያ $G$ ላይ የራሳቸውን ሚስጥራዊ ቁልፎች $a$, $b$ በማጣመር <strong>የሕዝብ ቁልፍ(public key)</strong> $A = f(G,a)$, $B = f(G,b)$ ያስላሉ፣ ከዚያም እነዚህን በግልጽ ያጋራሉ<li>አሊስ የቦብን የሕዝብ ቁልፍ $B = f(G,b)$ እና የራሷን ሚስጥራዊ ቁልፍ $a$ በመጠቀም $f(B,a) = f(f(G,b),a)$ ታስላለች፣ ቦብም በተመሳሳይ የአሊስን የሕዝብ ቁልፍ $A = f(G,a)$ እና የራሱን ሚስጥራዊ ቁልፍ $b$ በመጠቀም $f(A,b) = f(f(G,a),b)$ ያስላል<li>እዚህ $f(f(G,a),b) = f(f(G,b),a)$ የሚሆን ባህሪ ያለው ተስማሚ $f$ ከተጠቀሙ፣ በመጨረሻ አሊስ እና ቦብ አንድ ዓይነት ሚስጥር ይጋራሉ፣ ሶስተኛ ወገንም $G$ እና የሕዝብ ቁልፎች $A = f(G,a)$, $B = f(G,b)$ን ቢያውቅም በዚህ ብቻ $f(A,b)$ን ማወቅ አይችልም ስለዚህ ሚስጥሩ ይጠበቃል</ol><p>ብዙ ጊዜ እንዲህ የተጋራው ሚስጥር ለወደፊት ሌሎች መልእክቶችን ለመለዋወጥ <a href="#ሲሜትሪክ-ምስጠራ">ሲሜትሪክ ምስጠራ</a> ሚስጥራዊ ቁልፍ ሆኖ ይጠቀማል።</p><p>ለመጀመሪያ ጊዜ የታተመው እና እጅግ የታወቀው የቁልፍ ልውውጥ አልጎርይዝም በፈጣሪዎቹ ሁለት ሰዎች የቤተሰብ ስም ዲፊ(Diffie) እና ሄልማን(Hellman) የተሰየመው የዲፊ-ሄልማን ቁልፍ ልውውጥ አልጎርይዝም ነው።</p><p>ነገር ግን የዲፊ-ሄልማን ቁልፍ ልውውጥም ገደቦች አሉት። አጥቂ በየሕዝብ ቁልፍ ልውውጥ ደረጃ ላይ የሕዝብ ቁልፎች $A = f(G,a)$, $B = f(G,b)$ን መካከል በመያዝ በራሱ ቁልፍ $M = f(G,m)$ ቀይሮ ለአሊስ እና ለቦብ የሚላክበትን ሁኔታ እንያስብ። በዚህ ጊዜ አሊስ እና አጥቂው የሐሰት ሚስጥር $f(M, a) = f(A, m)$ ይጋራሉ፣ ቦብ እና አጥቂውም ሌላ የሐሰት ሚስጥር $f(M, b) = f(B, m)$ ይጋራሉ። እንዲህ ከሆነ አጥቂው ለአሊስ ፊት ቦብ መስሎ፣ ለቦብ ፊት ደግሞ አሊስ መስሎ መታየት ይችላል። እንዲህ ያለ ሁኔታ ሲፈጠር <u><strong>መካከለኛ ሰው(man-in-the-middle, MITM)</strong> ፕሮቶኮሉን በስኬት ጥቃት አድርጎበታል</u> ተብሎ ይባላል። በዚህ ምክንያት ቁልፍ ልውውጥ የመተማመን ችግርን ሙሉ በሙሉ አያስወግድም፤ ግን ተሳታፊዎች ብዙ ሲሆኑ ሂደቱን ለማቀላጠፍ ይረዳል።</p><h3 id="አሲሜትሪክ-ምስጠራ">አሲሜትሪክ ምስጠራ</h3><p>የዲፊ-ሄልማን ቁልፍ ልውውጥ አልጎርይዝም ከተፈጠረ በኋላ በፍጥነት ተከታይ ፈጠራ ተደረገ፣ ይህም በፈጣሪዎቹ ሮናልድ ሪቨስት(Ronald Rivest)፣ አዲ ሻሚር(Adi Shamir)፣ ሌነርድ አድልማን(Leonard Adleman) የቤተሰብ ስም የተሰየመው <strong>RSA አልጎርይዝም(RSA algorithm)</strong> ነው። RSA ሁለት ፕሪሚቲቮችን፣ የሕዝብ ቁልፍ ምስጠራ(አሲሜትሪክ ምስጠራ) እና ዲጂታል ፊርማን ያካትታል፣ ሁለቱም የአሲሜትሪክ ክሪፕቶግራፊ ክፍሎች ናቸው።</p><p><strong>አሲሜትሪክ ምስጠራ</strong> ሲመጣ፣ ሚስጥራዊነትን ለማረጋገጥ መልእክትን ማመስጠር የሚለው መሠረታዊ ዓላማ ከ<a href="#ሲሜትሪክ-ምስጠራ">ሲሜትሪክ ምስጠራ</a> ጋር ተመሳሳይ ነው። ነገር ግን ተመሳሳይ ሲሜትሪክ ቁልፍን ለምስጠራና ለፍቺ ሁለቱም የሚጠቀም ሲሜትሪክ ምስጠራ ከሚለየው በተቃራኒ፣ አሲሜትሪክ ምስጠራ የሚከተሉትን ባህሪያት አሉት።</p><ul><li>በሁለት ዓይነት ቁልፎች፣ የሕዝብ ቁልፍ እና ሚስጥራዊ ቁልፍ ይሰራል<li>ማንም በየሕዝብ ቁልፉ ማመስጠር ይችላል፣ ነገር ግን ፍቺ የሚቻለው ሚስጥራዊ ቁልፉን ባለው ሰው ብቻ ነው</ul><ol><li>ማንም ሰው መልእክት ውስጡ አስገብቶ መቆለፍ የሚችልበት፣ ነገር ግን አንዴ ከተቆለፈ በኋላ ቦብ ባለው ቁልፍ(ሚስጥራዊ ቁልፍ) ብቻ ሊከፈት የሚችል ክፍት ሣጥን(የሕዝብ ቁልፍ) አለ<li>አሊስ የምታስተላልፈውን መልእክት በሣጥኑ ውስጥ አስገብታ ከቆለፈች በኋላ(ከመሰጠረች በኋላ) ለቦብ ታደርሰዋለች<li>ቦብ የተቆለፈውን ሣጥን(የተመሰጠረ መልእክት) ከተቀበለ በኋላ፣ በራሱ ያለውን ቁልፍ(ሚስጥራዊ ቁልፍ) በመጠቀም ሣጥኑን ይከፍታል እና መልእክቱን ያወጣል(ፍቺ ያደርጋል)</ol><h3 id="ዲጂታል-ፊርማ">ዲጂታል ፊርማ</h3><p>RSA ከአሲሜትሪክ ምስጠራ በተጨማሪ <strong>ዲጂታል ፊርማ</strong>ም ይሰጣል፣ እና ይህ የዲጂታል ፊርማ ፕሪሚቲቭ በአሊስና በቦብ መካከል መተማመንን ለመገንባት እጅግ ትልቅ እገዛ አድርጓል። መልእክት ላይ ሲፈርሙ የራሳቸውን ሚስጥራዊ ቁልፍ ይጠቀማሉ፣ ሌሎች ሰዎች ደግሞ የዚያን ፊርማ እውነተኛነት ለመረጋገጥ የተፈረመውን መልእክት፣ ፊርማውን፣ እና የፈራሚውን የሕዝብ ቁልፍ በመጠቀም ያረጋግጣሉ።</p><h2 id="የክሪፕቶግራፊ-ጥቅም">የክሪፕቶግራፊ ጥቅም</h2><p>የክሪፕቶግራፊ ዓላማ ፕሮቶኮልን ከጠላታዊ ተግባራት መጠበቅ ስለሆነ፣ ያ ፕሮቶኮል ሊያሳካ የሚፈልገው ግብ ምን እንደሆነ የክሪፕቶግራፊ ጥቅምን ይወስናል። አብዛኞቹ የክሪፕቶግራፊ ፕሪሚቲቮችና ፕሮቶኮሎች ከሚከተሉት አንዱን ወይም ከዚያ በላይ ባህሪያት አላቸው።</p><ul><li><strong>ሚስጥራዊነት(confidentiality)</strong>: መረጃውን ማየት የማይገባቸው ሰዎች ላይ ከፊሉን መረጃ በመደበቅ መጠበቅ<li><strong>ማረጋገጫ(authentication)</strong>: የውይይት አጋሩን መለየት(e.g. የተቀበሉት መልእክት በእውነት አሊስ የላከችው መሆኑን ማረጋገጥ)</ul><h2 id="የክሪፕቶግራፊ-ኢኮሲስተም">የክሪፕቶግራፊ ኢኮሲስተም</h2><pre><code class="language-mermaid">flowchart TD
    Alice[የክሪፕቶግራፊ ተመራማሪ]-- ፕሪሚቲቭ ፈጠራ --&gt;Primitive(አዲስ ፕሪሚቲቭ ጥቆማ)
    Alice-- ፕሮቶኮል ፈጠራ --&gt;Protocol(አዲስ ፕሮቶኮል ጥቆማ)
    Alice-. ውድድር ማካሄድ .-&gt;C(የአልጎርይዝም ውድድር)

    David[የግል ኢንዱስትሪ]-. የገንዘብ ድጋፍ .-&gt;Alice
    David-. ውድድር ማካሄድ .-&gt;C

    Eve[የመንግስት ተቋም]-. የገንዘብ ድጋፍ .-&gt;Alice
    Eve-. ውድድር ማካሄድ .-&gt;C

    Primitive --&gt; t1{"ለመተግበር ይቻላል?"}
    t1-- አዎ --&gt;Protocol
    t1-- አይ --&gt;term1@{ shape: framed-circle, label: "ቁም" }

    Protocol-- ውድድር ተሳትፎ --&gt;C
    Protocol-- ስታንዳርድ ማድረግ --&gt;Standard(ስታንዳርድ)
    Protocol-- ፓተንት ማመልከት --&gt;Patent(የፓተንት ጊዜ ማብቂያ)
    Protocol-- መተግበር --&gt;Library(ላይብረሪ)
    
    C-- ውድድር ማሸነፍ --&gt;Standard
    C-- መውደቅ --&gt;term2@{ shape: framed-circle, label: "ቁም" }

    Standard-- መተግበር --&gt;Library
    Standard-- መውደቅ --&gt;term3@{ shape: framed-circle, label: "ቁም" }

    Patent-- መውደቅ --&gt;term2@{ shape: framed-circle, label: "ቁም" }
    Patent-- ስታንዳርድ ማድረግ --&gt;Standard
    Patent-- መተግበር --&gt;Library

    Library-- ስታንዳርድ ማድረግ --&gt;Standard
    Library-- የደህንነት ጉድለት --&gt;term4@{ shape: framed-circle, label: "ቁም" }
</code></pre>]]> </content> </entry> <entry><title xml:lang="am">Linear Transformations, Null Space, and Image</title><link href="https://www.yunseo.kim/am/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/linear-transformation-nullspace-and-image/" rel="alternate" type="text/html" hreflang="am" /><published>2025-09-18T00:00:00+09:00</published> <updated>2025-09-18T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/linear-transformation-nullspace-and-image/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Linear Algebra" /> <summary xml:lang="am">Define linear transformations and study their null space (kernel) and image (range). Prove rank–nullity, relate injectivity/surjectivity to rank and nullity, and show how bases determine linear maps.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>Define linear transformations and study their null space (kernel) and image (range). Prove rank–nullity, relate injectivity/surjectivity to rank and nullity, and show how bases determine linear maps.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="prerequisites">Prerequisites</h2><ul><li><a href="/am/posts/vectors-and-linear-combinations/">Vectors and Linear Combinations</a><li><a href="/am/posts/vector-spaces-subspaces-and-matrices/">Vector Spaces, Subspaces, and Matrices</a><li><a href="posts/linear-dependence-and-independence-basis-and-dimension/">Linear Dependence and Independence, Bases and Dimension</a><li>Injection, surjection</ul><h2 id="linear-transformations">Linear transformations</h2><p>A special class of functions that preserve the structure of vector spaces are called <strong>linear transformations</strong>. They are fundamental across pure and applied mathematics, social and natural sciences, and engineering.</p><blockquote class="prompt-info"><p><strong>Definition</strong><br /> Let $\mathbb{V}$ and $\mathbb{W}$ be $F$-vector spaces. A function $T: \mathbb{V} \to \mathbb{W}$ is called a <strong>linear transformation</strong> from $\mathbb{V}$ to $\mathbb{W}$ if, for all $\mathbf{x}, \mathbf{y} \in \mathbb{V}$ and $c \in F$, the following hold:</p><ol><li>$T(\mathbf{x}+\mathbf{y}) = T(\mathbf{x}) + T(\mathbf{y})$<li>$T(c\mathbf{x}) = cT(\mathbf{x})$</ol></blockquote><p>When $T$ is a linear transformation, we also simply say that $T$ is <strong>linear</strong>. A linear transformation $T: \mathbb{V} \to \mathbb{W}$ satisfies the following four properties.</p><blockquote class="prompt-info"><ol><li>$T$ linear $\quad \Rightarrow \quad T(\mathbf{0}) = \mathbf{0}$<li>$T$ linear $\quad \Leftrightarrow \quad T(c\mathbf{x} + \mathbf{y}) = cT(\mathbf{x}) + T(\mathbf{y}) \; \forall \, \mathbf{x}, \mathbf{y} \in \mathbb{V},\, c \in F$<li>$T$ linear $\quad \Rightarrow \quad T(\mathbf{x} - \mathbf{y}) = T(\mathbf{x}) - T(\mathbf{y}) \; \forall \, \mathbf{x}, \mathbf{y} \in \mathbb{V}$<li>$T$ linear $\quad \Leftrightarrow \quad T\left( \sum_{i=1}^n a_i \mathbf{x}_i \right) = \sum_{i=1}^n a_i T(\mathbf{x}_i)$</ol></blockquote><blockquote class="prompt-tip"><p>When proving that a function is linear, it is often convenient to use Property 2.</p></blockquote><blockquote class="prompt-tip"><p>Linear algebra has wide and varied applications in geometry because many important geometric maps are linear. In particular, the three principal geometric transformations—<strong>rotation</strong>, <strong>reflection</strong>, and <strong>projection</strong>—are linear transformations.</p></blockquote><p>Two linear transformations occur especially often:</p><blockquote class="prompt-info"><p><strong>Identity and zero transformations</strong><br /> For $F$-vector spaces $\mathbb{V}, \mathbb{W}$:</p><ul><li><strong>Identity transformation</strong>: the function $I_\mathbb{V}: \mathbb{V} \to \mathbb{V}$ defined by $I_\mathbb{V}(\mathbf{x}) = \mathbf{x}$ for all $\mathbf{x} \in \mathbb{V}$<li><strong>Zero transformation</strong>: the function $T_0: \mathbb{V} \to \mathbb{W}$ defined by $T_0(\mathbf{x}) = \mathbf{0}$ for all $\mathbf{x} \in \mathbb{V}$</ul></blockquote><p>Many other familiar operations are linear transformations.</p><blockquote class="prompt-tip"><p><strong>Examples of linear transformations</strong></p><ul><li>Rotation<li>Reflection<li>Projection<li><a href="/am/posts/vector-spaces-subspaces-and-matrices/#transpose-symmetric-and-skew-symmetric-matrices">Transpose</a><li>Differentiation of a differentiable function<li>Integration of a continuous function</ul></blockquote><h2 id="null-space-and-image">Null space and image</h2><h3 id="definitions-of-the-null-space-and-the-image">Definitions of the null space and the image</h3><blockquote class="prompt-info"><p><strong>Definition</strong><br /> For vector spaces $\mathbb{V}, \mathbb{W}$ and a linear transformation $T: \mathbb{V} \to \mathbb{W}$:</p><ul><li><p><strong>Null space</strong> (or <strong>kernel</strong>): the set of vectors $\mathbf{x} \in \mathbb{V}$ such that $T(\mathbf{x}) = \mathbf{0}$, denoted $\mathrm{N}(T)$</p>\[\mathrm{N}(T) = \{ \mathbf{x} \in \mathbb{V}: T(\mathbf{x}) = \mathbf{0} \}\]<li><p><strong>Range</strong> (or <strong>image</strong>): the subset of $\mathbb{W}$ consisting of all values of $T$, denoted $\mathrm{R}(T)$</p>\[\mathrm{R}(T) = \{ T(\mathbf{x}): \mathbf{x} \in \mathbb{V} \}\]</ul></blockquote><blockquote class="prompt-tip"><p><strong>e.g.</strong> For vector spaces $\mathbb{V}, \mathbb{W}$, the identity $I: \mathbb{V} \to \mathbb{V}$ and the zero map $T_0: \mathbb{V} \to \mathbb{W}$ satisfy:</p><ul><li>$\mathrm{N}(I) = \{\mathbf{0}\}$<li>$\mathrm{R}(I) = \mathbb{V}$<li>$\mathrm{N}(T_0) = \mathbb{V}$<li>$\mathrm{R}(T_0) = \{\mathbf{0}\}$</ul></blockquote><p>A key point going forward is that the null space and the image of a linear transformation are <a href="/am/posts/vector-spaces-subspaces-and-matrices/#subspaces">subspaces</a> of the corresponding vector spaces.</p><blockquote class="prompt-info"><p><strong>Theorem 1</strong><br /> For vector spaces $\mathbb{V}, \mathbb{W}$ and a linear transformation $T: \mathbb{V} \to \mathbb{W}$, the sets $\mathrm{N}(T)$ and $\mathrm{R}(T)$ are subspaces of $\mathbb{V}$ and $\mathbb{W}$, respectively.</p><p><strong>Proof</strong><br /> Denote the zero vectors of $\mathbb{V}$ and $\mathbb{W}$ by $\mathbf{0}_\mathbb{V}$ and $\mathbf{0}_\mathbb{W}$, respectively.</p><p>Since $T(\mathbf{0}_\mathbb{V}) = \mathbf{0}_\mathbb{W}$, we have $\mathbf{0}_\mathbb{V} \in \mathrm{N}(T)$. Moreover, for $\mathbf{x}, \mathbf{y} \in \mathrm{N}(T)$ and $c \in F$,</p>\[\begin{align*} T(\mathbf{x} + \mathbf{y}) &amp;= T(\mathbf{x}) + T(\mathbf{y}) = \mathbf{0}_\mathbb{W} + \mathbf{0}_\mathbb{W} = \mathbf{0}_\mathbb{W}, \\ T(c\mathbf{x}) &amp;= cT(\mathbf{x}) = c\mathbf{0}_\mathbb{W} = \mathbf{0}_\mathbb{W}. \end{align*}\]<p>$\therefore$ <a href="/am/posts/vector-spaces-subspaces-and-matrices/#subspaces">Since $\mathbf{0}_\mathbb{V} \in \mathrm{N}(T)$ and $\mathrm{N}(T)$ is closed under addition and scalar multiplication, $\mathrm{N}(T)$ is a subspace of $\mathbb{V}$</a>.</p><p>Similarly, $T(\mathbf{0}_\mathbb{V}) = \mathbf{0}_\mathbb{W}$ implies $\mathbf{0}_\mathbb{W} \in \mathrm{R}(T)$. For all $\mathbf{x}, \mathbf{y} \in \mathrm{R}(T)$ and $c \in F$ (there exist $\mathbf{v}, \mathbf{w} \in \mathbb{V}$ with $T(\mathbf{v}) = \mathbf{x}$ and $T(\mathbf{w}) = \mathbf{y}$), we have</p>\[\begin{align*} T(\mathbf{v} + \mathbf{w}) &amp;= T(\mathbf{v}) + T(\mathbf{w}) = \mathbf{x} + \mathbf{y}, \\ T(c\mathbf{v}) &amp;= cT(\mathbf{v}) = c\mathbf{x}. \end{align*}\]<p>$\therefore$ <a href="/am/posts/vector-spaces-subspaces-and-matrices/#subspaces">Since $\mathbf{0}_\mathbb{W} \in \mathrm{R}(T)$ and $\mathrm{R}(T)$ is closed under addition and scalar multiplication, $\mathrm{R}(T)$ is a subspace of $\mathbb{W}$</a>. $\blacksquare$</p></blockquote><p>Furthermore, given a basis $\beta = \{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n \}$ of $\mathbb{V}$, we can find a generating set of the image $\mathrm{R}(T)$ as follows.</p><blockquote class="prompt-info"><p><strong>Theorem 2</strong><br /> For vector spaces $\mathbb{V}, \mathbb{W}$, a linear transformation $T: \mathbb{V} \to \mathbb{W}$, and a <a href="/am/posts/linear-dependence-and-independence-basis-and-dimension/#basis">basis</a> $\beta = \{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n \}$ of $\mathbb{V}$, we have</p>\[\mathrm{R}(T) = \mathrm{span}(\{T(\mathbf{v}): \mathbf{v} \in \beta \}) = \mathrm{span}(\{T(\mathbf{v}_1), T(\mathbf{v}_2), \dots, T(\mathbf{v}_n) \})\]<p><strong>Proof</strong></p>\[T(\mathbf{v}_i) \in \mathrm{R}(T) \quad \forall \mathbf{v}_i \in \beta.\]<p>Since $\mathrm{R}(T)$ is a subspace, by <strong>Theorem 2</strong> of <a href="/am/posts/vector-spaces-subspaces-and-matrices/#subspaces">Vector Spaces, Subspaces, and Matrices</a>,</p>\[\mathrm{span}(\{T(\mathbf{v}_1), T(\mathbf{v}_2), \dots, T(\mathbf{v}_n) \}) = \mathrm{span}(\{T(\mathbf{v}_i): \mathbf{v}_i \in \beta \}) \subseteq \mathrm{R}(T).\]<p>Also,</p>\[\forall \mathbf{w} \in \mathrm{R}(T) \ (\exists \mathbf{v} \in \mathbb{V} \ (\mathbf{w} = T(\mathbf{v}))).\]<p>Because $\beta$ is a basis of $\mathbb{V}$,</p>\[\mathbf{v} = \sum_{i=1}^n a_i \mathbf{v}_i \quad \text{(where } a_1, a_2, \dots, a_n \in F \text{)}.\]<p>Since $T$ is linear,</p>\[\mathbf{w} = T(\mathbf{v}) = \sum_{i=1}^n a_i T(\mathbf{v}_i) \in \mathrm{span}(\{T(\mathbf{v}_i): \mathbf{v}_i \in \beta \})\] \[\mathrm{R}(T) \subseteq \mathrm{span}(\{T(\mathbf{v}_i): \mathbf{v}_i \in \beta \}) = \mathrm{span}(\{T(\mathbf{v}_1), T(\mathbf{v}_2), \dots, T(\mathbf{v}_n) \}).\]<p>$\therefore$ Since both contain each other, $\mathrm{R}(T) = \mathrm{span}({T(\mathbf{v}): \mathbf{v} \in \beta })$. $\blacksquare$</p></blockquote><p>This theorem remains valid even when the basis $\beta$ is infinite.</p><h3 id="dimension-theorem">Dimension theorem</h3><p>Because the null space and image are especially important subspaces, we give special names to their <a href="/am/posts/linear-dependence-and-independence-basis-and-dimension/#dimension">dimensions</a>.</p><blockquote class="prompt-info"><p>For vector spaces $\mathbb{V}, \mathbb{W}$ and a linear transformation $T: \mathbb{V} \to \mathbb{W}$, assume $\mathrm{N}(T)$ and $\mathrm{R}(T)$ are finite-dimensional.</p><ul><li><strong>Nullity</strong>: the dimension of $\mathrm{N}(T)$, denoted $\mathrm{nullity}(T)$<li><strong>Rank</strong>: the dimension of $\mathrm{R}(T)$, denoted $\mathrm{rank}(T)$</ul></blockquote><p>For a linear transformation, the larger the nullity, the smaller the rank, and vice versa.</p><blockquote class="prompt-info"><p><strong>Theorem 3: Dimension theorem</strong><br /> For vector spaces $\mathbb{V}, \mathbb{W}$ and a linear transformation $T: \mathbb{V}\to \mathbb{W}$, if $\mathbb{V}$ is finite-dimensional, then</p>\[\mathrm{nullity}(T) + \mathrm{rank}(T) = \dim(\mathbb{V})\]</blockquote><h4 id="proof">Proof</h4><p>Let $\dim(\mathbb{V}) = n$ and $\mathrm{nullity}(T) = \dim(\mathrm{N}(T)) = k$, and let a basis of $\mathrm{N}(T)$ be $\{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_k \}$.</p><p>By <a href="/am/posts/linear-dependence-and-independence-basis-and-dimension/#dimension-of-subspaces">“Linear Dependence and Independence, Bases and Dimension” — <strong>Corollary 6-1</strong></a>, we can extend $\{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_k \}$ to a basis $\beta = \{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n \}$ of $\mathbb{V}$.</p><p>We now show that $S = \{T(\mathbf{v}_{k+1}), T(\mathbf{v}_{k+2}), \dots, T(\mathbf{v}_n) \}$ is a basis of $\mathrm{R}(T)$. First, for $1 \leq i \leq k$, $T(\mathbf{v}_i) = 0$, so by <a href="#definitions-of-the-null-space-and-the-image"><strong>Theorem 2</strong></a>,</p>\[\begin{align*} \mathrm{R}(T) &amp;= \mathrm{span}(\{T(\mathbf{v}_1), T(\mathbf{v}_2), \dots, T(\mathbf{v}_n) \}) \\ &amp;= \mathrm{span}(\{T(\mathbf{v}_{k+1}), T(\mathbf{v}_{k+2}), \dots, T(\mathbf{v}_n) \}) \\ &amp;= \mathrm{span}(S). \end{align*}\]<p>Thus $S$ generates $\mathrm{R}(T)$. By <a href="/am/posts/linear-dependence-and-independence-basis-and-dimension/#dimension"><strong>Corollary 5-2 of the replacement theorem</strong></a>, it suffices to show that $S$ is linearly independent.</p><p>Suppose $\sum_{i=k+1}^n b_i T(\mathbf{v}_i) = 0$ (with $b_{k+1}, b_{k+2}, \dots, b_n \in F$). Since $T$ is linear,</p>\[\sum_{i=k+1}^n b_i T(\mathbf{v}_i) = 0 \Leftrightarrow T\left(\sum_{i=k+1}^n b_i \mathbf{v}_i \right) = 0 \Leftrightarrow \sum_{i=k+1}^n b_i \mathbf{v}_i \in \mathrm{N}(T).\]<p>Therefore,</p>\[\begin{align*} &amp;\exists c_1, c_2, \dots, c_k \in F, \\ &amp;\sum_{i=k+1}^n b_i \mathbf{v}_i = \sum_{i=1}^k c_i \mathbf{v}_i \\ \Leftrightarrow &amp;\sum_{i=1}^k (-c_i)\mathbf{v}_i + \sum_{i=k+1}^n b_i \mathbf{v}_i = 0. \end{align*}\]<p>Since $\beta$ is a basis of $\mathbb{V}$, the unique solution of $\sum_{i=1}^k (-c_i)\mathbf{v}_i + \sum_{i=k+1}^n b_i \mathbf{v}_i = 0$ is</p>\[c_1 = c_2 = \cdots = c_k = b_{k+1} = b_{k+2} = \cdots = b_n = 0\]<p>and hence</p>\[\sum_{i=k+1}^n b_i T(\mathbf{v}_i) = 0 \quad \Rightarrow \quad b_i = 0.\]<p>Thus $S$ is linearly independent and is a basis of $\mathrm{R}(T)$.</p>\[\therefore \mathrm{rank}(T) = n - k = \dim{\mathbb{V}} - \mathrm{nullity}(T). \blacksquare\]<h3 id="linear-transformations-and-injectionssurjections">Linear transformations and injections/surjections</h3><p>For linear transformations, injectivity and surjectivity are closely tied to rank and nullity.</p><blockquote class="prompt-info"><p><strong>Theorem 4</strong><br /> For vector spaces $\mathbb{V}, \mathbb{W}$ and a linear transformation $T: \mathbb{V} \to \mathbb{W}$,</p>\[T \text{ is injective} \quad \Leftrightarrow \quad \mathrm{N}(T) = \{\mathbf{0}\}.\]</blockquote><blockquote class="prompt-info"><p><strong>Theorem 5</strong><br /> If finite-dimensional vector spaces $\mathbb{V}, \mathbb{W}$ have the same dimension and $T: \mathbb{V} \to \mathbb{W}$ is linear, then the following four statements are equivalent.</p><ol><li>$T$ is injective.<li>$\mathrm{nullity}(T) = 0$<li>$\mathrm{rank}(T) = \dim(\mathbb{V})$<li>$T$ is surjective.</ol></blockquote><p>Using the <a href="#dimension-theorem">dimension theorem</a>, <a href="#linear-transformations">Properties 1 and 3 of linear transformations</a>, and <a href="/am/posts/linear-dependence-and-independence-basis-and-dimension/#dimension-of-subspaces">“Linear Dependence and Independence, Bases and Dimension” — <strong>Theorem 6</strong></a>, one can prove <strong>Theorem 4</strong> and <strong>Theorem 5</strong>.</p><p>These two theorems are useful when deciding whether a given linear transformation is injective or surjective.</p><blockquote class="prompt-warning"><p>For an infinite-dimensional vector space $\mathbb{V}$ and a linear transformation $T: \mathbb{V} \to \mathbb{V}$, injectivity and surjectivity are not equivalent.</p></blockquote><p>If a linear transformation is injective, the following theorem can be useful in some cases for testing whether a subset of the domain is linearly independent.</p><blockquote class="prompt-info"><p><strong>Theorem 6</strong><br /> For vector spaces $\mathbb{V}, \mathbb{W}$, an injective linear transformation $T: \mathbb{V} \to \mathbb{W}$, and a subset $S \subseteq \mathbb{V}$,</p>\[S \text{ is linearly independent} \quad \Leftrightarrow \quad \{T(\mathbf{v}): \mathbf{v} \in S \} \text{ is linearly independent.}\]</blockquote><h2 id="linear-transformations-and-bases">Linear transformations and bases</h2><p>A key feature of linear transformations is that their action is determined by their values on a basis.</p><blockquote class="prompt-info"><p><strong>Theorem 7</strong><br /> Let $\mathbb{V}, \mathbb{W}$ be $F$-vector spaces, let $\{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n \}$ be a basis of $\mathbb{V}$, and let $\mathbf{w}_1, \mathbf{w}_2, \dots, \mathbf{w}_n \in \mathbb{W}$. Then there exists a unique linear transformation $T: \mathbb{V} \to \mathbb{W}$ such that</p>\[T(\mathbf{v}_i) = \mathbf{w}_i \quad (i = 1, 2, \dots, n).\]<p><strong>Proof</strong><br /> For $\mathbf{x} \in \mathbb{V}$, the representation</p>\[\mathbf{x} = \sum_{i=1}^n a_i \mathbf{v}_i \text{ (}a_1, a_2, \dots, a_n \in F \text{)}\]<p>is unique. Define a linear transformation $T: \mathbb{V} \to \mathbb{W}$ by</p>\[T(\mathbf{x}) = T\left( \sum_{i=1}^n a_i \mathbf{v}_i \right) = \sum_{i=1}^n a_i \mathbf{w}_i.\]<p>i) For $i = 1, 2, \dots, n$, $T(\mathbf{v}_i) = \mathbf{w}_i$.</p><p>ii) Suppose another linear transformation $U: \mathbb{V} \to \mathbb{W}$ satisfies $U(\mathbf{v}_i) = \mathbf{w}_i$ for $i = 1, 2, \dots, n$. Then for $\mathbf{x} = \sum_{i=1}^n a_i \mathbf{v}_i \in \mathbb{V}$,</p>\[U(\mathbf{x}) = \sum_{i=1}^n a_i U(\mathbf{v}_i) = \sum_{i=1}^n a_i \mathbf{w}_i = T(\mathbf{x}_i)\] \[\therefore U = T.\]<p>From i) and ii), the linear transformation satisfying $T(\mathbf{v}_i) = \mathbf{w}_i$ for $i = 1, 2, \dots, n$ is unique and given by</p>\[T(\mathbf{x}) = T\left( \sum_{i=1}^n a_i \mathbf{v}_i \right) = \sum_{i=1}^n a_i \mathbf{w}_i. \ \blacksquare\]<p><strong>Corollary 7-1</strong><br /> Let $\mathbb{V}, \mathbb{W}$ be vector spaces and suppose $\mathbb{V}$ has a finite basis $\{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n \}$. If two linear transformations $U, T: \mathbb{V} \to \mathbf{W}$ satisfy $U(\mathbf{v}_i) = T(\mathbf{v}_i)$ for $i = 1, 2, \dots, n$, then $U = T$.<br /> In other words, <u>if two linear transformations agree on a basis, they are equal.</u></p></blockquote>]]> </content> </entry> <entry><title xml:lang="am">Linear Dependence and Independence, Bases and Dimension</title><link href="https://www.yunseo.kim/am/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/linear-dependence-and-independence-basis-and-dimension/" rel="alternate" type="text/html" hreflang="am" /><published>2025-09-16T00:00:00+09:00</published> <updated>2025-10-25T21:21:39+09:00</updated> <id>https://www.yunseo.kim/am/posts/linear-dependence-and-independence-basis-and-dimension/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Linear Algebra" /> <summary xml:lang="am">A concise guide to linear dependence and independence, and to bases and dimension of vector spaces: definitions, key propositions, replacement theorem, and subspace dimension.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>A concise guide to linear dependence and independence, and to bases and dimension of vector spaces: definitions, key propositions, replacement theorem, and subspace dimension.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="prerequisites">Prerequisites</h2><ul><li><a href="/am/posts/vectors-and-linear-combinations/">Vectors and Linear Combinations</a><li><a href="/am/posts/vector-spaces-subspaces-and-matrices/">Vector Spaces, Subspaces, and Matrices</a></ul><h2 id="linear-dependence-and-linear-independence">Linear dependence and linear independence</h2><p>Given a <a href="/am/posts/vector-spaces-subspaces-and-matrices/#vector-spaces">vector space</a> $\mathbb{V}$ and a <a href="/am/posts/vector-spaces-subspaces-and-matrices/#subspaces">subspace</a> $\mathbb{W}$, suppose we wish to find a minimal finite subset $S$ that <a href="/am/posts/vectors-and-linear-combinations/#the-linear-combination-cmathbfv--dmathbfw">spans</a> $\mathbb{W}$.</p><p>Let $S = \{\mathbf{u}_1, \mathbf{u}_2, \mathbf{u}_3, \mathbf{u}_4 \}$ with $\mathrm{span}(S) = \mathbb{W}$. How can we decide whether there exists a proper subset of $S$ that still spans $\mathbb{W}$? This is equivalent to asking whether some vector in $S$ can be written as a <a href="/am/posts/vectors-and-linear-combinations/#linear-combinations-of-vectors">linear combination</a> of the others. For example, a necessary and sufficient condition for expressing $\mathbf{u}_4$ as a linear combination of the remaining three vectors is the existence of scalars $a_1, a_2, a_3$ satisfying</p>\[\mathbf{u}_4 = a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + a_3\mathbf{u}_3\]<p>However, solving a new linear system each time for $\mathbf{u}_1$, $\mathbf{u}_2$, $\mathbf{u}_3$, $\mathbf{u}_4$ is tedious. Instead, consider</p>\[a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + a_3\mathbf{u}_3 + a_4\mathbf{u}_4 = \mathbf{0}\]<p>If some vector in $S$ is a linear combination of the others, then there exists a representation of the zero vector as a linear combination of elements of $S$ in which at least one among $a_1, a_2, a_3, a_4$ is nonzero. The converse is also true: if there is a nontrivial linear combination of vectors in $S$ that equals the zero vector (i.e., at least one of $a_1, a_2, a_3, a_4$ is nonzero), then some vector in $S$ is a linear combination of the others.</p><p>Generalizing this, we define <strong>linear dependence</strong> and <strong>linear independence</strong> as follows.</p><blockquote class="prompt-info"><p><strong>Definition</strong><br /> For a subset $S$ of a vector space $\mathbb{V}$, if there exist finitely many distinct vectors $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n \in S$ and scalars $a_1, a_2, \dots, a_n$, not all $0$, such that $a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + \cdots + a_n\mathbf{u}_n = \mathbf{0}$, then the set $S$ (and those vectors) is called <strong>linearly dependent</strong>. Otherwise, it is called <strong>linearly independent</strong>.</p></blockquote><p>For any vectors $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n$, if $a_1 = a_2 = \cdots = a_n = 0$ then $a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + \cdots + a_n\mathbf{u}_n = \mathbf{0}$; this is called the <strong>trivial representation of the zero vector</strong>.</p><p>The following three propositions about linearly independent sets hold in every vector space. In particular, <strong>Proposition 3</strong> is very useful for testing whether a finite set is linearly independent.</p><blockquote class="prompt-info"><ul><li><strong>Proposition 1</strong>: The empty set is linearly independent. A set must be nonempty to be linearly dependent.<li><strong>Proposition 2</strong>: A set consisting of a single nonzero vector is linearly independent.<li><strong>Proposition 3</strong>: A set is linearly independent if and only if the only way to express $\mathbf{0}$ as a linear combination of its vectors is the trivial one.</ul></blockquote><p>The following theorems are also important.</p><blockquote class="prompt-info"><p><strong>Theorem 1</strong><br /> If $\mathbb{V}$ is a vector space and $S_1 \subseteq S_2 \subseteq \mathbb{V}$, then $S_2$ is linearly dependent whenever $S_1$ is linearly dependent.</p><p><strong>Corollary 1-1</strong><br /> If $\mathbb{V}$ is a vector space and $S_1 \subseteq S_2 \subseteq \mathbb{V}$, then $S_1$ is linearly independent whenever $S_2$ is linearly independent.</p></blockquote><blockquote class="prompt-info"><p><strong>Theorem 2</strong><br /> Let $\mathbb{V}$ be a vector space and $S$ a linearly independent subset. For a vector $\mathbf{v} \in \mathbb{V}\setminus S$, $S \cup \{\mathbf{v}\}$ is linearly dependent if and only if $\mathbf{v} \in \mathrm{span}(S)$.</p><p>In other words, <strong>if no proper subset of $S$ spans the same space as $S$, then $S$ is linearly independent.</strong></p></blockquote><h2 id="bases-and-dimension">Bases and dimension</h2><h3 id="basis">Basis</h3><p>A spanning set $S$ of $\mathbb{W}$ that is <a href="#linear-dependence-and-linear-independence">linearly independent</a> has a special property: every vector in $\mathbb{W}$ can be expressed as a linear combination of $S$, and that expression is unique (<strong>Theorem 3</strong>). Thus, we define a linearly independent spanning set of a vector space to be a <strong>basis</strong>.</p><blockquote class="prompt-info"><p><strong>Definition of a basis</strong><br /> For a vector space $\mathbb{V}$ and a subset $\beta$, if $\beta$ is linearly independent and spans $\mathbb{V}$, then $\beta$ is called a <strong>basis</strong> of $\mathbb{V}$. In this case, the vectors in $\beta$ are said to form a basis of $\mathbb{V}$.</p></blockquote><blockquote class="prompt-tip"><p>$\mathrm{span}(\emptyset) = \{\mathbf{0}\}$ and $\emptyset$ is linearly independent. Therefore, $\emptyset$ is a basis of the zero space.</p></blockquote><p>In particular, the following distinguished basis of $F^n$ is called the <strong>standard basis</strong> of $F^n$.</p><blockquote class="prompt-info"><p><strong>Definition of the standard basis</strong><br /> For the vector space $F^n$, consider</p>\[\mathbf{e}_1 = (1,0,0,\dots,0),\ \mathbf{e}_2 = (0,1,0,\dots,0),\ \dots, \mathbf{e}_n = (0,0,0,\dots,1)\]<p>Then the set $\{\mathbf{e}_1, \mathbf{e}_2, \dots, \mathbf{e}_n \}$ is a basis of $F^n$, called the <strong>standard basis</strong>.</p></blockquote><blockquote class="prompt-info"><p><strong>Theorem 3</strong><br /> Let $\mathbb{V}$ be a vector space and $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n \in \mathbb{V}$ be distinct vectors. A necessary and sufficient condition for $\beta = \{\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n \}$ to be a basis of $\mathbb{V}$ is that every vector $\mathbf{v} \in \mathbb{V}$ can be expressed as a linear combination of vectors in $\beta$, and that this expression is unique. That is, there exist unique scalars $(a_1, a_2, \dots, a_n)$ such that</p>\[\mathbf{v} = a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + \cdots + a_n\mathbf{u}_n\]</blockquote><p>By <strong>Theorem 3</strong>, if the distinct vectors $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n$ form a basis of a vector space $\mathbb{V}$, then within $\mathbb{V}$, a vector $\mathbf{v}$ uniquely determines the scalar $n$-tuple $(a_1, a_2, \dots, a_n)$, and conversely a scalar $n$-tuple uniquely determines the corresponding vector $\mathbf{v}$. We will revisit this when studying <strong>invertibility</strong> and <strong>isomorphisms</strong>; in this case, $\mathbb{V}$ and $F^n$ are <u>essentially the same</u>.</p><blockquote class="prompt-info"><p><strong>Theorem 4</strong><br /> If $S$ is a finite set with $\mathrm{span}(S) = \mathbb{V}$, then some subset of $S$ is a basis of $\mathbb{V}$. In particular, in this case every basis of $\mathbb{V}$ is finite.</p></blockquote><blockquote><p>Many vector spaces fall under the scope of <strong>Theorem 4</strong>, but not all do. <u>A basis need not be finite</u>.{: .prompt-tip }</p></blockquote><h3 id="dimension">Dimension</h3><blockquote class="prompt-info"><p><strong>Theorem 5: Replacement theorem</strong><br /> Let $G$ be a set of $n$ vectors with $\mathrm{span}(G) = \mathbb{V}$. If $L$ is a subset of $\mathbb{V}$ consisting of $m$ linearly independent vectors, then $m \le n$. Moreover, there exists a set $H \subseteq G$ with $n-m$ vectors such that $\mathrm{span}(L \cup H) = \mathbb{V}$.</p></blockquote><p>From this we obtain two very important corollaries.</p><blockquote class="prompt-info"><p><strong>Corollary 5-1 of the replacement theorem</strong><br /> If a vector space $\mathbb{V}$ has a finite basis, then every basis of $\mathbb{V}$ is finite and all bases have the same number of vectors.</p></blockquote><p>Hence the number of vectors in a basis of $\mathbb{V}$ is an invariant, intrinsic property of $\mathbb{V}$, called its <strong>dimension</strong>.</p><blockquote class="prompt-info"><p><strong>Definition of dimension</strong><br /> A vector space that has a finite basis is called <strong>finite-dimensional</strong>; in this case, the number $n$ of basis elements is the <strong>dimension</strong> of the vector space, denoted $\dim(\mathbb{V})$. A vector space that is not finite-dimensional is called <strong>infinite-dimensional</strong>.</p></blockquote><blockquote class="prompt-tip"><ul><li>$\dim(\{\mathbf{0}\}) = 0$<li>$\dim(F^n) = n$<li>$\dim(\mathcal{M}_{m \times n}(F)) = mn$</ul></blockquote><blockquote class="prompt-tip"><p>The dimension of a vector space depends on the underlying field.</p><ul><li>Over the complex field $\mathbb{C}$, the complex numbers form a 1-dimensional vector space with basis $\{1\}$<li>Over the real field $\mathbb{R}$, the complex numbers form a 2-dimensional vector space with basis $\{1,i\}$</ul></blockquote><p>In a finite-dimensional vector space $\mathbb{V}$, any subset with more than $\dim(\mathbb{V})$ vectors can never be linearly independent.</p><blockquote class="prompt-info"><p><strong>Corollary 5-2 of the replacement theorem</strong><br /> Let $\mathbb{V}$ be a vector space of dimension $n$.</p><ol><li>Any finite spanning set of $\mathbb{V}$ has at least $n$ vectors, and any spanning set of $\mathbb{V}$ with exactly $n$ vectors is a basis.<li>Any linearly independent subset of $\mathbb{V}$ with exactly $n$ vectors is a basis of $\mathbb{V}$. 3. Any linearly independent subset of $\mathbb{V}$ can be extended to a basis. That is, if $L \subseteq \mathbb{V}$ is linearly independent, there exists a basis $\beta \supseteq L$ of $\mathbb{V}$.</ol></blockquote><h3 id="dimension-of-subspaces">Dimension of subspaces</h3><blockquote class="prompt-info"><p><strong>Theorem 6</strong><br /> In a finite-dimensional vector space $\mathbb{V}$, every subspace $\mathbb{W}$ is finite-dimensional and satisfies $\dim(\mathbb{W}) \le \dim(\mathbb{V})$. In particular, if $\dim(\mathbb{W}) = \dim(\mathbb{V})$, then $\mathbb{V} = \mathbb{W}$.</p><p><strong>Corollary 6-1</strong><br /> For a subspace $\mathbb{W}$ of a finite-dimensional vector space $\mathbb{V}$, any basis of $\mathbb{W}$ can be extended to a basis of $\mathbb{V}$.</p></blockquote><p>By <strong>Theorem 6</strong>, the dimension of a subspace of $\mathbb{R}^3$ can be $0,1,2,$ or $3$.</p><ul><li>0-dimensional: the zero space $\{\mathbf{0}\}$ containing only the origin ($\mathbf{0}$)<li>1-dimensional: a line through the origin ($\mathbf{0}$)<li>2-dimensional: a plane containing the origin ($\mathbf{0}$)<li>3-dimensional: the entire 3D Euclidean space</ul>]]> </content> </entry> <entry><title xml:lang="am">Vector Spaces, Subspaces, and Matrices</title><link href="https://www.yunseo.kim/am/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/vector-spaces-subspaces-and-matrices/" rel="alternate" type="text/html" hreflang="am" /><published>2025-09-13T00:00:00+09:00</published> <updated>2025-10-28T18:44:54+09:00</updated> <id>https://www.yunseo.kim/am/posts/vector-spaces-subspaces-and-matrices/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Linear Algebra" /> <summary xml:lang="am">Define vector spaces and subspaces with canonical examples (R^n, matrix, and function spaces). Focus on matrix spaces: symmetric/skew, triangular, and diagonal subspaces.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>Define vector spaces and subspaces with canonical examples (R^n, matrix, and function spaces). Focus on matrix spaces: symmetric/skew, triangular, and diagonal subspaces.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><ul><li><strong>Matrix</strong><ul><li>The entry of a matrix $A$ in the $i$-th row and $j$-th column is denoted $A_{ij}$ or $a_{ij}$<li><strong>Diagonal entry</strong>: an entry $a_{ij}$ with $i=j$<li>The components $a_{i1}, a_{i2}, \dots, a_{in}$ are the $i$-th <strong>row</strong> of the matrix<ul><li>Each row of a matrix can be regarded as a vector in $F^n$<li>Moreover, a row vector in $F^n$ can be viewed as another matrix of size $1 \times n$</ul><li>The components $a_{1j}, a_{2j}, \dots, a_{mj}$ are the $j$-th <strong>column</strong> of the matrix<ul><li>Each column of a matrix can be regarded as a vector in $F^m$<li>Moreover, a column vector in $F^m$ can be viewed as another matrix of size $m \times 1$</ul><li><strong>Zero matrix</strong>: a matrix all of whose entries are $0$, denoted by $O$<li><strong>Square matrix</strong>: a matrix with the same number of rows and columns<li>For two $m \times n$ matrices $A, B$, if $A_{ij} = B_{ij}$ for all $1 \leq i \leq m$, $1 \leq j \leq n$ (i.e., every corresponding entry agrees), then the two matrices are defined to be <strong>equal</strong> ($A=B$)<li><strong>Transpose (transpose matrix)</strong>: for an $m \times n$ matrix $A$, the $n \times m$ matrix $A^T$ obtained by swapping rows and columns of $A$<li><strong>Symmetric matrix</strong>: a square matrix $A$ with $A^T = A$<li><strong>Skew-symmetric matrix</strong>: a square matrix $B$ with $B^T = -B$<li><strong>Triangular matrix</strong><ul><li><strong>Upper triangular matrix</strong>: a matrix whose entries below the diagonal are all $0$ (i.e., $i&gt;j \Rightarrow A_{ij}=0$), usually denoted by $U$<li><strong>Lower triangular matrix</strong>: a matrix whose entries above the diagonal are all $0$ (i.e., $i&lt;j \Rightarrow A_{ij}=0$), usually denoted by $L$</ul><li><strong>Diagonal matrix</strong>: an $n \times n$ square matrix whose off-diagonal entries are all $0$ (i.e., $i \neq j \Rightarrow M_{ij}=0$), usually denoted by $D$</ul><li>Representative vector spaces<ul><li><strong>The $n$-tuples $F^n$</strong>:<ul><li>The set of all $n$-tuples with entries in a field $F$<li>Denoted $F^n$; an $F$-vector space</ul><li><strong>Matrix space</strong>:<ul><li>The set of all $m \times n$ matrices with entries in a field $F$<li>Denoted $\mathcal{M}_{m \times n}(F)$; a vector space</ul><li><strong>Function space</strong>:<ul><li>For a nonempty set $S$ over a field $F$, the set of all functions from $S$ to $F$<li>Denoted $\mathcal{F}(S,F)$; a vector space</ul></ul><li><strong>Subspace</strong><ul><li>A subset $\mathbb{W}$ of an $F$-vector space $\mathbb{V}$ is called a <strong>subspace</strong> of $\mathbb{V}$ if it is an $F$-vector space under the same addition and scalar multiplication as defined on $\mathbb{V}$<li>For every vector space $\mathbb{V}$, both $\mathbb{V}$ itself and $\{0\}$ are subspaces; in particular, $\{0\}$ is called the <strong>zero subspace</strong><li>If a subset of a vector space contains the zero vector and is closed under <a href="/am/posts/vectors-and-linear-combinations/#linear-combinations-of-vectors">linear combinations</a> (i.e., if $\mathrm{span}(\mathbb{W})=\mathbb{W}$), then it is a subspace</ul></ul></blockquote><h2 id="prerequisites">Prerequisites</h2><ul><li><a href="/am/posts/vectors-and-linear-combinations/">Vectors and Linear Combinations</a></ul><h2 id="vector-spaces">Vector spaces</h2><p>As briefly noted in <a href="/am/posts/vectors-and-linear-combinations/#vector-in-the-broad-sense-an-element-of-a-vector-space">Vectors and Linear Combinations</a>, the definitions of vectors and vector spaces as algebraic structures are as follows.</p><blockquote class="prompt-info"><p><strong>Definition</strong><br /> A <strong>vector space</strong> (or <strong>linear space</strong>) $\mathbb{V}$ over a field $F$ is a set equipped with two operations, <strong>sum</strong> and <strong>scalar multiplication</strong>, satisfying the following eight axioms. Elements of the field $F$ are called <strong>scalars</strong>, and elements of the vector space $\mathbb{V}$ are called <strong>vectors</strong>.</p><ul><li><strong>Sum</strong>: For $\mathbf{x}, \mathbf{y} \in \mathbb{V}$, there exists a unique element $\mathbf{x} + \mathbf{y} \in \mathbb{V}$. We call $\mathbf{x} + \mathbf{y}$ the <strong>sum</strong> of $\mathbf{x}$ and $\mathbf{y}$.<li><strong>Scalar multiplication</strong>: For $a \in F$ and $\mathbf{x} \in \mathbb{V}$, there exists a unique element $a\mathbf{x} \in \mathbb{V}$. We call $a\mathbf{x}$ a <strong>scalar multiple</strong> of $\mathbf{x}$.</ul><ol><li>For all $\mathbf{x},\mathbf{y} \in \mathbb{V}$, $\mathbf{x} + \mathbf{y} = \mathbf{y} + \mathbf{x}$. (commutativity of addition)<li>For all $\mathbf{x},\mathbf{y},\mathbf{z} \in \mathbb{V}$, $(\mathbf{x}+\mathbf{y})+\mathbf{z} = \mathbf{x}+(\mathbf{y}+\mathbf{z})$. (associativity of addition)<li>There exists $\mathbf{0} \in \mathbb{V}$ such that $\mathbf{x} + \mathbf{0} = \mathbf{x}$ for all $\mathbf{x} \in \mathbb{V}$. (zero vector, additive identity)<li>For each $\mathbf{x} \in \mathbb{V}$, there exists $\mathbf{y} \in \mathbb{V}$ such that $\mathbf{x}+\mathbf{y}=\mathbf{0}$. (additive inverse)<li>For each $\mathbf{x} \in \mathbb{V}$, $1\mathbf{x} = \mathbf{x}$. (multiplicative identity)<li>For all $a,b \in F$ and $\mathbf{x} \in \mathbb{V}$, $(ab)\mathbf{x} = a(b\mathbf{x})$. (associativity of scalar multiplication)<li>For all $a \in F$ and $\mathbf{x},\mathbf{y} \in \mathbb{V}$, $a(\mathbf{x}+\mathbf{y}) = a\mathbf{x} + a\mathbf{y}$. (distributivity of scalar multiplication over vector addition)<li>For all $a,b \in F$ and $\mathbf{x},\mathbf{y} \in \mathbb{V}$, $(a+b)\mathbf{x} = a\mathbf{x} + b\mathbf{x}$. (distributivity of scalar multiplication over field addition)</ol></blockquote><p>Strictly speaking, one should write “the $F$-vector space $\mathbb{V}$,” but when discussing vector spaces the specific field is often not essential; thus, when there is no risk of confusion, we omit $F$ and simply write “the vector space $\mathbb{V}$.”</p><h3 id="matrix-spaces">Matrix spaces</h3><h4 id="row-and-column-vectors">Row and column vectors</h4><p>The set of all $n$-tuples with entries in a field $F$ is denoted $F^n$. For $u = (a_1, a_2, \dots, a_n) \in F^n$ and $v = (b_1, b_2, \dots, b_n) \in F^n$, defining addition and scalar multiplication by</p>\[\begin{align*} u + v &amp;= (a_1+b_1, a_2+b_2, \dots, a_n+b_n), \\ cu &amp;= (ca_1, ca_2, \dots, ca_n) \end{align*}\]<p>makes $F^n$ into an $F$-vector space.</p><p>Vectors in $F^n$ are usually written as <strong>column vectors</strong> rather than standalone <strong>row vectors</strong> $(a_1, a_2, \dots, a_n)$:</p>\[\begin{pmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{pmatrix}\]<blockquote class="prompt-tip"><p>Because column-vector notation takes more vertical space, one often uses the <a href="#transpose-symmetric-and-skew-symmetric-matrices">transpose</a> to write $(a_1, a_2, \dots, a_n)^T$ instead.</p></blockquote><h4 id="matrices-and-matrix-spaces">Matrices and matrix spaces</h4><p>An $m \times n$ <strong>matrix</strong> with entries in $F$ is a rectangular array, typically denoted by italic capitals ($A, B, C$, etc.):</p>\[\begin{pmatrix} a_{11} &amp; a_{12} &amp; \cdots &amp; a_{1n} \\ a_{21} &amp; a_{22} &amp; \cdots &amp; a_{2n} \\ \vdots &amp; \vdots &amp; &amp; \vdots \\ a_{m1} &amp; a_{m2} &amp; \cdots &amp; a_{mn} \end{pmatrix}\]<ul><li>The entry of a matrix $A$ in the $i$-th row and $j$-th column is denoted $A_{ij}$ or $a_{ij}$.<li>Each $a_{ij}$ ($1 \leq i \leq m$, $1 \leq j \leq n$) belongs to $F$.<li>An entry $a_{ij}$ with $i=j$ is called a <strong>diagonal entry</strong>.<li>The components $a_{i1}, a_{i2}, \dots, a_{in}$ form the $i$-th <strong>row</strong> of the matrix. Each row can be regarded as a vector in $F^n$, and, furthermore, a row vector in $F^n$ can be viewed as another matrix of size $1 \times n$.<li>The components $a_{1j}, a_{2j}, \dots, a_{mj}$ form the $j$-th <strong>column</strong> of the matrix. Each column can be regarded as a vector in $F^m$, and, furthermore, a column vector in $F^m$ can be viewed as another matrix of size $m \times 1$.<li>An $m \times n$ matrix whose entries are all $0$ is called the <strong>zero matrix</strong>, denoted $O$.<li>A matrix with the same number of rows and columns is called a <strong>square matrix</strong>.<li>For two $m \times n$ matrices $A, B$, if $A_{ij} = B_{ij}$ for all $1 \leq i \leq m$, $1 \leq j \leq n$ (i.e., every corresponding entry agrees), we define the matrices to be <strong>equal</strong> ($A=B$).</ul><p>The set of all $m \times n$ matrices with entries in $F$ is denoted $\mathcal{M}_{m \times n}(F)$. For $\mathbf{A},\mathbf{B} \in \mathcal{M}_{m \times n}(F)$ and $c \in F$, defining addition and scalar multiplication by</p>\[\begin{align*} (\mathbf{A}+\mathbf{B})_{ij} &amp;= \mathbf{A}_{ij} + \mathbf{B}_{ij}, \\ (c\mathbf{A})_{ij} &amp;= c\mathbf{A}_{ij} \\ \text{(for }1 \leq i \leq &amp;m, 1 \leq j \leq n \text{)} \end{align*}\]<p>makes $\mathcal{M}_{m \times n}(F)$ a vector space, called a <strong>matrix space</strong>.</p><p>This naturally extends the operations defined on $F^n$ and $F^m$.</p><h3 id="function-spaces">Function spaces</h3><p>For a nonempty set $S$ over a field $F$, $\mathcal{F}(S,F)$ denotes the set of all functions from $S$ to $F$. For $f,g \in \mathcal{F}(S,F)$, we declare $f$ and $g$ <strong>equal</strong> ($f=g$) if $f(s) = g(s)$ for all $s \in S$.</p><p>For $f,g \in \mathcal{F}(S,F)$, $c \in F$, and $s \in S$, defining addition and scalar multiplication by</p>\[\begin{align*} (f + g)(s) &amp;= f(s) + g(s), \\ (cf)(s) &amp;= c[f(s)] \end{align*}\]<p>makes $\mathcal{F}(S,F)$ a vector space, called a <strong>function space</strong>.</p><h2 id="subspaces">Subspaces</h2><blockquote class="prompt-info"><p><strong>Definition</strong><br /> A subset $\mathbb{W}$ of an $F$-vector space $\mathbb{V}$ is called a <strong>subspace</strong> of $\mathbb{V}$ if it is an $F$-vector space under the same addition and scalar multiplication as those defined on $\mathbb{V}$.</p></blockquote><p>For every vector space $\mathbb{V}$, both $\mathbb{V}$ itself and $\{0\}$ are subspaces; in particular, $\{0\}$ is called the <strong>zero subspace</strong>.</p><p>Whether a subset is a subspace can be checked using the following theorem.</p><blockquote class="prompt-info"><p><strong>Theorem 1</strong><br /> For a vector space $\mathbb{V}$ and a subset $\mathbb{W}$, $\mathbb{W}$ is a subspace of $\mathbb{V}$ if and only if the following three conditions hold (with the operations inherited from $\mathbb{V}$):</p><ol><li>$\mathbf{0} \in \mathbb{W}$<li>$\mathbf{x}+\mathbf{y} \in \mathbb{W} \quad \forall\ \mathbf{x} \in \mathbb{W},\ \mathbf{y} \in \mathbb{W}$<li>$c\mathbf{x} \in \mathbb{W} \quad \forall\ c \in F,\ \mathbf{x} \in \mathbb{W}$</ol><p>In short, if it contains the zero vector and is closed under <a href="/am/posts/vectors-and-linear-combinations/#linear-combinations-of-vectors">linear combinations</a> (i.e., if $\mathrm{span}(\mathbb{W})=\mathbb{W}$), then it is a subspace.</p></blockquote><p>The following theorems also hold.</p><blockquote class="prompt-info"><p><strong>Theorem 2</strong></p><ul><li><p>For any subset $S$ of a vector space $\mathbb{V}$, the span $\mathrm{span}(S)$ is a subspace of $\mathbb{V}$ containing $S$.</p>\[S \subset \mathrm{span}(S) \leq \mathbb{V} \quad \forall\ S \subset \mathbb{V}.\]<li><p>Any subspace of $\mathbb{V}$ that contains $S$ must contain the span of $S$.</p>\[\mathbb{W}\supset \mathrm{span}(S) \quad \forall\ S \subset \mathbb{W} \leq \mathbb{V}.\]</ul></blockquote><blockquote class="prompt-info"><p><strong>Theorem 3</strong><br /> For subspaces of a vector space $\mathbb{V}$, the intersection of any collection of such subspaces is again a subspace of $\mathbb{V}$.</p></blockquote><h3 id="transpose-symmetric-and-skew-symmetric-matrices">Transpose, symmetric, and skew-symmetric matrices</h3><p>The <strong>transpose</strong> $A^T$ of an $m \times n$ matrix $A$ is the $n \times m$ matrix obtained by swapping the rows and columns of $A$:</p>\[(A^T)_{ij} = A_{ji}\] \[\begin{pmatrix} 1 &amp; 2 &amp; 3 \\ 4 &amp; 5 &amp; 6 \end{pmatrix}^T = \begin{pmatrix} 1 &amp; 4 \\ 2 &amp; 5 \\ 3 &amp; 6 \end{pmatrix}\]<p>A matrix $A$ with $A^T = A$ is called <strong>symmetric</strong>, and a matrix $B$ with $B^T = -B$ is called <strong>skew-symmetric</strong>. Symmetric and skew-symmetric matrices must be square.</p><p>Let $\mathbb{W}_1$ and $\mathbb{W}_2$ be the sets of all symmetric and all skew-symmetric matrices in $\mathcal{M}_{n \times n}(F)$, respectively. Then $\mathbb{W}_1$ and $\mathbb{W}_2$ are subspaces of $\mathcal{M}_{n \times n}(F)$; that is, they are closed under addition and scalar multiplication.</p><h3 id="triangular-and-diagonal-matrices">Triangular and diagonal matrices</h3><p>These two classes of matrices are also particularly important.</p><p>First, we collectively call the following two types of matrices <strong>triangular matrices</strong>:</p><ul><li><strong>Upper triangular matrix</strong>: a matrix whose entries below the diagonal are all $0$ (i.e., $i&gt;j \Rightarrow A_{ij}=0$), usually denoted by $U$<li><strong>Lower triangular matrix</strong>: a matrix whose entries above the diagonal are all $0$ (i.e., $i&lt;j \Rightarrow A_{ij}=0$), usually denoted by $L$</ul><p>An $n \times n$ square matrix in which all off-diagonal entries are $0$—that is, $i \neq j \Rightarrow M_{ij}=0$—is called a <strong>diagonal matrix</strong>, usually denoted by $D$. A diagonal matrix is both upper and lower triangular.</p><p>The sets of upper triangular matrices, lower triangular matrices, and diagonal matrices are all subspaces of $\mathcal{M}_{m \times n}(F)$.</p>]]> </content> </entry> <entry><title xml:lang="am">Inner Product and Norm</title><link href="https://www.yunseo.kim/am/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/inner-product-and-norm/" rel="alternate" type="text/html" hreflang="am" /><published>2025-09-10T00:00:00+09:00</published> <updated>2025-10-15T05:48:53+09:00</updated> <id>https://www.yunseo.kim/am/posts/inner-product-and-norm/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Linear Algebra" /> <summary xml:lang="am">Define the inner product and the dot product, derive vector length/norm from them, and see how to compute the angle between vectors in R^n and general inner product spaces.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>Define the inner product and the dot product, derive vector length/norm from them, and see how to compute the angle between vectors in R^n and general inner product spaces.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="prerequisites">Prerequisites</h2><ul><li><a href="/am/posts/vectors-and-linear-combinations/">Vectors and Linear Combinations</a></ul><h2 id="inner-product">Inner Product</h2><p>In a general $F$-vector space, the definition of an <strong>inner product</strong> is as follows.</p><blockquote class="prompt-info"><p><strong>Definition of the inner product and inner product space</strong><br /> Consider an $F$-vector space $\mathbb{V}$. An <strong>inner product</strong> on $\mathbb{V}$, denoted $\langle \mathbf{x},\mathbf{y} \rangle$, is a function that assigns to each ordered pair of vectors $\mathbf{x}, \mathbf{y} \in \mathbb{V}$ a scalar in $F$ and satisfies the following:</p><p>For all $\mathbf{x},\mathbf{y},\mathbf{z} \in \mathbb{V}$ and all $c \in F$,</p><ol><li>$\langle \mathbf{x}+\mathbf{z}, \mathbf{y} \rangle = \langle \mathbf{x}, \mathbf{y} \rangle + \langle \mathbf{z}, \mathbf{y} \rangle$<li>$\langle c\mathbf{x}, \mathbf{y} \rangle = c \langle \mathbf{x}, \mathbf{y} \rangle$<li>$\overline{\langle \mathbf{x}, \mathbf{y} \rangle} = \langle \mathbf{y}, \mathbf{x} \rangle$ (where the overline denotes complex conjugation)<li>If $\mathbf{x} \neq \mathbf{0}$, then $\langle \mathbf{x}, \mathbf{x} \rangle$ is positive.</ol><p>An $F$-vector space $\mathbb{V}$ equipped with an inner product is called an <strong>inner product space</strong>. In particular, when $F=\mathbb{C}$ it is a <strong>complex inner product space</strong>, and when $F=\mathbb{R}$ it is a <strong>real inner product space</strong>.</p></blockquote><p>In particular, the following inner product is called the <strong>standard inner product</strong>. One can check that it satisfies all four axioms above.</p><blockquote class="prompt-info"><p><strong>Definition of the standard inner product</strong><br /> For two vectors in $F^n$, $\mathbf{x}=(a_1, a_2, \dots, a_n)$ and $\mathbf{y}=(b_1, b_2, \dots, b_n)$, the <strong>standard inner product</strong> on $F^n$ is defined by</p>\[\langle \mathbf{x}, \mathbf{y} \rangle = \sum_{i=1}^n a_i \overline{b_i}\]</blockquote><p>When $F=\mathbb{R}$, complex conjugation is trivial, so the standard inner product becomes $\sum_{i=1}^n a_i b_i$. In this special case we often write $\mathbf{x} \cdot \mathbf{y}$ instead of $\langle \mathbf{x}, \mathbf{y} \rangle$ and call it the <strong>dot product</strong> or <strong>scalar product</strong>.</p><blockquote class="prompt-info"><p><strong>Definition of the dot product/scalar product</strong><br /> For $\mathbf{v}=(v_1, v_2, \dots, v_n)$ and $\mathbf{w}=(w_1, w_2, \dots, w_n)$ in $\mathbb{R}^n$, the <strong>dot product</strong> (or <strong>scalar product</strong>) is defined by</p>\[\mathbf{v} \cdot \mathbf{w} = \sum_{i=1}^n v_i w_i = v_1 w_1 + v_2 w_2 + \cdots + v_n w_n\]</blockquote><blockquote class="prompt-warning"><p>The “scalar product” mentioned here is an operation between two vectors and is distinct from the operation between a scalar and a vector, “scalar multiplication,” discussed in <a href="/am/posts/vectors-and-linear-combinations/">Vectors and Linear Combinations</a>. The English terms are similar, and <a href="https://www.kms.or.kr/mathdict/list.html?key=kname&amp;keyword=%EC%8A%A4%EC%B9%BC%EB%9D%BC%EA%B3%B1">per the Korean Mathematical Society’s standard terminology the Korean translations are identical</a>, so be careful not to confuse them.</p><p>To avoid confusion, I will refer to it as the <strong>dot product</strong> whenever possible.</p></blockquote><blockquote class="prompt-tip"><p>In Euclidean space, the inner product coincides with the dot product, so when the context is clear, the dot product is often simply called the inner product. Strictly speaking, however, an inner product is a more general notion that includes the dot product as a special case.</p></blockquote><pre><code class="language-mermaid">flowchart TD
    A["Inner Product"] --&gt;|includes| B["Standard Inner Product"]
    B --&gt;|"when F = R (real numbers)"| C["Dot/Scalar Product"]

    %% inclusion notation
    C -. included in .-&gt; B
    B -. included in .-&gt; A
</code></pre><h2 id="lengthnorm-of-a-vector">Length/Norm of a Vector</h2><p>For a vector $\mathbf{v}=(v_1, v_2, \dots, v_n)$ in $\mathbb{R}^n$, the Euclidean length of $\mathbf{v}$ is defined via the dot product as</p>\[\| \mathbf{v} \| = \sqrt{\mathbf{v} \cdot \mathbf{v}} = \left[ \sum_{i=1}^n |v_i|^2 \right]^{1/2} = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}\]<p>More generally, in any inner product space, the <strong>length</strong> or <strong>norm</strong> of a vector is defined by</p>\[\| \mathbf{x} \| = \sqrt{\langle \mathbf{x}, \mathbf{x} \rangle}\]<p>In a general inner product space, the norm satisfies the following fundamental properties.</p><blockquote class="prompt-info"><p><strong>Theorem</strong><br /> Let $\mathbb{V}$ be an $F$-inner product space and let $\mathbf{x}, \mathbf{y} \in \mathbb{V}$ and $c \in F$. Then:</p><ol><li>$\|c\mathbf{x}\| = |c| \cdot \|\mathbf{x}\|$<li>The following hold:<ul><li>$\|\mathbf{x}\| = 0 \iff \mathbf{x}=\mathbf{0}$<li>$\|\mathbf{x}\| \geq 0 \ \forall \mathbf{x}$</ul><li><strong>Cauchy–Schwarz inequality</strong>: $| \langle \mathbf{x}, \mathbf{y} \rangle | \leq \|\mathbf{x}\| \cdot \|\mathbf{y}\|$ (with equality if and only if one of $\mathbf{x}$ and $\mathbf{y}$ is a scalar multiple of the other)<li><strong>Triangle inequality</strong>: $\| \mathbf{x} + \mathbf{y} \| \leq \|\mathbf{x}\| + \|\mathbf{y}\|$ (with equality if and only if one is a scalar multiple of the other and they point in the same direction)</ol></blockquote><h2 id="angle-between-vectors-and-unit-vectors">Angle Between Vectors and Unit Vectors</h2><p>A vector of length $1$ is called a <strong>unit vector</strong>. For two vectors $\mathbf{v}=(v_1, v_2, \dots, v_n)$ and $\mathbf{w}=(w_1, w_2, \dots, w_n)$ in $\mathbb{R}^n$, we have $\mathbf{v} \cdot \mathbf{w} = \|\mathbf{v}\| \cdot \|\mathbf{w}\| \cos\theta$, from which the angle $\theta$ between $\mathbf{v}$ and $\mathbf{w}$ ($0 \leq \theta \leq \pi$) can be obtained:</p>\[\theta = \arccos{\frac{\mathbf{v} \cdot \mathbf{w}}{\|\mathbf{v}\| \cdot \|\mathbf{w}\|}}\]<p>If $\mathbf{v} \cdot \mathbf{w} = 0$, the two vectors are said to be <strong>perpendicular</strong> or <strong>orthogonal</strong>.</p><blockquote class="prompt-tip"><p>If vectors $\mathbf{v}$ and $\mathbf{w}$ are perpendicular, then</p>\[\begin{align*} \| \mathbf{v} + \mathbf{w} \|^2 &amp;= (\mathbf{v} + \mathbf{w}) \cdot (\mathbf{v} + \mathbf{w}) \\ &amp;= \mathbf{v} \cdot \mathbf{v} + \mathbf{v} \cdot \mathbf{w} + \mathbf{w} \cdot \mathbf{v} + \mathbf{w} \cdot \mathbf{w} \\ &amp;= \mathbf{v} \cdot \mathbf{v} + \mathbf{w} \cdot \mathbf{w} \\ &amp;= \|\mathbf{v}\|^2 + \|\mathbf{w}\|^2. \end{align*}\]</blockquote><p>Generalizing to an arbitrary inner product space:</p><blockquote class="prompt-info"><p><strong>Definition</strong><br /> Let $\mathbb{V}$ be an inner product space. For vectors $\mathbf{x}, \mathbf{y} \in \mathbb{V}$, if $\langle \mathbf{x}, \mathbf{y} \rangle = 0$, then $\mathbf{x}$ and $\mathbf{y}$ are said to be <strong>orthogonal</strong> or <strong>perpendicular</strong>. Moreover,</p><ol><li>For a subset $S \subset \mathbb{V}$, if any two distinct vectors in $S$ are orthogonal, then $S$ is called an <strong>orthogonal set</strong>.<li>A vector $\mathbf{x} \in \mathbb{V}$ with $\|\mathbf{x}\|=1$ is called a <strong>unit vector</strong>.<li>If a subset $S \subset \mathbb{V}$ is an orthogonal set consisting only of unit vectors, then $S$ is called an <strong>orthonormal set</strong>.</ol></blockquote><p>A set $S = { \mathbf{v}_1, \mathbf{v}_2, \dots }$ is orthonormal if and only if $\langle \mathbf{v}_i, \mathbf{v}_j \rangle = \delta_{ij}$. Multiplying a vector by a nonzero scalar does not affect orthogonality.</p><p>For any nonzero vector $\mathbf{x}$, the vector $\cfrac{\mathbf{x}}{\|\mathbf{x}\|}$ is a unit vector. Obtaining a unit vector by multiplying a nonzero vector by the reciprocal of its length is called <strong>normalizing</strong>.</p>]]> </content> </entry> <entry><title xml:lang="am">Vectors and Linear Combinations</title><link href="https://www.yunseo.kim/am/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/vectors-and-linear-combinations/" rel="alternate" type="text/html" hreflang="am" /><published>2025-09-07T00:00:00+09:00</published> <updated>2025-10-28T20:47:49+09:00</updated> <id>https://www.yunseo.kim/am/posts/vectors-and-linear-combinations/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Linear Algebra" /> <summary xml:lang="am">Learn what vectors are, how to represent them, and the basics of vector operations (addition, scalar multiplication). Build intuition for linear combinations and span.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>Learn what vectors are, how to represent them, and the basics of vector operations (addition, scalar multiplication). Build intuition for linear combinations and span.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><ul><li><strong>Definition of a vector</strong><ul><li><strong>Vector in the narrow sense (Euclidean vector)</strong>: a physical quantity that has both magnitude and direction<li><strong>Vector in the broad, linear-algebraic sense</strong>: an element of a vector space</ul><li><strong>Ways to represent vectors</strong><ul><li><strong>Arrow representation</strong>: the vector’s magnitude is the length of the arrow, and its direction is the arrow’s direction. It is easy to visualize and intuitive, but it is difficult to represent higher-dimensional vectors (4D and above) or non-Euclidean vectors.<li><strong>Component representation</strong>: place the tail of the vector at the origin of a coordinate space and express the vector by the coordinates of its head.</ul><li><strong>Basic operations on vectors</strong><ul><li><strong>Sum</strong>: $(a_1, a_2, \cdots, a_n) + (b_1, b_2, \cdots, b_n) := (a_1+b_1, a_2+b_2, \cdots, a_n+b_n)$<li><strong>Scalar multiplication</strong>: $c(a_1, a_2, \cdots, a_n) := (ca_1, ca_2, \cdots, ca_n)$</ul><li><strong>Linear combination of vectors</strong><ul><li>For finitely many vectors $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n$ and scalars $a_1, a_2, \dots, a_n$, a vector $\mathbf{v}$ satisfying $\mathbf{v} = a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + \cdots + a_n\mathbf{u}_n$ is called a <strong>linear combination</strong> of $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n$.<li>The numbers $a_1, a_2, \dots, a_n$ are called the <strong>coefficients</strong> of this linear combination.</ul><li><strong>Span</strong><ul><li>For a nonempty subset $S$ of a vector space $\mathbb{V}$, the set of all linear combinations formed from vectors in $S$, denoted $\mathrm{span}(S)$.<li>By definition, $\mathrm{span}(\emptyset) = \{0\}$.<li>For a subset $S$ of a vector space $\mathbb{V}$, if $\mathrm{span}(S) = \mathbb{V}$, then $S$ is said to generate (or span) $\mathbb{V}$.</ul></ul></blockquote><h2 id="prerequisites">Prerequisites</h2><ul><li>Coordinate plane/coordinate space<li>Field</ul><h2 id="what-is-a-vector">What is a vector?</h2><h3 id="vector-in-the-narrow-sense-euclidean-vector">Vector in the narrow sense: Euclidean vector</h3><blockquote class="prompt-info"><p>Many physical quantities such as force, velocity, and acceleration carry not only magnitude but also directional information. A physical quantity that has both magnitude and direction is called a <strong>vector</strong>.</p></blockquote><p>The definition above is the one used in mechanics in physics and in high-school-level mathematics. A vector in this geometric sense—“the magnitude and direction of a directed line segment,” grounded in physical intuition—is more precisely called a <strong>Euclidean vector</strong>.</p><h3 id="vector-in-the-broad-sense-an-element-of-a-vector-space">Vector in the broad sense: an element of a vector space</h3><p>In linear algebra, vectors are defined more broadly than Euclidean vectors, as an abstract algebraic structure:</p><blockquote class="prompt-info"><p><strong>Definition</strong><br /> A <strong>vector space</strong> (or <strong>linear space</strong>) $\mathbb{V}$ over a field $F$ is a set equipped with two operations, <strong>sum</strong> and <strong>scalar multiplication</strong>, satisfying the following eight axioms. Elements of the field $F$ are called <strong>scalars</strong>, and elements of the vector space $\mathbb{V}$ are called <strong>vectors</strong>.</p><ul><li><strong>Sum</strong>: For any $\mathbf{x}, \mathbf{y} \in \mathbb{V}$, there exists a unique element $\mathbf{x} + \mathbf{y} \in \mathbb{V}$. We call $\mathbf{x} + \mathbf{y}$ the <strong>sum</strong> of $\mathbf{x}$ and $\mathbf{y}$.<li><strong>Scalar multiplication</strong>: For any $a \in F$ and $\mathbf{x} \in \mathbb{V}$, there exists a unique element $a\mathbf{x} \in \mathbb{V}$. In this case, $a\mathbf{x}$ is called the <strong>scalar multiple</strong> of $\mathbf{x}$.</ul><ol><li>For all $\mathbf{x},\mathbf{y} \in \mathbb{V}$, $\mathbf{x} + \mathbf{y} = \mathbf{y} + \mathbf{x}$. (commutativity of addition)<li>For all $\mathbf{x},\mathbf{y},\mathbf{z} \in \mathbb{V}$, $(\mathbf{x}+\mathbf{y})+\mathbf{z} = \mathbf{x}+(\mathbf{y}+\mathbf{z})$. (associativity of addition)<li>There exists $\mathbf{0} \in \mathbb{V}$ such that $\mathbf{x} + \mathbf{0} = \mathbf{x}$ for all $\mathbf{x} \in \mathbb{V}$. (zero vector, additive identity)<li>For each $\mathbf{x} \in \mathbb{V}$, there exists $\mathbf{y} \in \mathbb{V}$ such that $\mathbf{x} + \mathbf{y} = \mathbf{0}$. (additive inverse)<li>For each $\mathbf{x} \in \mathbb{V}$, $1\mathbf{x} = \mathbf{x}$. (multiplicative identity)<li>For all $a,b \in F$ and $\mathbf{x} \in \mathbb{V}$, $(ab)\mathbf{x} = a(b\mathbf{x})$. (associativity of scalar multiplication)<li>For all $a \in F$ and $\mathbf{x},\mathbf{y} \in \mathbb{V}$, $a(\mathbf{x}+\mathbf{y}) = a\mathbf{x} + a\mathbf{y}$. (distributivity of scalar multiplication over vector addition)<li>For all $a,b \in F$ and $\mathbf{x} \in \mathbb{V}$, $(a+b)\mathbf{x} = a\mathbf{x} + b\mathbf{x}$. (distributivity of scalar multiplication over field addition)</ol></blockquote><p>This definition of a vector in linear algebra encompasses a broader class than the previously mentioned <a href="#vector-in-the-narrow-sense-euclidean-vector">Euclidean vector</a>. You can verify that <a href="#vector-in-the-narrow-sense-euclidean-vector">Euclidean vectors</a> satisfy these eight properties.</p><p>The origin and development of vectors are closely tied to practical problems in physics—such as describing force, motion, rotation, and fields quantitatively. The concept was first introduced as <a href="#vector-in-the-narrow-sense-euclidean-vector">Euclidean vectors</a> to meet the physical need to mathematically express natural phenomena. Mathematics then generalized and systematized these physical ideas, establishing formal structures such as vector spaces, inner products, and exterior products, leading to today’s definition of vectors. In other words, vectors are concepts demanded by physics and formalized by mathematics—an interdisciplinary product developed through close interaction between the two communities, rather than a creation of pure mathematics alone.</p><p>The <a href="#vector-in-the-narrow-sense-euclidean-vector">Euclidean vectors</a> handled in classical mechanics can be expressed within a <a href="#vector-in-the-broad-sense-an-element-of-a-vector-space">more general framework</a> mathematically. Modern physics actively uses not only <a href="#vector-in-the-narrow-sense-euclidean-vector">Euclidean vectors</a> but also more abstract notions defined in mathematics—vector spaces, function spaces, etc.—and attaches physical meaning to them. Hence it is inappropriate to regard the two definitions of a vector as merely “the physical definition” and “the mathematical definition.”</p><p>We will defer a deeper dive into vector spaces and, for now, focus on Euclidean vectors—vectors in the narrow sense that admit geometric representation in coordinate spaces. Building intuition with Euclidean vectors first will be helpful when generalizing to other kinds of vectors later.</p><h2 id="ways-to-represent-vectors">Ways to represent vectors</h2><h3 id="arrow-representation">Arrow representation</h3><p>This is the most common and most geometrically intuitive representation. The vector’s magnitude is represented by the length of an arrow, and its direction by the direction of the arrow.</p><p><img src="https://upload.wikimedia.org/wikipedia/commons/9/95/Vector_from_A_to_B.svg" alt="Euclidean Vector from A to B" width="972" /></p><blockquote><p><em>Image credits</em></p><ul><li>Author: Wikipedia user <a href="https://en.wikipedia.org/wiki/User:Nguyenthephuc">Nguyenthephuc</a><li>License: <a href="https://creativecommons.org/licenses/by-sa/3.0/deed.en">CC BY-SA 3.0</a></ul></blockquote><p>While intuitive, this arrow representation has clear limitations for higher-dimensional vectors (4D and above). Moreover, we will eventually need to handle non-Euclidean vectors that are not easily depicted geometrically, so it is important to become comfortable with the component representation described next.</p><h3 id="component-representation">Component representation</h3><p>Regardless of where a vector is located, if its magnitude and direction are the same, we consider it the same vector. Therefore, given a coordinate space, if we fix the tail of the vector at the origin of that coordinate space, then <u>an $n$-dimensional vector corresponds to an arbitrary point in $n$-dimensional space</u>, and we can represent the vector by the coordinates of its head. This is called the <strong>component representation</strong> of a vector.</p>\[(a_1, a_2, \cdots, a_n) \in \mathbb{R}^n \text{ or } \mathbb{C}^n\]<p><img src="https://upload.wikimedia.org/wikipedia/commons/5/5d/Position_vector.svg" alt="Position vector" /></p><blockquote><p><em>Image credits</em></p><ul><li>Author: Wikimedia user <a href="https://commons.wikimedia.org/wiki/User:Acdx">Acdx</a><li>License: <a href="https://creativecommons.org/licenses/by-sa/3.0/deed.en">CC BY-SA 3.0</a></ul></blockquote><h2 id="basic-operations-on-vectors">Basic operations on vectors</h2><p>The two basic operations on vectors are <strong>sum</strong> and <strong>scalar multiplication</strong>. Every vector operation can be expressed as a combination of these two.</p><h3 id="vector-addition">Vector addition</h3><p>The sum of two vectors is again a vector; its components are obtained by adding the corresponding components of the two vectors.</p>\[(a_1, a_2, \cdots, a_n) + (b_1, b_2, \cdots, b_n) := (a_1+b_1, a_2+b_2, \cdots, a_n+b_n)\]<h3 id="scalar-multiplication-of-vectors">Scalar multiplication of vectors</h3><p>A vector can be scaled up or down by multiplying it by a scalar (a constant); the result is obtained by multiplying each component by that scalar.</p>\[c(a_1, a_2, \cdots, a_n) := (ca_1, ca_2, \cdots, ca_n)\]<p><img src="https://upload.wikimedia.org/wikipedia/commons/1/1b/Scalar_multiplication_of_vectors2.svg" alt="Scalar multiplication of vectors" /></p><blockquote><p><em>Image credits</em></p><ul><li>Author: Wikipedia user <a href="https://en.wikipedia.org/wiki/User:Silly_rabbit">Silly rabbit</a><li>License: <a href="https://creativecommons.org/licenses/by-sa/3.0/deed.en">CC BY-SA 3.0</a></ul></blockquote><h2 id="linear-combinations-of-vectors">Linear combinations of vectors</h2><p>Just as calculus starts from numbers $x$ and functions $f(x)$, linear algebra starts from vectors $\mathbf{v}, \mathbf{w}, \dots$ and their linear combinations $c\mathbf{v} + d\mathbf{w} + \cdots$. Every linear combination of vectors is built from the two basic operations above, <a href="#vector-addition">sum</a> and <a href="#scalar-multiplication-of-vectors">scalar multiplication</a>.</p><blockquote class="prompt-info"><p>Given finitely many vectors $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n$ and scalars $a_1, a_2, \dots, a_n$, a vector $\mathbf{v}$ satisfying</p>\[\mathbf{v} = a_1\mathbf{u}_1 + a_2\mathbf{u}_2 + \cdots + a_n\mathbf{u}_n\]<p>is called a <strong>linear combination</strong> of $\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n$. The numbers $a_1, a_2, \dots, a_n$ are the <strong>coefficients</strong> of this linear combination.</p></blockquote><p>Why are linear combinations important? Consider the following situation: <strong>$n$ vectors in $m$-dimensional space form the $n$ columns of an $m \times n$ matrix.</strong></p>\[\begin{gather*} \mathbf{v}_1 = (a_{11}, a_{21}, \dots, a_{m1}), \\ \mathbf{v}_2 = (a_{12}, a_{22}, \dots, a_{m2}), \\ \vdots \\ \mathbf{v}_n = (a_{1n}, a_{2n}, \dots, a_{mn}) \\ \\ A = \Bigg[ \mathbf{v}_1 \quad \mathbf{v}_2 \quad \cdots \quad \mathbf{v}_n \Bigg] \end{gather*}\]<p>The key questions are:</p><ol><li><strong>Describe all possible linear combinations $Ax = x_1\mathbf{v}_1 + x_2\mathbf{v}_2 + \cdots + x_n\mathbf{v}_n$.</strong> What do they form?<li>Given a desired output vector $b$, <strong>find numbers $x_1, x_2, \dots, x_n$ such that $Ax = b$.</strong></ol><p>We will return to the second question later; for now, focus on the first. To simplify, consider the case of two nonzero 2D vectors ($m=2$, $n=2$).</p><h3 id="the-linear-combination-cmathbfv--dmathbfw">The linear combination $c\mathbf{v} + d\mathbf{w}$</h3><p>A vector $\mathbf{v}$ in 2D has two components. For any scalar $c$, <u>the vector $c\mathbf{v}$ traces an infinitely long line through the origin in the $xy$-plane, parallel to the original vector $\mathbf{v}$.</u></p><p>If the given second vector $\mathbf{w}$ is not on this line (i.e., $\mathbf{v}$ and $\mathbf{w}$ are not parallel), then $d\mathbf{w}$ traces another line. Combining these two lines, we see that <strong>the linear combination $c\mathbf{v} + d\mathbf{w}$ fills a single plane that includes the origin.</strong></p><p><img src="https://upload.wikimedia.org/wikipedia/commons/6/6f/Linjcomb.png" alt="Linear combinations of two vectors" /></p><blockquote><p><em>Image credits</em></p><ul><li>Author: Wikimedia user <a href="https://commons.wikimedia.org/wiki/User:Svjo">Svjo</a><li>License: <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">CC BY-SA 4.0</a></ul></blockquote><h3 id="span">Span</h3><p>In this way, linear combinations of vectors form a vector space, a process called <strong>spanning</strong>.</p><blockquote class="prompt-info"><p><strong>Definition</strong><br /> For a nonempty subset $S$ of a vector space $\mathbb{V}$, the set of all linear combinations formed from vectors in $S$ is called the <strong>span</strong> of $S$ and is denoted by $\mathrm{span}(S)$. By definition, $\mathrm{span}(\emptyset) = \{0\}$.</p></blockquote><blockquote class="prompt-info"><p><strong>Definition</strong><br /> For a subset $S$ of a vector space $\mathbb{V}$, if $\mathrm{span}(S) = \mathbb{V}$, then $S$ is said to generate (or span) $\mathbb{V}$.</p></blockquote><p>Although we have not yet introduced concepts such as subspaces and bases, recalling this example will help you understand the concept of a vector space.</p>]]> </content> </entry> <entry><title xml:lang="am">Summary of Kaggle 'Pandas' Course (2) - Lessons 4–6</title><link href="https://www.yunseo.kim/am/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/summary-of-kaggle-pandas-course-2/" rel="alternate" type="text/html" hreflang="am" /><published>2025-08-24T00:00:00+09:00</published> <updated>2025-08-24T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/summary-of-kaggle-pandas-course-2/</id> <author> <name>Yunseo Kim</name> </author> <category term="AI & Data" /> <category term="Machine Learning" /> <summary xml:lang="am">Practical Pandas for data cleaning and wrangling: a concise summary of Kaggle’s free &apos;Pandas&apos; course with added notes. This part covers Lessons 4–6—grouping/sorting, data types &amp; missing values, renaming and combining.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>Practical Pandas for data cleaning and wrangling: a concise summary of Kaggle’s free 'Pandas' course with added notes. This part covers Lessons 4–6—grouping/sorting, data types & missing values, renaming and combining.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><p>I summarize here what I studied through Kaggle’s <a href="https://www.kaggle.com/learn/pandas">Pandas</a> course.<br /> Since it’s fairly long, I split it into two parts.</p><ul><li><a href="/am/posts/summary-of-kaggle-pandas-course-1/">Part 1: Lessons 1–3</a><li>Part 2: Lessons 4–6 (this post)</ul><p><img src="/assets/img/kaggle-pandas/certificate.png" alt="Certificate of Completion" /></p><h2 id="lesson-4-grouping-and-sorting">Lesson 4. Grouping and Sorting</h2><p>Sometimes you need to categorize data and perform operations per group, or sort by specific criteria.</p><h3 id="group-wise-analysis">Group-wise analysis</h3><p>Using the <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html"><code class="language-plaintext highlighter-rouge">groupby()</code></a> method, you can group rows sharing the same values in a given column and then compute summaries or apply operations per group.</p><p>Previously, we saw the <a href="/am/posts/summary-of-kaggle-pandas-course-1/#quick-summaries"><code class="language-plaintext highlighter-rouge">value_counts()</code> method</a>. You can implement the same behavior with <code class="language-plaintext highlighter-rouge">groupby()</code> as follows:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">groupby</span><span class="p">(</span><span class="sh">'</span><span class="s">taster_name</span><span class="sh">'</span><span class="p">).</span><span class="nf">size</span><span class="p">()</span>
</pre></div></div><ol><li>Group the <code class="language-plaintext highlighter-rouge">reviews</code> DataFrame by identical values in the <code class="language-plaintext highlighter-rouge">taster_name</code> column<li>Return a Series of group sizes (number of rows in each group)</ol><p>Or:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">groupby</span><span class="p">(</span><span class="sh">'</span><span class="s">taster_name</span><span class="sh">'</span><span class="p">).</span><span class="n">taster_name</span><span class="p">.</span><span class="nf">count</span><span class="p">()</span>
</pre></div></div><ol><li>Group the <code class="language-plaintext highlighter-rouge">reviews</code> DataFrame by identical values in the <code class="language-plaintext highlighter-rouge">taster_name</code> column<li>Within each group, select the <code class="language-plaintext highlighter-rouge">taster_name</code> column<li>Return a Series with the count of non-missing values</ol><p>In other words, the <code class="language-plaintext highlighter-rouge">value_counts()</code> method is essentially shorthand for the behavior above. Beyond <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.count.html"><code class="language-plaintext highlighter-rouge">count()</code></a>, you can use any summary function similarly. For instance, to find the minimum price per score in the wine data:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">groupby</span><span class="p">(</span><span class="sh">'</span><span class="s">points</span><span class="sh">'</span><span class="p">).</span><span class="n">price</span><span class="p">.</span><span class="nf">min</span><span class="p">()</span>
</pre></div></div><div class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
</pre><td class="rouge-code"><pre>points
80      5.0
81      5.0
       ... 
99     44.0
100    80.0
Name: price, Length: 21, dtype: float64
</pre></div></div><ol><li>Group the <code class="language-plaintext highlighter-rouge">reviews</code> DataFrame by identical values in the <code class="language-plaintext highlighter-rouge">points</code> column<li>Within each group, select the <code class="language-plaintext highlighter-rouge">price</code> column<li>Return the minimum value per group as a Series</ol><p>You can also group by multiple columns. To select the highest-rated wine per country and province:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">groupby</span><span class="p">([</span><span class="sh">'</span><span class="s">country</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">province</span><span class="sh">'</span><span class="p">]).</span><span class="nf">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">df</span><span class="p">:</span> <span class="n">df</span><span class="p">.</span><span class="n">loc</span><span class="p">[</span><span class="n">df</span><span class="p">.</span><span class="n">points</span><span class="p">.</span><span class="nf">idxmax</span><span class="p">()])</span>
</pre></div></div><p>Another DataFrameGroupBy method worth knowing is <a href="https://pandas.pydata.org/docs/reference/api/pandas.core.groupby.DataFrameGroupBy.agg.html"><code class="language-plaintext highlighter-rouge">agg()</code></a>. It lets you run multiple functions per group after grouping.</p><blockquote class="prompt-tip"><p>You can pass as the argument:</p><ul><li>a function<li>a string with the function name<li>a list of functions or function-name strings<li>a dictionary mapping axis labels to a function or list of functions to apply on that axis</ul><p>The function must be able to:</p><ul><li>accept a DataFrame as input, or<li>be a function acceptable to <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html"><code class="language-plaintext highlighter-rouge">DataFrame.apply()</code></a> <a href="/am/posts/summary-of-kaggle-pandas-course-1/#maps">as covered earlier</a>.</ul><p>This clarification isn’t in the original Kaggle course; I added it based on the official pandas docs.</p></blockquote><p>For example, compute per-country price statistics:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">groupby</span><span class="p">([</span><span class="sh">'</span><span class="s">country</span><span class="sh">'</span><span class="p">]).</span><span class="n">price</span><span class="p">.</span><span class="nf">agg</span><span class="p">([</span><span class="nb">len</span><span class="p">,</span> <span class="nb">min</span><span class="p">,</span> <span class="nb">max</span><span class="p">])</span>
</pre></div></div><blockquote class="prompt-tip"><p>Here <code class="language-plaintext highlighter-rouge">len</code> refers to Python’s built-in <a href="https://docs.python.org/3/library/functions.html#len"><code class="language-plaintext highlighter-rouge">len()</code></a>. In this example it reports the number of price (<code class="language-plaintext highlighter-rouge">price</code>) entries per group (<code class="language-plaintext highlighter-rouge">country</code>), <u>including missing values</u>. Since it accepts a DataFrame or Series as input, it can be used this way.</p><p>In contrast, pandas’ <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.count.html"><code class="language-plaintext highlighter-rouge">count()</code></a> returns the count of <u>non-missing values only</u>.</p><p>This note isn’t in the original Kaggle course; I added it based on the official Python and pandas documentation.</p></blockquote><h3 id="multiindex">MultiIndex</h3><p>When you perform groupby-based transformations and analyses, you’ll sometimes get a DataFrame with a MultiIndex composed of more than one level.</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
</pre><td class="rouge-code"><pre><span class="n">countries_reviewed</span> <span class="o">=</span> <span class="n">reviews</span><span class="p">.</span><span class="nf">groupby</span><span class="p">([</span><span class="sh">'</span><span class="s">country</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">province</span><span class="sh">'</span><span class="p">]).</span><span class="n">description</span><span class="p">.</span><span class="nf">agg</span><span class="p">([</span><span class="nb">len</span><span class="p">])</span>
<span class="n">countries_reviewed</span>
</pre></div></div><table><tr><th><th><th>len<tr><th>Country<th>province<th><tr><td rowspan="2">Argentina<td>Mendoza Province<td>3264<tr><td>Other<td>536<tr><td>...<td>...<td>...<tr><td rowspan="2">Uruguay<td>San Jose<td>3<tr><td>Uruguay<td>24</table><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
</pre><td class="rouge-code"><pre><span class="n">mi</span> <span class="o">=</span> <span class="n">countries_reviewed</span><span class="p">.</span><span class="n">index</span>
<span class="nf">type</span><span class="p">(</span><span class="n">mi</span><span class="p">)</span>
</pre></div></div><div class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre>pandas.core.indexes.multi.MultiIndex
</pre></div></div><p>A MultiIndex provides methods not present on a simple Index to handle hierarchical structures. For detailed usage and guidelines, see the <a href="https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html">MultiIndex / advanced indexing section of the pandas User Guide</a>.</p><p>That said, the method you’ll likely use most often is <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reset_index.html"><code class="language-plaintext highlighter-rouge">reset_index()</code></a> to flatten back to a regular Index:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">countries_reviewed</span><span class="p">.</span><span class="nf">reset_index</span><span class="p">()</span>
</pre></div></div><table><thead><tr><th> <th>country<th>province<th>len<tbody><tr><td>0<td>Argentina<td>Mendoza Province<td>3264<tr><td>1<td>Argentina<td>Other<td>536<tr><td>…<td>…<td>…<td>…<tr><td>423<td>Uruguay<td>San Jose<td>3<tr><td>424<td>Uruguay<td>Uruguay<td>24</table><h3 id="sorting">Sorting</h3><p>Looking at <code class="language-plaintext highlighter-rouge">countries_reviewed</code>, you’ll notice grouped results are returned in index order. That is, the row order of a <code class="language-plaintext highlighter-rouge">groupby</code> result is determined by index values, not by data content.</p><p>When needed, you can sort explicitly using <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html"><code class="language-plaintext highlighter-rouge">sort_values()</code></a>. For example, to sort country–province pairs in ascending order by the number of entries (‘len’):</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
</pre><td class="rouge-code"><pre><span class="n">countries_reviewed</span> <span class="o">=</span> <span class="n">countries_reviewed</span><span class="p">.</span><span class="nf">reset_index</span><span class="p">()</span>
<span class="n">countries_reviewed</span><span class="p">.</span><span class="nf">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="sh">'</span><span class="s">len</span><span class="sh">'</span><span class="p">)</span>
</pre></div></div><table><thead><tr><th> <th>country<th>province<th>len<tbody><tr><td>179<td>Greece<td>Muscat of Kefallonian<td>1<tr><td>192<td>Greece<td>Sterea Ellada<td>1<tr><td>…<td>…<td>…<td>…<tr><td>415<td>US<td>Washington<td>8639<tr><td>392<td>US<td>California<td>36247</table><p><code class="language-plaintext highlighter-rouge">sort_values()</code> sorts ascending by default (low to high), but you can sort descending (high to low) by specifying:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">countries_reviewed</span><span class="p">.</span><span class="nf">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="sh">'</span><span class="s">len</span><span class="sh">'</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</pre></div></div><table><thead><tr><th> <th>country<th>province<th>len<tbody><tr><td>392<td>US<td>California<td>36247<tr><td>415<td>US<td>Washington<td>8639<tr><td>…<td>…<td>…<td>…<tr><td>63<td>Chile<td>Coelemu<td>1<tr><td>149<td>Greece<td>Beotia<td>1</table><p>To sort by index instead, use <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_index.html"><code class="language-plaintext highlighter-rouge">sort_index()</code></a>. It accepts the same parameters and has the same default order (descending) as <code class="language-plaintext highlighter-rouge">sort_values()</code>.</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">countries_reviewed</span><span class="p">.</span><span class="nf">sort_index</span><span class="p">()</span>
</pre></div></div><table><thead><tr><th> <th>country<th>province<th>len<tbody><tr><td>0<td>Argentina<td>Mendoza Province<td>3264<tr><td>1<td>Argentina<td>Other<td>536<tr><td>…<td>…<td>…<td>…<tr><td>423<td>Uruguay<td>San Jose<td>3<tr><td>424<td>Uruguay<td>Uruguay<td>24</table><p>Lastly, you can sort by multiple columns at once:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">countries_reviewed</span><span class="p">.</span><span class="nf">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="p">[</span><span class="sh">'</span><span class="s">country</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">len</span><span class="sh">'</span><span class="p">])</span>
</pre></div></div><h2 id="lesson-5-data-types-and-missing-values">Lesson 5. Data Types and Missing Values</h2><p>In practice, data rarely comes perfectly clean. More often than not, column types aren’t what you want and need conversion, and missing values appear throughout and must be handled carefully. For most data workflows, this stage is the biggest hurdle.</p><h3 id="data-types">Data types</h3><p>The data type of a DataFrame column or a Series is its <strong>dtype</strong>. Use the <code class="language-plaintext highlighter-rouge">dtype</code> attribute to check the type of a specific column. For example, to inspect the dtype of the <code class="language-plaintext highlighter-rouge">price</code> column in <code class="language-plaintext highlighter-rouge">reviews</code>:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="n">price</span><span class="p">.</span><span class="n">dtype</span>
</pre></div></div><div class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre>dtype('float64')
</pre></div></div><p>Or use the <code class="language-plaintext highlighter-rouge">dtypes</code> attribute to inspect all column dtypes at once:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="n">dtypes</span>
</pre></div></div><div class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
</pre><td class="rouge-code"><pre>country        object
description    object
                ...  
variety        object
winery         object
Length: 13, dtype: object
</pre></div></div><p>A dtype reflects how pandas stores data internally. For instance, <code class="language-plaintext highlighter-rouge">float64</code> is a 64-bit floating-point number, and <code class="language-plaintext highlighter-rouge">int64</code> is a 64-bit integer.</p><p>One peculiarity: columns of pure strings don’t have a dedicated string type (in this context) and are treated as generic Python objects (<code class="language-plaintext highlighter-rouge">object</code>).</p><p>Use <a href="https://pandas.pydata.org/docs/reference/api/pandas.Series.astype.html"><code class="language-plaintext highlighter-rouge">astype()</code></a> to convert a column from one type to another. For example, convert the <code class="language-plaintext highlighter-rouge">points</code> column from <code class="language-plaintext highlighter-rouge">int64</code> to <code class="language-plaintext highlighter-rouge">float64</code>:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="n">points</span><span class="p">.</span><span class="nf">astype</span><span class="p">(</span><span class="sh">'</span><span class="s">float64</span><span class="sh">'</span><span class="p">)</span>
</pre></div></div><div class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
</pre><td class="rouge-code"><pre>0         87.0
1         87.0
          ... 
129969    90.0
129970    90.0
Name: points, Length: 129971, dtype: float64
</pre></div></div><p>A DataFrame (or Series) index also has a dtype:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="n">index</span><span class="p">.</span><span class="n">dtype</span>
</pre></div></div><div class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre>dtype('int64')
</pre></div></div><p>Pandas also supports “extension” dtypes such as categorical and various time-series types.</p><h3 id="missing-values">Missing values</h3><p>Empty entries are represented as <code class="language-plaintext highlighter-rouge">NaN</code> (short for “Not a Number”). For technical reasons, <code class="language-plaintext highlighter-rouge">NaN</code> is always of dtype <code class="language-plaintext highlighter-rouge">float64</code>.</p><p>Pandas provides helper functions for missing data. <a href="/am/posts/summary-of-kaggle-pandas-course-1/#conditional-selection">We briefly saw something similar before</a>: in addition to methods, pandas has standalone functions <a href="https://pandas.pydata.org/docs/reference/api/pandas.isna.html"><code class="language-plaintext highlighter-rouge">pd.isna</code></a> and <a href="https://pandas.pydata.org/docs/reference/api/pandas.notna.html"><code class="language-plaintext highlighter-rouge">pd.notna</code></a>. They return a single boolean or a boolean array indicating whether entries are missing (or not), and can be used like this:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">[</span><span class="n">pd</span><span class="p">.</span><span class="nf">isna</span><span class="p">(</span><span class="n">reviews</span><span class="p">.</span><span class="n">country</span><span class="p">)]</span>
</pre></div></div><p>Often you’ll want to detect missing values and then fill them with appropriate replacements. One strategy is to use <a href="https://pandas.pydata.org/docs/reference/api/pandas.Series.fillna.html"><code class="language-plaintext highlighter-rouge">fillna()</code></a> to replace <code class="language-plaintext highlighter-rouge">NaN</code>s with a chosen value. For example, replace all <code class="language-plaintext highlighter-rouge">NaN</code> in the <code class="language-plaintext highlighter-rouge">region_2</code> column with <code class="language-plaintext highlighter-rouge">"Unknown"</code>:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="n">region_2</span><span class="p">.</span><span class="nf">fillna</span><span class="p">(</span><span class="sh">"</span><span class="s">Unknown</span><span class="sh">"</span><span class="p">)</span>
</pre></div></div><p>Alternatively, you can use forward fill or backward fill to propagate the nearest valid value from above or below, via <a href="https://pandas.pydata.org/docs/reference/api/pandas.Series.ffill.html"><code class="language-plaintext highlighter-rouge">ffill()</code></a> and <a href="https://pandas.pydata.org/docs/reference/api/pandas.Series.bfill.html"><code class="language-plaintext highlighter-rouge">bfill()</code></a>, respectively.</p><blockquote class="prompt-danger"><p>Previously you could pass <code class="language-plaintext highlighter-rouge">'ffill'</code>/<code class="language-plaintext highlighter-rouge">'bfill'</code> to the <code class="language-plaintext highlighter-rouge">method</code> parameter of <code class="language-plaintext highlighter-rouge">fillna()</code>, but this became deprecated starting in pandas 2.1.0. Prefer <code class="language-plaintext highlighter-rouge">ffill()</code> or <code class="language-plaintext highlighter-rouge">bfill()</code> directly instead.</p></blockquote><p>Sometimes you need to replace a value with another even if it’s not missing. The original Kaggle course gives an example of a reviewer changing their Twitter handle. That’s a fine example, but here’s one that may feel more relatable to Korean readers:</p><p>Suppose South Korea split the northern part of Gyeonggi-do and established a new administrative region called <strong>Gyeonggibuk-do</strong>, and you have a dataset reflecting that change. Now imagine someone floated the harebrained idea of renaming <strong>Gyeonggibuk-do</strong> to <strong>Pyeonghwanuri Special Self-Governing Province</strong>, and actually managed to ram it through—a purely hypothetical scenario, of course. <del>It’s scary how close something like this might have come to happening.</del> You would then need to replace <code class="language-plaintext highlighter-rouge">"Gyeonggibuk-do"</code> with a new value like <code class="language-plaintext highlighter-rouge">"Pyeonghwanuri State"</code> or <code class="language-plaintext highlighter-rouge">"Pyeonghwanuri Special Self-Governing Province"</code> in the dataset. One way to do this in pandas is with <a href="https://pandas.pydata.org/docs/reference/api/pandas.Series.replace.html"><code class="language-plaintext highlighter-rouge">replace()</code></a>:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">rok_2030_census</span><span class="p">.</span><span class="n">province</span><span class="p">.</span><span class="nf">replace</span><span class="p">(</span><span class="sh">"</span><span class="s">Gyeonggibuk-do</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">Pyeonghwanuri Special Self-Governing Province</span><span class="sh">"</span><span class="p">)</span>
</pre></div></div><p>With this snippet, you can effectively bulk-replace every <code class="language-plaintext highlighter-rouge">"Gyeonggibuk-do"</code> string in the <code class="language-plaintext highlighter-rouge">province</code> column of the <code class="language-plaintext highlighter-rouge">rok_2030_census</code> dataset with ‘that long one’. <del>It’s a relief no one actually had to run code like this in real life.</del></p><p>String replacement is also useful during cleaning, since missingness is often encoded as strings like <code class="language-plaintext highlighter-rouge">"Unknown"</code>, <code class="language-plaintext highlighter-rouge">"Undisclosed"</code>, or <code class="language-plaintext highlighter-rouge">"Invalid"</code> rather than <code class="language-plaintext highlighter-rouge">NaN</code>. In real-world workflows such as OCR-ing old official documents into datasets, this may be the norm rather than the exception.</p><h2 id="lesson-6-renaming-and-combining">Lesson 6. Renaming and Combining</h2><p>Sometimes you need to rename specific columns or index labels in a dataset. You’ll also frequently have to combine multiple DataFrames or Series.</p><h3 id="renaming">Renaming</h3><p>Use <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rename.html"><code class="language-plaintext highlighter-rouge">rename()</code></a> to rename columns or index labels. It supports various input formats, but a Python dictionary is usually the most convenient. The following examples rename the <code class="language-plaintext highlighter-rouge">points</code> column to <code class="language-plaintext highlighter-rouge">score</code> and relabel index entries <code class="language-plaintext highlighter-rouge">0</code> and <code class="language-plaintext highlighter-rouge">1</code> to <code class="language-plaintext highlighter-rouge">firstEntry</code> and <code class="language-plaintext highlighter-rouge">secondEntry</code>:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">rename</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">points</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">score</span><span class="sh">'</span><span class="p">})</span>
</pre></div></div><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">rename</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="p">{</span><span class="mi">0</span><span class="p">:</span> <span class="sh">'</span><span class="s">firstEntry</span><span class="sh">'</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span> <span class="sh">'</span><span class="s">secondEntry</span><span class="sh">'</span><span class="p">})</span>
</pre></div></div><p>In practice, renaming columns is common, while renaming index values is rare; for that purpose, it’s usually more convenient to use <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.set_index.html"><code class="language-plaintext highlighter-rouge">set_index()</code></a> <a href="/am/posts/summary-of-kaggle-pandas-course-1/#manipulating-the-index">as we saw earlier</a>.</p><p>Both the row and column axes have a <code class="language-plaintext highlighter-rouge">name</code> attribute. You can rename these axis names with <code class="language-plaintext highlighter-rouge">rename_axis()</code>. For example, label the row axis as <code class="language-plaintext highlighter-rouge">wines</code> and the column axis as <code class="language-plaintext highlighter-rouge">fields</code>:</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
</pre><td class="rouge-code"><pre><span class="n">reviews</span><span class="p">.</span><span class="nf">rename_axis</span><span class="p">(</span><span class="sh">"</span><span class="s">wines</span><span class="sh">"</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="sh">'</span><span class="s">index</span><span class="sh">'</span><span class="p">).</span><span class="nf">rename_axis</span><span class="p">(</span><span class="sh">"</span><span class="s">fields</span><span class="sh">"</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="sh">'</span><span class="s">columns</span><span class="sh">'</span><span class="p">)</span>
</pre></div></div><h3 id="combining-datasets">Combining datasets</h3><p>You’ll often need to combine DataFrames or Series. Pandas provides three core tools for this, from simplest to most flexible: <a href="https://pandas.pydata.org/docs/reference/api/pandas.concat.html"><code class="language-plaintext highlighter-rouge">concat()</code></a>, <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html"><code class="language-plaintext highlighter-rouge">join()</code></a>, and <a href="https://pandas.pydata.org/docs/reference/api/pandas.merge.html"><code class="language-plaintext highlighter-rouge">merge()</code></a>. The Kaggle course focuses on the first two, noting that most <code class="language-plaintext highlighter-rouge">merge()</code> tasks can be done more simply with <code class="language-plaintext highlighter-rouge">join()</code>.</p><p><code class="language-plaintext highlighter-rouge">concat()</code> is the simplest: it stitches multiple DataFrames or Series along a given axis. It’s handy when the objects share the same fields (columns). By default, it concatenates along the index axis; specify <code class="language-plaintext highlighter-rouge">axis=1</code> or <code class="language-plaintext highlighter-rouge">axis='columns'</code> to concatenate along columns.</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
</pre><td class="rouge-code"><pre><span class="o">&gt;&gt;&gt;</span> <span class="n">s1</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">Series</span><span class="p">([</span><span class="sh">'</span><span class="s">a</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">b</span><span class="sh">'</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">s2</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">Series</span><span class="p">([</span><span class="sh">'</span><span class="s">c</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">d</span><span class="sh">'</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">pd</span><span class="p">.</span><span class="nf">concat</span><span class="p">([</span><span class="n">s1</span><span class="p">,</span> <span class="n">s2</span><span class="p">])</span>
<span class="mi">0</span>    <span class="n">a</span>
<span class="mi">1</span>    <span class="n">b</span>
<span class="mi">0</span>    <span class="n">c</span>
<span class="mi">1</span>    <span class="n">d</span>
<span class="n">dtype</span><span class="p">:</span> <span class="nb">object</span>
</pre></div></div><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre><td class="rouge-code"><pre><span class="o">&gt;&gt;&gt;</span> <span class="n">df1</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">([[</span><span class="sh">'</span><span class="s">a</span><span class="sh">'</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="p">[</span><span class="sh">'</span><span class="s">b</span><span class="sh">'</span><span class="p">,</span> <span class="mi">2</span><span class="p">]],</span>
<span class="p">...</span>                    <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="sh">'</span><span class="s">letter</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">number</span><span class="sh">'</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df1</span>
  <span class="n">letter</span>  <span class="n">number</span>
<span class="mi">0</span>      <span class="n">a</span>       <span class="mi">1</span>
<span class="mi">1</span>      <span class="n">b</span>       <span class="mi">2</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df2</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">([[</span><span class="sh">'</span><span class="s">c</span><span class="sh">'</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="p">[</span><span class="sh">'</span><span class="s">d</span><span class="sh">'</span><span class="p">,</span> <span class="mi">4</span><span class="p">]],</span>
<span class="p">...</span>                    <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="sh">'</span><span class="s">letter</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">number</span><span class="sh">'</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df2</span>
  <span class="n">letter</span>  <span class="n">number</span>
<span class="mi">0</span>      <span class="n">c</span>       <span class="mi">3</span>
<span class="mi">1</span>      <span class="n">d</span>       <span class="mi">4</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">pd</span><span class="p">.</span><span class="nf">concat</span><span class="p">([</span><span class="n">df1</span><span class="p">,</span> <span class="n">df2</span><span class="p">])</span>
  <span class="n">letter</span>  <span class="n">number</span>
<span class="mi">0</span>      <span class="n">a</span>       <span class="mi">1</span>
<span class="mi">1</span>      <span class="n">b</span>       <span class="mi">2</span>
<span class="mi">0</span>      <span class="n">c</span>       <span class="mi">3</span>
<span class="mi">1</span>      <span class="n">d</span>       <span class="mi">4</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df4</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">([[</span><span class="sh">'</span><span class="s">bird</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">polly</span><span class="sh">'</span><span class="p">],</span> <span class="p">[</span><span class="sh">'</span><span class="s">monkey</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">george</span><span class="sh">'</span><span class="p">]],</span>
<span class="p">...</span>                    <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="sh">'</span><span class="s">animal</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">name</span><span class="sh">'</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df4</span>
   <span class="n">animal</span>    <span class="n">name</span>
<span class="mi">0</span>    <span class="n">bird</span>   <span class="n">polly</span>
<span class="mi">1</span>  <span class="n">monkey</span>  <span class="n">george</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">pd</span><span class="p">.</span><span class="nf">concat</span><span class="p">([</span><span class="n">df1</span><span class="p">,</span> <span class="n">df4</span><span class="p">],</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
  <span class="n">letter</span>  <span class="n">number</span>  <span class="n">animal</span>    <span class="n">name</span>
<span class="mi">0</span>      <span class="n">a</span>       <span class="mi">1</span>    <span class="n">bird</span>   <span class="n">polly</span>
<span class="mi">1</span>      <span class="n">b</span>       <span class="mi">2</span>  <span class="n">monkey</span>  <span class="n">george</span>
</pre></div></div><blockquote class="prompt-tip"><p>According to the <a href="(https://pandas.pydata.org/docs/reference/api/pandas.concat.html)">pandas docs</a>, when building a DataFrame from many rows, avoid appending rows one by one in a loop. Instead, collect the rows in a list and perform a single <code class="language-plaintext highlighter-rouge">concat()</code>.</p></blockquote><p><code class="language-plaintext highlighter-rouge">join()</code> is more complex: it attaches another DataFrame to a base DataFrame by aligning on the index. If the two DataFrames have overlapping column names, you must specify <code class="language-plaintext highlighter-rouge">lsuffix</code> and <code class="language-plaintext highlighter-rouge">rsuffix</code> to disambiguate them.</p><div class="language-python highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre><td class="rouge-code"><pre><span class="o">&gt;&gt;&gt;</span> <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">({</span><span class="sh">'</span><span class="s">key</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">K0</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K1</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K2</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K3</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K4</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K5</span><span class="sh">'</span><span class="p">],</span>
<span class="p">...</span>                    <span class="sh">'</span><span class="s">A</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">A0</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">A1</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">A2</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">A3</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">A4</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">A5</span><span class="sh">'</span><span class="p">]})</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df</span>
  <span class="n">key</span>   <span class="n">A</span>
<span class="mi">0</span>  <span class="n">K0</span>  <span class="n">A0</span>
<span class="mi">1</span>  <span class="n">K1</span>  <span class="n">A1</span>
<span class="mi">2</span>  <span class="n">K2</span>  <span class="n">A2</span>
<span class="mi">3</span>  <span class="n">K3</span>  <span class="n">A3</span>
<span class="mi">4</span>  <span class="n">K4</span>  <span class="n">A4</span>
<span class="mi">5</span>  <span class="n">K5</span>  <span class="n">A5</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">other</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">({</span><span class="sh">'</span><span class="s">key</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">K0</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K1</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">K2</span><span class="sh">'</span><span class="p">],</span>
<span class="p">...</span>                       <span class="sh">'</span><span class="s">B</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">B0</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">B1</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">B2</span><span class="sh">'</span><span class="p">]})</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">other</span>
  <span class="n">key</span>   <span class="n">B</span>
<span class="mi">0</span>  <span class="n">K0</span>  <span class="n">B0</span>
<span class="mi">1</span>  <span class="n">K1</span>  <span class="n">B1</span>
<span class="mi">2</span>  <span class="n">K2</span>  <span class="n">B2</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">df</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">lsuffix</span><span class="o">=</span><span class="sh">'</span><span class="s">_caller</span><span class="sh">'</span><span class="p">,</span> <span class="n">rsuffix</span><span class="o">=</span><span class="sh">'</span><span class="s">_other</span><span class="sh">'</span><span class="p">)</span>
  <span class="n">key_caller</span>   <span class="n">A</span> <span class="n">key_other</span>    <span class="n">B</span>
<span class="mi">0</span>         <span class="n">K0</span>  <span class="n">A0</span>        <span class="n">K0</span>   <span class="n">B0</span>
<span class="mi">1</span>         <span class="n">K1</span>  <span class="n">A1</span>        <span class="n">K1</span>   <span class="n">B1</span>
<span class="mi">2</span>         <span class="n">K2</span>  <span class="n">A2</span>        <span class="n">K2</span>   <span class="n">B2</span>
<span class="mi">3</span>         <span class="n">K3</span>  <span class="n">A3</span>       <span class="n">NaN</span>  <span class="n">NaN</span>
<span class="mi">4</span>         <span class="n">K4</span>  <span class="n">A4</span>       <span class="n">NaN</span>  <span class="n">NaN</span>
<span class="mi">5</span>         <span class="n">K5</span>  <span class="n">A5</span>       <span class="n">NaN</span>  <span class="n">NaN</span>
</pre></div></div>]]> </content> </entry> <entry><title xml:lang="am">የድር አፈጻጸም መለኪያዎች (Web Vitals)</title><link href="https://www.yunseo.kim/am/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/about-web-vitals/" rel="alternate" type="text/html" hreflang="am" /><published>2025-08-05T00:00:00+09:00</published> <updated>2025-08-05T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/about-web-vitals/</id> <author> <name>Yunseo Kim</name> </author> <category term="Dev" /> <category term="Web Dev" /> <summary xml:lang="am">የድር አፈጻጸም መለኪያዎች(Web Vitals) እና የLighthouse መለኪያና ግምገማ መስፈርቶችን በማጠቃለል፣ እያንዳንዱ የአፈጻጸም መለኪያ ምን እንደሚያመለክት እንመለከታለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>የድር አፈጻጸም መለኪያዎች(Web Vitals) እና የLighthouse መለኪያና ግምገማ መስፈርቶችን በማጠቃለል፣ እያንዳንዱ የአፈጻጸም መለኪያ ምን እንደሚያመለክት እንመለከታለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="የድር-አፈጻጸምን-የሚወስኑ-ነገሮች">የድር አፈጻጸምን የሚወስኑ ነገሮች</h2><p>የድር አፈጻጸም ማሻሻያን ሲያደርጉ ሊጠበቁ የሚገቡ የድር አፈጻጸምን የሚወስኑ ነገሮች በአጠቃላይ ወደ ሁለት ክፍሎች ሊከፈሉ ይችላሉ፤ የመጫን አፈጻጸም እና የሬንደሪንግ አፈጻጸም።</p><h3 id="የhtml-መጫን-አፈጻጸም">የHTML መጫን አፈጻጸም</h3><ul><li>በኔትወርክ አማካኝነት ለመጀመሪያ ጊዜ የድር ገጹን ከሰርቨር ከጠየቀ በኋላ፣ የHTML ሰነዱን እስኪቀበል እና አሳሹ ሬንደሪንግ መጀመር እስከሚጀምር ያለውን ጊዜ ይለካል<li>ገጹ ምን ያህል ፈጥኖ መታየት እንደሚጀምር ይወስናል<li>እንደ redirect መቀነስ፣ የHTML ምላሽ caching፣ የምንጭ መጨመቅ፣ ተገቢ CDN መጠቀም ባሉ መንገዶች ማሻሻል ይቻላል</ul><h3 id="የሬንደሪንግ-አፈጻጸም">የሬንደሪንግ አፈጻጸም</h3><ul><li>አሳሹ ተጠቃሚው የሚያየውን ማያ ገጽ ለመሳል እና ከእሱ ጋር እንዲገናኝ ለማድረግ የሚፈጅበት ጊዜ<li>ማያ ገጹ ምን ያህል ለስላሳና ፈጣን እንደሚሳል ይወስናል<li>አላስፈላጊ CSS እና JS ማስወገድ፣ የፎንትና የthumbnail ዘግይቶ መጫን መከላከል፣ ከባድ ስሌቶችን ወደ ተለየ Web Worker መለየት በማድረግ የmain thread ተይዞታን መቀነስ፣ አኒሜሽን ማሻሻል ወዘተ ባሉ መንገዶች ማሻሻል ይቻላል</ul><h2 id="የድር-አፈጻጸም-መለኪያዎች-web-vitals">የድር አፈጻጸም መለኪያዎች (Web Vitals)</h2><p>በGoogle ၏ <a href="https://web.dev/performance?hl=am">web.dev</a> እና <a href="https://developer.chrome.com/docs/lighthouse/performance/performance-scoring?hl=am">የChrome የገንቢ ሰነዶች</a> ላይ ተመስርቶ ይቀርባል። ልዩ ምክንያት ከሌለ ከአንድ ብቻ የአፈጻጸም መለኪያ ላይ ከማተኮር ይልቅ አጠቃላይ ማሻሻያን መድረስ የተሻለ ነው፣ እና ማሻሻል በሚፈልጉት ድረ ገጽ ውስጥ የትኛው ክፍል የአፈጻጸም መከለያ እንደሆነ ማወቅ አስፈላጊ ነው። እንዲሁም የእውነተኛ ተጠቃሚ ውሂብ ስታቲስቲክስ ካለ፣ ከላይ የሚገኙ ወይም አማካይ እሴቶች ይልቅ Q1 ያሉ ዝቅተኛ እሴቶችን መመልከት እና በእነዚያ ሁኔታዎችም የዒላማ መስፈርት መድረሱን ማረጋገጥ ከዚያም ማሻሻል የተሻለ ነው።</p><h3 id="ዋና-የድር-አፈጻጸም-መለኪያዎች-core-web-vitals">ዋና የድር አፈጻጸም መለኪያዎች (Core Web Vitals)</h3><p>ቆይቶ እናየዋለን ቢሆንም በድር አፈጻጸም መለኪያዎች(Web Vitals) ውስጥ ብዙ አይነቶች አሉ። ግን ከእነዚህ መካከል በተለይ ከተጠቃሚ ልምድ ጋር በጣም ቅርብ ግንኙነት ያላቸው እና በሙከራ አካባቢ ሳይሆን በእውነተኛ አካባቢ ሊለኩ የሚችሉትን የሚከተሉትን 3 መለኪያዎች Google በተለይ አስፈላጊ ብሎ ይቆጥራቸዋል፣ እነዚህንም <a href="https://web.dev/articles/vitals?hl=am#core-web-vitals">ዋና የድር አፈጻጸም መለኪያዎች(Core Web Vitals)</a> ብሎ ይጠራቸዋል። Google በራሱ የፍለጋ ሞተር የፍለጋ ውጤት ቅደም ተከተል ውስጥም የተመረጠው ድረ ገጽ ዋና የድር አፈጻጸም መለኪያዎችን ስለሚያካትት፣ ከጣቢያ አስተዳዳሪ እይታ አንጻርም እነዚህ መለኪያዎች በፍለጋ ሞተር ማሻሻያ(SEO) አንጻር በጥንቃቄ ሊታዩ ይገባል።</p><ul><li><a href="#lcp-ትልቁ-የይዘት-ስዕል-largest-contentful-paint">Largest Contentful Paint (LCP)</a>: <em>የመጫን አፈጻጸም</em>ን ያንጸባርቃል፣ በ2.5 ሰከንድ ውስጥ መሆን አለበት<li><a href="https://web.dev/articles/inp?hl=am">Interaction to Next Paint (INP)</a>: <em>ምላሽ ሰጪነት</em>ን ያንጸባርቃል፣ 200ms ወይም ከዚያ በታች መሆን አለበት<li><a href="#cls-ድምር-የአቀማመጥ-መንቀሳቀስ-cumulative-layout-shift">Cummulative Layout Shift (CLS)</a>: <em>እይታዊ መረጋጋት</em>ን ያንጸባርቃል፣ ከ0.1 በታች መጠበቅ አለበት</ul><p>ዋና የድር አፈጻጸም መለኪያዎች በመሠረቱ በእውነተኛ አካባቢ ለመለካት የተዘጋጁ ቢሆኑም፣ INP ን ካልተቀረ ሌሎቹ ሁለቱ በChrome የገንቢ መሣሪያዎች ወይም Lighthouse ያሉ የሙከራ አካባቢዎች ውስጥም ሊለኩ ይችላሉ። INP ግን እውነተኛ የተጠቃሚ ግብዓት ሲሰጥ ብቻ ሊለካ ስለሚችል በሙከራ አካባቢ ሊለካ አይችልም፤ በእንዲህ ሁኔታ <a href="#tbt-ጠቅላላ-የማገጃ-ጊዜ-total-blocking-time">TBT</a> ከINP ጋር በጣም ከፍተኛ የተዛማጅነት እና ተመሳሳይ የአፈጻጸም መለኪያ ስለሆነ በምትኩ መጠቀም ይቻላል፣ እና <a href="https://web.dev/articles/vitals?hl=am#lab_tools_to_measure_core_web_vitals">በብዙ ጊዜ TBT ሲሻሻል INP ደግሞ አብሮ ይሻሻላል</a>።</p><h3 id="የlighthouse-10-የአፈጻጸም-ነጥብ-ክብደቶች">የLighthouse 10 የአፈጻጸም ነጥብ ክብደቶች</h3><p><a href="https://developer.chrome.com/docs/lighthouse/performance/performance-scoring?hl=am">Lighthouse የአፈጻጸም ነጥብ በእያንዳንዱ የመለኪያ ንጥል ነጥብ የተመዘነ አማካይ በመሆን ይሰላል፣ እና በዚህ ጊዜ የሚከተለውን ሰንጠረዥ ክብደት ይከተላል</a>።</p><table><thead><tr><th>የመለኪያ ንጥል<th>ክብደት<tbody><tr><td><a href="#fcp-የመጀመሪያ-ይዘታዊ-ስዕል-first-contentful-paint">First Contentful Paint</a><td>10%<tr><td><a href="#si-የፍጥነት-መረጃ-ጠቋሚ-speed-index">Speed Index</a><td>10%<tr><td><a href="#lcp-ትልቁ-የይዘት-ስዕል-largest-contentful-paint">Largest Contentful Paint</a><td>25%<tr><td><a href="#tbt-ጠቅላላ-የማገጃ-ጊዜ-total-blocking-time">Total Blocking Time</a><td>30%<tr><td><a href="#cls-ድምር-የአቀማመጥ-መንቀሳቀስ-cumulative-layout-shift">Cumulative Layout Shift</a><td>25%</table><h3 id="fcp-የመጀመሪያ-ይዘታዊ-ስዕል-first-contentful-paint">FCP (የመጀመሪያ ይዘታዊ ስዕል, First Contentful Paint)</h3><ul><li>ገጹ ከተጠየቀ በኋላ የመጀመሪያው DOM ይዘት እስኪሬንደር ድረስ የሚፈጅውን ጊዜ ይለካል<li>በገጹ ውስጥ ያሉ ምስሎች፣ ነጭ ያልሆነ <code class="language-plaintext highlighter-rouge">&lt;canvas&gt;</code> ኤለመንት፣ SVG ወዘተን እንደ DOM ይዘት ይቆጥራል፣ ነገር ግን በ<code class="language-plaintext highlighter-rouge">iframe</code> ውስጥ ያለ ይዘትን አያካትትም</ul><blockquote class="prompt-tip"><p>FCP ላይ በተለይ አስፈላጊ ተጽእኖ ከሚያሳድሩ ነገሮች አንዱ የፎንት መጫን ጊዜ ሲሆን፣ ስለዚህ የማሻሻያ መንገዶች <a href="https://developer.chrome.com/docs/lighthouse/performance/font-display?hl=am">ተዛማጅ ፖስት</a> ላይ እንዲመለከቱ <a href="https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/?hl=am">የChrome የገንቢ ሰነዶች</a> ይመክራሉ።</p></blockquote><h4 id="የlighthouse-ግምገማ-መስፈርት">የLighthouse ግምገማ መስፈርት</h4><p><a href="https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/?hl=am">የChrome የገንቢ ሰነዶች</a> መሰረት፣ የLighthouse ግምገማ መስፈርት የሚከተለው ሰንጠረዥ ነው።</p><table><thead><tr><th>የቀለም ደረጃ<th>ሞባይል FCP (ሰከንድ)<th>ዴስክቶፕ FCP (ሰከንድ)<tbody><tr><td>አረንጓዴ (ፈጣን)<td>0-1.8<td>0-0.9<tr><td>ብርቱካናማ (መካከለኛ)<td>1.8-3<td>0.9-1.6<tr><td>ቀይ (ዝግ)<td>ከ3 በላይ<td>ከ1.6 በላይ</table><h3 id="lcp-ትልቁ-የይዘት-ስዕል-largest-contentful-paint">LCP (ትልቁ የይዘት ስዕል, Largest Contentful Paint)</h3><ul><li>ድረ ገጹን ለመጀመሪያ ጊዜ ሲከፍቱት፣ በመጀመሪያ በማያ ገጹ ላይ የሚታየውን የማሳያ ክልል(viewport) መሠረት በማድረግ፣ በዚያ ክልል ውስጥ በጣም ትልቅ ተደርጎ የሚታየውን ኤለመንት(ምስል፣ የጽሑፍ ብሎክ፣ ቪዲዮ ወዘተ) ለመሬንደር የሚፈጅውን ጊዜ ይለካል<li>በማያ ገጹ ላይ የሚይዘው ስፋት በጣም ሰፊ ከሆነ ከተጠቃሚ አንጻር እንደ ዋና ይዘት የሚሰማው እድል ከፍ ይላል<li>LCP ምስል ከሆነ፣ የተወሰነው ጊዜ ወደ 4 ንዑስ ክፍሎች ሊከፈል ይችላል፣ ከእነዚህም ውስጥ መከለያ የሚፈጠረው የት እንደሆነ መረዳት አስፈላጊ ነው<ol><li>Time to first byte (TTFB): ገጽ መጫን ከጀመረበት ጊዜ ጀምሮ የHTML ሰነድ ምላሽ የመጀመሪያው ባይት እስኪደርስ ድረስ ያለው ጊዜ<li>የመጫን መዘግየት(Load delay): አሳሹ የLCP ምንጩን መጫን ጀመረበት ጊዜ እና TTFB መካከል ያለው ልዩነት<li>የመጫን ጊዜ(Load time): የLCP ምንጩን ራሱን ለመጫን የፈጀው ጊዜ<li>የሬንደሪንግ መዘግየት(Render delay): የLCP ምንጩ መጫኑ ከተጠናቀቀበት ጊዜ ጀምሮ የLCP ኤለመንቱ ሙሉ በሙሉ እስኪሬንደር ድረስ ያለው ጊዜ</ol></ul><h4 id="የlighthouse-ግምገማ-መስፈርት-1">የLighthouse ግምገማ መስፈርት</h4><p><a href="https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/?hl=am">የChrome የገንቢ ሰነዶች</a> መሰረት፣ የLighthouse ግምገማ መስፈርት የሚከተለው ሰንጠረዥ ነው።</p><table><thead><tr><th>የቀለም ደረጃ<th>ሞባይል LCP (ሰከንድ)<th>ዴስክቶፕ LCP (ሰከንድ)<tbody><tr><td>አረንጓዴ (ፈጣን)<td>0-2.5<td>0-1.2<tr><td>ብርቱካናማ (መካከለኛ)<td>2.5-4<td>1.2-2.4<tr><td>ቀይ (ዝግ)<td>ከ4 በላይ<td>ከ2.4 በላይ</table><h3 id="tbt-ጠቅላላ-የማገጃ-ጊዜ-total-blocking-time">TBT (ጠቅላላ የማገጃ ጊዜ, Total Blocking Time)</h3><ul><li>ድረ ገጹ እንደ የአይጥ ጠቅታ፣ የማያ ገጽ ንክኪ፣ የቁልፍ ሰሌዳ ግቤት ያሉ የተጠቃሚ ግብዓቶችን መልስ ለመስጠት ያልቻለበትን ጠቅላላ ጊዜ ይለካል<li>በFCP እና <a href="https://developer.chrome.com/docs/lighthouse/performance/interactive?hl=am">TTI(የመስተጋብር መጀመሪያ ጊዜ, Time to Interactive)</a>* መካከል ካሉ ስራዎች ውስጥ 50ms ወይም ከዚያ በላይ የተካሄዱ ስራዎችን <a href="https://web.dev/articles/long-tasks-devtools?hl=am">ረጅም ስራዎች</a> ብሎ ይቆጥራል፣ እና እነዚህ ረጅም ስራዎች እያንዳንዳቸው የፈጀው ጊዜ ውስጥ 50ms በመቀነስ የሚቀረውን ተጨማሪ ክፍል <em>የማገጃ ክፍል(blocking portion)</em> ብሎ ይጠራል፣ የሁሉንም የማገጃ ክፍሎች ድምርንም TBT ብሎ ይገልጻል</ul><blockquote class="prompt-info"><p>* TTI ራሱ በኔትወርክ ምላሽ ውጪ እሴቶች እና በረጅም ስራዎች ላይ እጅግ ስሜታዊ ስለሆነ፣ ተመሳሳይነቱ ዝቅተኛ እና መለዋወጡ ከፍተኛ ነው፤ በዚህ ምክንያት <a href="https://developer.chrome.com/blog/lighthouse-10-0#scoring-changes">ከLighthouse 10 ጀምሮ ከአፈጻጸም ግምገማ ንጥሎች ተወግዷል</a>።</p></blockquote><blockquote class="prompt-tip"><p>በአጠቃላይ ረጅም ስራዎችን የሚያስከትለው በጣም የተለመደ ምክንያት አላስፈላጊ ወይም ውጤታማ ያልሆነ JavaScript መጫን፣ መተንተን እና ማስኬድ ነው፤ <a href="https://web.dev/articles/reduce-javascript-payloads-with-code-splitting?hl=am">ኮድ መከፋፈል</a> በመጠቀም የJavaScript payload መጠንን በመቀነስ እያንዳንዱ በ50ms ውስጥ እንዲፈጸም ማድረግ፣ አስፈላጊ ከሆነም ከmain thread ውጪ ወደ ተለየ service worker በመለየት በmultithread እንዲሰራ ማድረግ እንዲያስቡ <a href="https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time/?hl=am">የChrome የገንቢ ሰነዶች</a> እና <a href="https://web.dev/articles/long-tasks-devtools#what_is_causing_my_long_tasks?hl=am">Google ၏ web.dev</a> ይመክራሉ።</p></blockquote><h4 id="የlighthouse-ግምገማ-መስፈርት-2">የLighthouse ግምገማ መስፈርት</h4><p><a href="https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time/?hl=am">የChrome የገንቢ ሰነዶች</a> መሰረት፣ የLighthouse ግምገማ መስፈርት የሚከተለው ሰንጠረዥ ነው።</p><table><thead><tr><th>የቀለም ደረጃ<th>ሞባይል TBT (ሚሊሰከንድ)<th>ዴስክቶፕ TBT (ሚሊሰከንድ)<tbody><tr><td>አረንጓዴ (ፈጣን)<td>0-200<td>0-150<tr><td>ብርቱካናማ (መካከለኛ)<td>200-600<td>150-350<tr><td>ቀይ (ዝግ)<td>ከ600 በላይ<td>ከ350 በላይ</table><h3 id="cls-ድምር-የአቀማመጥ-መንቀሳቀስ-cumulative-layout-shift">CLS (ድምር የአቀማመጥ መንቀሳቀስ, Cumulative Layout Shift)</h3><p> <video class="embed-video file" controls="" autoplay="" loop=""> <source src="https://web.dev/static/articles/cls/video/web-dev-assets/layout-instability-api/layout-instability2.webm" type="video/webm" /> Your browser does not support the video tag. Here is a <a href="https://web.dev/static/articles/cls/video/web-dev-assets/layout-instability-api/layout-instability2.webm">link to the video file</a> instead. </video> <em>ድንገተኛ የአቀማመጥ ለውጥ ምሳሌ</em></p><blockquote><p>የቪዲዮ ምንጭ: <a href="https://web.dev/articles/cls?hl=am">Cumulative Layout Shift (CLS) | Articles | web.dev</a></p></blockquote><p><del>በcursor እንቅስቃሴው ውስጥ ጥልቅ ቁጣ ይሰማል</del></p><ul><li>ያልተጠበቀ የአቀማመጥ ለውጥ ጽሑፉ በድንገት እንዲንቀሳቀስ በማድረግ እያነበቡ የነበሩበትን ቦታ እንዲያጡ ወይም ሊንክ ወይም አዝራር በስህተት እንዲጫኑ እና በሌሎችም ብዙ መንገዶች የተጠቃሚ ልምድን ያበላሻል<li>የCLS ነጥብ የሚሰላበት ዝርዝር መንገድ በ<a href="https://web.dev/articles/cls">Google ၏ web.dev</a> ላይ ተገልጿል<li>ከታች ባለው ምስል እንደሚታየው፣ 0.1 ወይም ከዚያ በታች መድረስ ዒላማ መሆን አለበት</ul><p><img src="https://web.dev/static/articles/cls/image/good-cls-values.svg" alt="What is a good CLS score?" width="640" height="480" /></p><blockquote><p>የምስል ምንጭ: <a href="https://web.dev/articles/cls#what-is-a-good-cls-score?hl=am">Cumulative Layout Shift (CLS) | Articles | web.dev</a></p></blockquote><h3 id="si-የፍጥነት-መረጃ-ጠቋሚ-speed-index">SI (የፍጥነት መረጃ ጠቋሚ, Speed Index)</h3><ul><li>ገጹ እየተጫነ ሳለ ይዘቱ በእይታ ምን ያህል ፈጥኖ እንደሚታይ ይለካል<li>Lighthouse በአሳሹ ውስጥ ገጹ የሚጫነበትን ሂደት እንደ ቪዲዮ ይቀርጻል፣ ያንንም ቪዲዮ በመተንተን በframe መካከል ያለውን እድገት ከሰላ በኋላ <a href="https://github.com/paulirish/speedline">Speedline Node.js module</a> በመጠቀም የSI ነጥብን ይሰላል</ul><blockquote class="prompt-tip"><p>ከዚህ በፊት <a href="#fcp-የመጀመሪያ-ይዘታዊ-ስዕል-first-contentful-paint">FCP</a>፣ <a href="#lcp-ትልቁ-የይዘት-ስዕል-largest-contentful-paint">LCP</a>፣ <a href="#tbt-ጠቅላላ-የማገጃ-ጊዜ-total-blocking-time">TBT</a> ላይ ሲዘረዝሩ የተጠቀሱትን ጨምሮ፣ የገጽ መጫን ፍጥነትን ለማሻሻል የሚወሰድ ማንኛውም እርምጃ በSI ነጥብ ላይም አዎንታዊ ተጽእኖ ይኖረዋል። ከገጽ መጫን ሂደት ውስጥ አንድ የተወሰነ ክፍልን ብቻ ከመወከል ይልቅ፣ አጠቃላይ የመጫን ሂደቱን በተወሰነ ደረጃ የሚያንጸባርቅ የአፈጻጸም መለኪያ ነው ማለት ይቻላል።</p></blockquote><h4 id="የlighthouse-ግምገማ-መስፈርት-3">የLighthouse ግምገማ መስፈርት</h4><p><a href="https://developer.chrome.com/docs/lighthouse/performance/speed-index/?hl=am">የChrome የገንቢ ሰነዶች</a> መሰረት፣ የLighthouse ግምገማ መስፈርት የሚከተለው ሰንጠረዥ ነው።</p><table><thead><tr><th>የቀለም ደረጃ<th>ሞባይል SI (ሰከንድ)<th>ዴስክቶፕ SI (ሰከንድ)<tbody><tr><td>አረንጓዴ (ፈጣን)<td>0-3.4<td>0-1.3<tr><td>ብርቱካናማ (መካከለኛ)<td>3.4-5.8<td>1.3-2.3<tr><td>ቀይ (ዝግ)<td>ከ5.8 በላይ<td>ከ2.3 በላይ</table>]]> </content> </entry> <entry><title xml:lang="am">የስበት መስክ እና የስበት ፖቴንሻል</title><link href="https://www.yunseo.kim/am/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/gravitational-field-and-potential/" rel="alternate" type="text/html" hreflang="am" /><published>2025-05-17T00:00:00+09:00</published> <updated>2025-05-17T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/gravitational-field-and-potential/</id> <author> <name>Yunseo Kim</name> </author> <category term="Physics" /> <category term="Classical Dynamics" /> <summary xml:lang="am">በኒውተን የአጽናፈ ስበት ሕግ መሠረት የስበት መስክ ቬክተርና የስበት ፖቴንሻል ትርጓሜዎችን እንመለከታለን፣ እና በሁለት አስፈላጊ ምሳሌዎች የቅርፊት ቲዎሬምንና የጋላክሲ ዞር ከርቭን እንወያያለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>በኒውተን የአጽናፈ ስበት ሕግ መሠረት የስበት መስክ ቬክተርና የስበት ፖቴንሻል ትርጓሜዎችን እንመለከታለን፣ እና በሁለት አስፈላጊ ምሳሌዎች የቅርፊት ቲዎሬምንና የጋላክሲ ዞር ከርቭን እንወያያለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><ul><li>የኒውተን የአጽናፈ ስበት ሕግ: $\mathbf{F} = -G\cfrac{mM}{r^2}\mathbf{e}_r$<li>ቀጣይ የብዛት ስርጭት እና መጠን ላላቸው አካላት ሲሆን: $\mathbf{F} = -Gm\int_V \cfrac{dM}{r^2}\mathbf{e}_r = -Gm\int_V \cfrac{\rho(\mathbf{r^\prime})\mathbf{e}_r}{r^2} dv^{\prime}$<ul><li>$\rho(\mathbf{r^{\prime}})$: ከማንኛውም መነሻ ነጥብ የቦታ ቬክተሩ $\mathbf{r^{\prime}}$ በሆነ ነጥብ ላይ ያለ የብዛት እፍጋት<li>$dv^{\prime}$: ከማንኛውም መነሻ ነጥብ የቦታ ቬክተሩ $\mathbf{r^{\prime}}$ በሆነ ነጥብ ላይ ያለ የመጠን አካል</ul><li><strong>የስበት መስክ ቬክተር(gravitational field vector)</strong>:<ul><li>ብዛቱ $M$ በሆነ አካል የተፈጠረ መስክ ውስጥ አንድ ቅንጣት በአንድ ክፍል ብዛት የሚቀበለውን ኃይል የሚወክል ቬክተር<li>$\mathbf{g} = \cfrac{\mathbf{F}}{m} = - G \cfrac{M}{r^2}\mathbf{e}_r = - G \int_V \cfrac{\rho(\mathbf{r^\prime})\mathbf{e}_r}{r^2}dv^\prime$<li><em>በአንድ ክፍል ብዛት ኃይል</em> ወይም <em>ፍጥነት ለውጥ(acceleration)</em> ልኬት አለው</ul><li><strong>የስበት ፖቴንሻል(gravitational potential)</strong>:<ul><li>$\mathbf{g} \equiv -\nabla \Phi$<li>$($<em>በአንድ ክፍል ብዛት ኃይል</em> $) \times ($<em>ርቀት</em> $)$ ወይም <em>በአንድ ክፍል ብዛት ኃይል ኃይል(energy)</em> ልኬት አለው<li>$\Phi = -G\cfrac{M}{r}$<li>የስበት ፖቴንሻል ከነዚህ ውስጥ የሚያስፈልገው አንጻራዊ ልዩነቱ ብቻ ነው፤ ራሱ የተወሰነ እሴት ግን ትርጉም የለውም<li>ብዙውን ጊዜ $r \to \infty$ ሲሆን $\Phi \to 0$ ብለን በፈቃድ እንወስናለን፣ ይህም የማይወሰንነት(ambiguity) ያስወግዳል<li>$U = m\Phi, \quad \mathbf{F} = -\nabla U$</ul><li><strong>በጎላ ቅርፊት ውስጥና ውጭ ያለ የስበት ፖቴንሻል(የቅርፊት ቲዎሬም)</strong><ul><li>$R&gt;a$ ሲሆን:<ul><li>$\Phi(R&gt;a) = -\cfrac{GM}{R}$<li>ከቁስ የጎላዊ ሲምሜትሪ ስርጭት(spherical symmetric distribution) የተነሳ በውጭ ያለ ማንኛውም ነጥብ የስበት ፖቴንሻልን ለማግኘት ይህን አካል እንደ ነጥብ ብዛት(point mass) ቆጥረን መለካት እንችላለን</ul><li>$R&lt;b$ ሲሆን:<ul><li>$\Phi(R&lt;b) = -2\pi\rho G(a^2 - b^2)$<li>በጎላዊ ሲምሜትሪ ያለው የብዛት ቅርፊት ውስጥ የስበት ፖቴንሻል ቦታን ሳይመለከት ቋሚ ነው፣ የሚሰራው የስበት ኃይል ግን $0$</ul><li>$b&lt;R&lt;a$ ሲሆን: $\Phi(b&lt;R&lt;a) = -4\pi\rho G \left( \cfrac{a^2}{2} - \cfrac{b^3}{3R} - \cfrac{R^2}{6} \right)$</ul></ul></blockquote><h2 id="የስበት-መስክ">የስበት መስክ</h2><h3 id="የኒውተን-የአጽናፈ-ስበት-ሕግ">የኒውተን የአጽናፈ ስበት ሕግ</h3><p>ኒውተን ከ11666 HE በፊትም ቢሆን የአጽናፈ ስበት ሕጉን በሥርዓት አዘጋጅቶ በቁጥርም አረጋግጦ ነበር። ቢሆንም በ11687 HE በ<em>Principia</em> ውስጥ የራሱን ውጤት እስኪያትም ድረስ ተጨማሪ 20 ዓመታት ፈጅቶበታል፤ ምክንያቱም ምድርንና ጨረቃን መጠን የሌላቸው ነጥብ ብዛቶች(point mass) ብሎ ያደረገውን ስሌት ማጽደቅ አልቻለም ነበር። ደግሞ ሆኖ <a href="#ra-ሲሆን">ኒውተን ራሱ በኋላ የፈጠረውን ካልኩለስ(calculus) ብንጠቀም፣ በ11600 ዎቹ ለኒውተን ቀላል ያልነበረውን ያ ችግኝ እኛ በጣም በቀላሉ ማረጋገጥ እንችላለን</a>።</p><p>የኒውተን የአጽናፈ ስበት ሕግ(Newton’s law of universal gravitation) እንደሚል፣ <em>እያንዳንዱ የብዛት ቅንጣት በአጽናፈ ዓለም ያሉ ሌሎች ሁሉንም ቅንጣቶች ይስባል፣ እና ይህ ኃይል ከሁለቱ ብዛቶች ምርት ጋር ተመጣጣኝ ሲሆን በመካከላቸው ያለው ርቀት ካሬ ጋር ተቃራኒ ተመጣጣኝ ነው።</em> በሂሳብ ማለት ይህን ይሆናል።</p>\[\mathbf{F} = -G\frac{mM}{r^2}\mathbf{e}_r \label{eqn:law_of_gravitation}\tag{1}\]<p><img src="https://upload.wikimedia.org/wikipedia/commons/0/0e/NewtonsLawOfUniversalGravitation.svg" alt="Newton's law of universal gravitation" /></p><blockquote><p><em>የምስል ምንጭ</em></p><ul><li>ደራሲ: የዊኪሚዲያ ተጠቃሚ <a href="https://commons.wikimedia.org/wiki/User:Dna-webmaster">Dennis Nilsson</a><li>ፈቃድ: <a href="https://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a></ul></blockquote><p>አንድነት ቬክተሩ $\mathbf{e}_r$ ከ$M$ ወደ $m$ አቅጣጫ ይመራል፣ እና ያለው አሉታዊ ምልክት ኃይሉ መሳብ መሆኑን ያሳያል። ማለትም $m$ ወደ $M$ ይሳባል።</p><h3 id="የካቨንዲሽ-ሙከራ">የካቨንዲሽ ሙከራ</h3><p>ይህ ሕግ በሙከራ መረጋገጡና የ$G$ እሴት መወሰኑ በ11798 HE በእንግሊዝ ፊዚሺስት ሄንሪ ካቨንዲሽ(Henry Cavendish) ተፈጽሟል። የካቨንዲሽ ሙከራ በቀላል ዘንግ ሁለቱ ጫፎች ላይ የተጣበቁ ሁለት ትንሽ ኳሶች ያሉበት የጥለት ሚዛን(torsion balance) ይጠቀማል። እነዚህ ሁለት ኳሶች እያንዳንዳቸው በአቅራቢያቸው ያሉ ሌሎች ሁለት ትልቅ ኳሶች አቅጣጫ ይሳባሉ። እስካሁን ድረስ የተገኘው የ$G$ ይፋዊ እሴት $6.673 \pm 0.010 \times 10^{-11} \mathrm{N\cdot m^2/kg^2}$ ነው።</p><blockquote class="prompt-tip"><p>$G$ ከጥንት ጀምሮ የታወቀ መሠረታዊ ቋሚ ቢሆንም፣ $e$, $c$, $\hbar$ እንደሚባሉት አብዛኞቹ ሌሎች መሠረታዊ ቋሚዎች ከሚታወቁበት ያነሰ ትክክለኛነት(precision) ብቻ ነው የምናውቀው። ዛሬም ቢሆን $G$ እሴቱን በከፍተኛ ትክክለኛነት ለማወቅ ብዙ ምርምሮች እየተካሄዱ ናቸው።</p></blockquote><h3 id="መጠን-ላላቸው-አካላት-ሲሆን">መጠን ላላቸው አካላት ሲሆን</h3><p>በጥብቅ አነጋገር የእኩልታ ($\ref{eqn:law_of_gravitation}$) ሕግ <em>ለነጥብ ቅንጣት(point particle)</em> ብቻ ነው የሚተገበረው። ከሁለቱ አንዱ ወይም ሁለቱም መጠን ያላቸው አካላት ከሆኑ ግን ኃይሉን ለማስላት የስበት መስክ(gravitational force field) <em>መስመራዊ መስክ(linear field)</em> ነው የሚለውን ተጨማሪ ግምት ማድረግ ያስፈልጋል። ማለትም ብዛቱ $m$ የሆነ አንድ ቅንጣት ከብዙ ሌሎች ቅንጣቶች የሚቀበለው ጠቅላላ የስበት ኃይል እያንዳንዱን ኃይል ቬክተር በመደመር ማግኘት እንደሚቻል እንገምታለን። ንጥረ ነገር በቀጣይ ሁኔታ የተሰራጨበት አካል ሲሆን ድምርን እንዲህ ባለ ኢንቲግራል እንቀይራለን።</p>\[\mathbf{F} = -Gm\int_V \frac{dM}{r^2}\mathbf{e}_r = -Gm\int_V \frac{\rho(\mathbf{r^\prime})\mathbf{e}_r}{r^2} dv^{\prime} \label{eqn:integral_form}\tag{2}\]<ul><li>$\rho(\mathbf{r^{\prime}})$: ከማንኛውም መነሻ ነጥብ የቦታ ቬክተሩ $\mathbf{r^{\prime}}$ በሆነ ነጥብ ላይ ያለ የብዛት እፍጋት<li>$dv^{\prime}$: ከማንኛውም መነሻ ነጥብ የቦታ ቬክተሩ $\mathbf{r^{\prime}}$ በሆነ ነጥብ ላይ ያለ የመጠን አካል</ul><p>ብዛቱ $M$ የሆነ አካልና ብዛቱ $m$ የሆነ አካል ሁለቱም መጠን ካላቸው ግን ጠቅላላ የስበት ኃይሉን ለማግኘት በ$m$ ላይ ሁለተኛ የመጠን ኢንቲግራልም ያስፈልጋል።</p><h3 id="የስበት-መስክ-ቬክተር">የስበት መስክ ቬክተር</h3><p><strong>የስበት መስክ ቬክተር(gravitational field vector)</strong> $\mathbf{g}$ ብዛቱ $M$ በሆነ አካል የተፈጠረ መስክ ውስጥ አንድ ቅንጣት በአንድ ክፍል ብዛት የሚቀበለውን ኃይል የሚወክል ቬክተር ብለን እንገልጸዋለን፤ ስለዚህ</p>\[\mathbf{g} = \frac{\mathbf{F}}{m} = - G \frac{M}{r^2}\mathbf{e}_r \label{eqn:g_vector}\tag{3}\]<p>ወይም</p>\[\boxed{\mathbf{g} = - G \int_V \frac{\rho(\mathbf{r^\prime})\mathbf{e}_r}{r^2}dv^\prime} \tag{4}\]<p>ብለን እንጻፈዋለን። እዚህ $\mathbf{e}_r$ አቅጣጫ በ$\mathbf{r^\prime}$ መሠረት ይለዋወጣል።</p><p>ይህ መጠን $\mathbf{g}$ <em>በአንድ ክፍል ብዛት ኃይል</em> ወይም <em>ፍጥነት ለውጥ(acceleration)</em> ልኬት አለው። በምድር ፊት አቅራቢያ ያለው የስበት መስክ ቬክተር $\mathbf{g}$ መጠን እኛ <strong>የስበት ፍጥነት ቋሚ(gravitational acceleration constant)</strong> ብለን ከምንጠራው መጠን ጋር እኩል ሲሆን፣ $|\mathbf{g}| \approx 9.80\mathrm{m/s^2}$ ነው።</p><h2 id="የስበት-ፖቴንሻል">የስበት ፖቴንሻል</h2><h3 id="ትርጓሜ">ትርጓሜ</h3><p>የስበት መስክ ቬክተር $\mathbf{g}$ እንደ $1/r^2$ ይለዋወጣል፣ ስለዚህ ደግሞ ይህ አንድ ስካላር ፋንክሽን(ፖቴንሻል) ግራዲየንት(gradient) ሆኖ እንዲገለጽ የሚያስፈልገውን ሁኔታ ($\nabla \times \mathbf{g} \equiv 0$) ያሟላል። ስለዚህ እንዲህ ማለት እንችላለን።</p>\[\mathbf{g} \equiv -\nabla \Phi \label{eqn:gradient_phi}\tag{5}\]<p>እዚህ $\Phi$ን <strong>የስበት ፖቴንሻል(gravitational potential)</strong> እንለዋለን፣ እና ይህ $($<em>በአንድ ክፍል ብዛት ኃይል</em> $) \times ($<em>ርቀት</em> $)$ ወይም <em>በአንድ ክፍል ብዛት ኃይል ኃይል(energy)</em> ልኬት አለው።</p><p>$\mathbf{g}$ በራዲየስ ብቻ ስለሚመሠረት፣ $\Phi$ም በ$r$ መሠረት ይለዋወጣል። ከእኩልታዎች ($\ref{eqn:g_vector}$) እና ($\ref{eqn:gradient_phi}$)</p>\[\nabla\Phi = \frac{d\Phi}{dr}\mathbf{e}_r = G\frac{M}{r^2}\mathbf{e}_r\]<p>ይሆናል፣ ይህንንም ሲንቲግሬት ካደረግን</p>\[\boxed{\Phi = -G\frac{M}{r}} \label{eqn:g_potential}\tag{6}\]<p>እናገኛለን። የስበት ፖቴንሻል አንጻራዊ ልዩነቱ ብቻ ትርጉም ስላለው ፍጹም እሴቱ ግን ትርጉም የለውም፣ ስለዚህ የኢንቲግሬሽን ቋሚውን መተው እንችላለን። ብዙውን ጊዜ $r \to \infty$ ሲሆን $\Phi \to 0$ ብለን በፈቃድ እንወስናለን፣ ይህም የማይወሰንነት(ambiguity) ያስወግዳል፤ እኩልታ ($\ref{eqn:g_potential}$) ደግሞ ይህን ሁኔታ ያሟላል።</p><p>ንጥረ ነገር በቀጣይ ሁኔታ የተሰራጨ ከሆነ የስበት ፖቴንሻሉ እንዲህ ነው።</p>\[\Phi = -G\int_V \frac{\rho(\mathbf{r\prime})}{r}dv^\prime \label{eqn:g_potential_v}\tag{7}\]<p>ብዛት በቀጭን ቅርፊት ላይ በወለል ስርጭት የተከፋፈለ ከሆነ</p>\[\Phi = -G\int_S \frac{\rho_s}{r}da^\prime. \label{eqn:g_potential_s}\tag{8}\]<p>እና መስመራዊ እፍጋቱ $\rho_l$ የሆነ የመስመር ብዛት ምንጭ ከሆነ ደግሞ እንዲህ ማለት እንችላለን።</p>\[\Phi = -G\int_\Gamma \frac{\rho_l}{r}ds^\prime. \label{eqn:g_potential_l}\tag{9}\]<h3 id="አካላዊ-ትርጉም">አካላዊ ትርጉም</h3><p>አንድ አካል በስበት መስክ ውስጥ $d\mathbf{r}$ መጠን ሲንቀሳቀስ፣ ያ አካል በአንድ ክፍል ብዛት የሚያደርገውን ሥራ $dW^\prime$ እንመልከት።</p>\[\begin{align*} dW^\prime &amp;= -\mathbf{g}\cdot d\mathbf{r} = (\nabla \Phi)\cdot d\mathbf{r} \\ &amp;= \sum_i \frac{\partial \Phi}{\partial x_i}dx_i = d\Phi \label{eqn:work}\tag{10} \end{align*}\]<p>በዚህ እኩልታ ውስጥ $\Phi$ የቦታ ኮኦርዲኔቶች ብቻ ተግባር ሲሆን፣ $\Phi=\Phi(x_1, x_2, x_3) = \Phi(x_i)$ ብለን እንጽፈዋለን። ስለዚህ በስበት መስክ ውስጥ አንድ አካልን ከአንድ ነጥብ ወደ ሌላ ነጥብ ሲንቀሳቀስ፣ ያ አካል በአንድ ክፍል ብዛት የሚያደርገው ሥራ መጠን በእነዚያ ሁለት ነጥቦች መካከል ካለው የፖቴንሻል ልዩነት ጋር እኩል መሆኑን እናውቃለን።</p><p>ማያልቅ ርቀት ላይ ያለውን የስበት ፖቴንሻል $0$ ብለን ከገለጽነው፣ በማንኛውም ነጥብ ያለው $\Phi$ እቃውን ከማያልቅ ርቀት ጀምሮ እስከዚያ ነጥብ ለማምጣት የሚያስፈልገው በአንድ ክፍል ብዛት ሥራ ተብሎ ሊተረጎም ይችላል። የአካሉ ፖቴንሻል ኃይል ከአካሉ ብዛትና ከየስበት ፖቴንሻል $\Phi$ ምርት ጋር እኩል ስለሆነ፣ $U$ን ፖቴንሻል ኃይል ብለን ካለን</p>\[U = m\Phi. \label{eqn:potential_e}\tag{11}\]<p>ስለዚህ አካሉ የሚቀበለው የስበት ኃይል ከፖቴንሻል ኃይሉ ግራዲየንት ላይ አሉታዊ ምልክት በመጨመር ይገኛል።</p>\[\mathbf{F} = -\nabla U \label{eqn:force_and_potential}\tag{12}\]<p>አንድ አካል በአንድ ብዛት የተፈጠረ የስበት መስክ ውስጥ ሲኖር ሁልጊዜ የተወሰነ ፖቴንሻል ኃይል ይፈጠራል። ይህ ፖቴንሻል ኃይል በጥብቅ አነጋገር በመስኩ ራሱ ውስጥ ያለ ቢሆንም፣ በተለምዶ የእቃው ፖቴንሻል ኃይል ብለን እንጠራዋለን።</p><h2 id="ምሳሌ-በጎላ-ቅርፊት-ውስጥና-ውጭ-ያለ-የስበት-ፖቴንሻል-የቅርፊት-ቲዎሬም">ምሳሌ፡ በጎላ ቅርፊት ውስጥና ውጭ ያለ የስበት ፖቴንሻል (የቅርፊት ቲዎሬም)</h2><h3 id="ኮኦርዲኔት-ማቀናበር-እና-የስበት-ፖቴንሻሉን-በኢንቲግራል-መግለጽ">ኮኦርዲኔት ማቀናበር እና የስበት ፖቴንሻሉን በኢንቲግራል መግለጽ</h3><p>ውስጣዊ ራዲየሱ $b$ እና ውጫዊ ራዲየሱ $a$ የሆነ አንድ አንደኛ ወጥ የጎላ ቅርፊት(spherical shell) በውስጡና በውጩ ያለውን የስበት ፖቴንሻል እንፈልግ። በጎላ ቅርፊቱ የሚፈጠረውን የስበት ኃይል በመስክ ውስጥ ባለ አንድ ክፍል ብዛት ላይ የሚሰሩ የኃይል ክፍሎችን በቀጥታ በመቁጠር ማግኘት ቢቻልም፣ የፖቴንሻል ዘዴ መጠቀም ከዚህ ይልቅ ቀላል ነው።</p><p><img src="/assets/img/gravitational-field-and-potential/spherical-shell.png" alt="Spherical shell" /></p><p>ከላይ ባለው ስዕል ውስጥ ከማዕከሉ ርቀቱ $R$ በሆነው $P$ ነጥብ ላይ ያለውን ፖቴንሻል እንቁጠር። የቅርፊቱ ወጥ የብዛት ስርጭት ካለ እንደምንገምት $\rho(r^\prime)=\rho$ ይሆናል፣ እና የጎላውን ማዕከል ከ$P$ ነጥብ ጋር የሚያገናኘውን መስመር መሠረት አድርገን በአዚሙት ማእዘን $\phi$ ላይ ሲምሜትሪ ስለሚኖር</p>\[\begin{align*} \Phi &amp;= -G\int_V \frac{\rho(r^\prime)}{r}dv^\prime \\ &amp;= -\rho G \int_0^{2\pi} \int_0^\pi \int_b^a \frac{1}{r}(dr^\prime)(r^\prime d\theta)(r^\prime \sin\theta\, d\phi) \\ &amp;= -\rho G \int_0^{2\pi} d\phi \int_b^a {r^\prime}^2 dr^\prime \int_0^\pi \frac{\sin\theta}{r}d\theta \\ &amp;= -2\pi\rho G \int_b^a {r^\prime}^2 dr^\prime \int_0^\pi \frac{\sin\theta}{r}d\theta. \label{eqn:spherical_shell_1}\tag{13} \end{align*}\]<p>የኮሳይን ሕግ መሠረት</p>\[r^2 = {r^\prime}^2 + R^2 - 2r^\prime R \cos\theta \label{eqn:law_of_cosines}\tag{14}\]<p>ሲሆን $R$ ቋሚ ነው፤ ስለዚህ ይህንን እኩልታ በ$r^\prime$ ላይ ሳይሆን በ$\theta$ ላይ እንደሚገባ በመለየት</p>\[2rdr = 2r^\prime R \sin\theta d\theta\] \[\frac{\sin\theta}{r}d\theta = \frac{dr}{r^\prime R} \tag{15}\]<p>እናገኛለን። ይህንን በእኩልታ ($\ref{eqn:spherical_shell_1}$) ውስጥ በመተካት</p>\[\Phi = -\frac{2\pi\rho G}{R} \int_b^a r^\prime dr^\prime \int_{r_\mathrm{min}}^{r_\mathrm{max}} dr. \label{eqn:spherical_shell_2}\tag{16}\]<p>እዚህ $r_\mathrm{max}$ እና $r_\mathrm{min}$ በ$P$ ነጥብ ቦታ መሠረት ይወሰናሉ።</p><h3 id="ra-ሲሆን">$R&gt;a$ ሲሆን</h3>\[\begin{align*} \Phi(R&gt;a) &amp;= -\frac{2\pi\rho G}{R} \int_b^a r^\prime dr^\prime \int_{R-r^\prime}^{R+r^\prime} dr \\ &amp;= - \frac{4\pi\rho G}{R} \int_b^a {r^\prime}^2 dr^\prime \\ &amp;= - \frac{4}{3}\frac{\pi\rho G}{R}(a^3 - b^3). \label{eqn:spherical_shell_outside_1}\tag{17} \end{align*}\]<p>የጎላ ቅርፊቱ ጠቅላላ ብዛት $M$ እንዲህ ይሰጣል።</p>\[M = \frac{4}{3}\pi\rho(a^3 - b^3) \label{eqn:mass_of_shell}\tag{18}\]<p>ስለዚህ ፖቴንሻሉ እንዲህ ይሆናል።</p>\[\boxed{\Phi(R&gt;a) = -\frac{GM}{R}} \label{eqn:spherical_shell_outside_2}\tag{19}\]<blockquote class="prompt-info"><p>በብዛቱ $M$ የሆነ ነጥብ ብዛት የሚፈጥረውን የስበት ፖቴንሻል እኩልታ ($\ref{eqn:g_potential}$) እና አሁን ያገኘነውን ውጤት ($\ref{eqn:spherical_shell_outside_2}$) ብንነጻጸር አንድ መሆናቸውን እናያለን። ይህ ማለት ደግሞ ከቁስ የጎላዊ ሲምሜትሪ ስርጭት(spherical symmetric distribution) የተነሳ በውጭ ያለ ማንኛውም ነጥብ የስበት ፖቴንሻልን ለማግኘት ሁሉም ብዛት በማዕከሉ ላይ ተከማችቷል ብለን መቆጠር እንደሚቻል ነው። ምድር ወይም ጨረቃ እንደሚመስሉ ከተወሰነ መጠን በላይ ያሉ አብዛኞቹ የጎላ ሰማያዊ አካላት በዚህ ውስጥ ይገባሉ፤ እነሱም እንደ <a href="https://en.wikipedia.org/wiki/Matryoshka_doll">ማትሪዮሽካ(Matryoshka)</a> በአንድ ማዕከል የተዛመዱና የተለያዩ ዲያሜትሮች ያላቸው በብዙ ቁጥር የተደራረቡ የጎላ ቅርፊቶች እንዳሉባቸው ማሰብ ይቻላል። ይህም በዚህ ጽሑፍ መጀመሪያ ላይ የተጠቀሰው <a href="#የኒውተን-የአጽናፈ-ስበት-ሕግ">እንደ ምድር ወይም ጨረቃ ያሉ ሰማያዊ አካላትን መጠን የሌላቸው ነጥብ ብዛቶች ብለን ቆጥረን ማስላት ለምን ትክክል እንደሆነ የሚያሳይ መሠረት</a> ይሆናል።</p></blockquote><h3 id="rb-ሲሆን">$R&lt;b$ ሲሆን</h3>\[\begin{align*} \Phi(R&lt;b) &amp;= -\frac{2\pi\rho G}{R} \int_b^a r^\prime dr^\prime \int_{r^\prime - R}^{r^\prime + R}dr \\ &amp;= -4\pi\rho G \int_b^a r^\prime dr^\prime \\ &amp;= -2\pi\rho G(a^2 - b^2). \label{eqn:spherical_shell_inside}\tag{20} \end{align*}\]<blockquote class="prompt-info"><p>በጎላዊ ሲምሜትሪ ያለው የብዛት ቅርፊት ውስጥ የስበት ፖቴንሻል ቦታን ሳይመለከት ቋሚ ነው፣ እና የሚሰራው የስበት ኃይል $0$ ነው።</p></blockquote><blockquote class="prompt-tip"><p>እንዲሁም ይህ ከተለመዱ የውሸት ሳይንስ እምነቶች አንዱ የሆነው ‘ባዶ ውስጥ ያለች ምድር(Hollow Earth)’ የማይረባ ነገር መሆኑን የሚያሳይ ዋና ማስረጃ ነው። እንደ ዚያ ሀሳብ የሚነገረው ሁሉ ምድር የጎላ ቅርፊት ቅርጽ ኖራ ውስጧም ባዶ ብትሆን፣ በዚያ ጉድጓድ ውስጥ ላሉ ሁሉም ነገሮች የምድር ስበት አይሰራም። የምድርን ብዛትና መጠን ብናስብ እንኳን እንደዚህ ያለ ባዶ ክፍተት ሊኖር አይችልም፤ እንኳን ቢኖር በዚያ ያሉ ሕይወት ያላቸው ፍጥረታት የጎላ ቅርፊቱን ውስጠኛ ገጽ መሬት አድርገው አይኖሩም፣ እንደ ስፔስ ስቴሽን በክብደት አልባ ሁኔታ ይንሳፈፋሉ።<br /> <a href="https://youtu.be/VD6xJq8NguY?si=szgtuLkuk6rPJag3">በመሬት ሥር ጥቂት ኪ.ሜ. ጥልቀት ውስጥ ያሉ የአፈር ንብርብሮች ውስጥ ማይክሮኦርጋኒዝሞች ሊኖሩ ይችላሉ</a>፣ ግን ቢያንስ በ‘ባዶ ውስጥ ያለች ምድር’ እምነት የሚነገረው ዓይነት መልክ ግን አይቻልም። የጁል ቨርን(Jules Verne) ልቦለድ 《ወደ ምድር ማዕከል ጉዞ(Voyage au centre de la Terre)》 እና ፊልሙ ‘ወደ የጠፋው ዓለም ፍለጋ(Journey to the Center of the Earth)’ እኔም እወዳቸዋለሁ፣ ግን ፈጠራ ሥራዎችን እንደ ፈጠራ ሥራ ብቻ መደሰት ነው ያለብን፤ በቁም ነገር መመን አይገባም።</p></blockquote><h3 id="bra-ሲሆን">$b&lt;R&lt;a$ ሲሆን</h3>\[\begin{align*} \Phi(b&lt;R&lt;a) &amp;= -\frac{4\pi\rho G}{3R}(R^3 - b^3) - 2\pi\rho G(a^2 - R^2) \\ &amp;= -4\pi\rho G \left( \frac{a^2}{2} - \frac{b^3}{3R} - \frac{R^2}{6} \right) \label{eqn:within_spherical_shell}\tag{21} \end{align*}\]<h3 id="ውጤት">ውጤት</h3><p>ከዚህ በፊት በሶስቱ ክልሎች ያገኘነውን የስበት ፖቴንሻል $\Phi$፣ እና ከእሱ የሚመጣውን የስበት መስክ ቬክተር መጠን $|\mathbf{g}|$ እንደ ርቀት $R$ ተግባር በግራፍ ብናሳይ እንዲህ ይሆናል።</p><p><img src="/physics-visualizations/figs/shell-theorem-gravitational-potential.png" alt="Gravitational Potential as a Function of R" /><br /> <img src="/physics-visualizations/figs/shell-theorem-field-vector.png" alt="Magnitude of the Field Vector as a Function of R" /></p><blockquote><ul><li>የPython ቪዥዋላይዜሽን ኮድ: <a href="https://github.com/yunseo-kim/physics-visualizations/blob/main/src/shell_theorem.py">yunseo-kim/physics-visualizations ሪፖዚቶሪ</a><li>ፈቃድ: <a href="https://github.com/yunseo-kim/physics-visualizations?tab=readme-ov-file#license">See here</a></ul></blockquote><p>የስበት ፖቴንሻሉና የስበት መስክ ቬክተር መጠኑ ቀጣይ መሆናቸውን ማየት እንችላለን። እንደ ሆነ የስበት ፖቴንሻል በአንድ ነጥብ ላይ የተቋረጠ ከሆነ፣ በዚያ ነጥብ የፖቴንሻሉ ግራዲየንት፣ ማለትም የስበቱ መጠን ማያልቅ ይሆናል፤ ይህ በአካላዊ እውነታ የማይታመን ስለሆነ የፖቴንሻል ተግባሩ በሁሉም ነጥቦች ላይ ቀጣይ መሆን አለበት። ነገር ግን የስበት መስክ ቬክተር <em>የልዩነት ኮኤፊሺየንት</em> በቅርፊቱ ውስጠኛና ውጫዊ ገጾች ላይ የተቋረጠ ነው።</p><h2 id="ምሳሌ-የጋላክሲ-ዞር-ከርቭ">ምሳሌ፡ የጋላክሲ ዞር ከርቭ</h2><p>በአስትሮኖሚ ምልከታዎች መሠረት፣ እንደ እኛ ጋላክሲ ወይም አንድሮመዳ ጋላክሲ ያሉ በማዕከሉ ዙሪያ የሚዞሩ ብዙ ስፓይረል ጋላክሲዎች ውስጥ የሚታየው ብዛት አብዛኛው በማዕከላዊ ክፍል አቅራቢያ ተከማችቶ ይገኛል። ነገር ግን በእነዚህ ስፓይረል ጋላክሲዎች ውስጥ ያሉ ብዛቶች የኦርቢት ፍጥነቶች፣ ከሚታየው የብዛት ስርጭት በመነሳት በቲዎሪ የተተነበዩት እሴቶች ጋር እጅግ እንደማይጣጣሙ እና ከተወሰነ ርቀት በኋላ በቅርብ ቋሚ እንደሚሆኑ በሚከተለው ግራፍ ማየት ይቻላል።</p><p><img src="https://upload.wikimedia.org/wikipedia/commons/b/b9/GalacticRotation2.svg" alt="Galactic Rotation" width="972" /></p><blockquote><p><em>የምስል ምንጭ</em></p><ul><li>ደራሲ: የዊኪፔዲያ ተጠቃሚ <a href="https://en.wikipedia.org/wiki/User:PhilHibbs">PhilHibbs</a><li>ፈቃድ: Public Domain</ul></blockquote><p> <video class="embed-video file" controls="" autoplay="" loop=""> <source src="https://cdn.jsdelivr.net/gh/yunseo-kim/yunseo-kim.github.io/assets/video/gravitational-field-and-potential/Galaxy_rotation_under_the_influence_of_dark_matter.webm" type="video/webm" /> <source src="https://cdn.jsdelivr.net/gh/yunseo-kim/yunseo-kim.github.io/assets/video/gravitational-field-and-potential/Galaxy_rotation_under_the_influence_of_dark_matter.ogg" type="video/ogg" /> Your browser does not support the video tag. Here is a <a href="https://cdn.jsdelivr.net/gh/yunseo-kim/yunseo-kim.github.io/assets/video/gravitational-field-and-potential/Galaxy_rotation_under_the_influence_of_dark_matter.webm">link to the video file</a> instead. </video> <em>ግራ: ከሚታየው ብዛት የተነሳ የተተነበየ የጋላክሲ ዞር | ቀኝ: በእውነት የታየ የጋላክሲ ዞር።</em></p><blockquote><p><em>የቪዲዮ ምንጭ</em></p><ul><li>የመነሻ ፋይል(Ogg Theora video) አገናኝ: <a href="https://commons.wikimedia.org/wiki/File:Galaxy_rotation_under_the_influence_of_dark_matter.ogv">https://commons.wikimedia.org/wiki/File:Galaxy_rotation_under_the_influence_of_dark_matter.ogv</a><li>ደራሲ: <a href="https://beltoforion.de/en/index.php">Ingo Berg</a><li>ፈቃድ: <a href="https://creativecommons.org/licenses/by-sa/3.0/deed.en">CC BY-SA 3.0</a><li>የተጠቀሙት የሲሙሌሽን ዘዴና ኮድ: <a href="https://beltoforion.de/en/spiral_galaxy_renderer/">https://beltoforion.de/en/spiral_galaxy_renderer/</a></ul></blockquote><blockquote class="prompt-danger"><p>ቀደም ሲል በዚህ ገጽ ውስጥ የተካተተው <code class="language-plaintext highlighter-rouge">Rotation curve of spiral galaxy Messier 33 (Triangulum).png</code> ምስል ፋይል፣ <a href="https://markwhittle.uvacreate.virginia.edu/">የቨርጂኒያ ዩኒቨርሲቲ ፕሮፌሰር Mark Whittle</a> ያለነፃ ፈቃድ ሥራን የዊኪሚዲያ ተጠቃሚ <a href="https://commons.wikimedia.org/wiki/User:Accrama">Mario De Leo</a> <a href="https://commons.wikimedia.org/wiki/Commons:Deletion_requests/File:Rotation_curve_of_spiral_galaxy_Messier_33_(Triangulum).png">አግባብ ያለው ጥቅስ ሳይሰጥ የተቀዳ ተዋጽኦ ሥራ መሆኑ ከተረጋገጠ በኋላ ከዊኪሚዲያ ኮመንስ ተሰርዟል</a>፣ ስለዚህ ከዚህ ገጽም እንዲሁ እንደተወገደ እገልጻለሁ።</p></blockquote><p>የጋላክሲው ብዛት በማዕከላዊ ክፍል ተከማችቶ ካለ ከርቀት ጋር የሚለዋወጠውን የኦርቢት ፍጥነት እንተነብይ፣ ይህ ትንበያ ከእነዚህ ምልከታ ውጤቶች ጋር እንደማይጣጣም እና ከጋላክሲው ማዕከል እስከ ርቀት $R$ ድረስ የተሰራጨው ብዛት $M(R)$ ከ$R$ ጋር ተመጣጣኝ መሆን እንዳለበት እንሳይ።</p><p>መጀመሪያ የጋላክሲ ብዛት $M$ በማዕከላዊ ክፍል ተከማችቶ ካለ፣ በርቀት $R$ ያለው የኦርቢት ፍጥነት እንዲህ ይሆናል።</p>\[\frac{GMm}{R^2} = \frac{mv^2}{R}\] \[v = \sqrt{\frac{GM}{R}} \propto \frac{1}{\sqrt{R}}.\]<p>በዚህ ሁኔታ በላይ ባሉት ሁለት ግራፎች ላይ በቁልቁል መስመር እንደታየው $1/\sqrt{R}$ የሚቀንስ የኦርቢት ፍጥነት እንደሚገመት ይገኛል፣ ነገር ግን በምልከታ ውጤቶች መሠረት የኦርቢት ፍጥነቱ $v$ ከርቀት $R$ ጋር በቅርብ ቋሚ ነው፣ ስለዚህ ትንበያውና ምልከታው አይጣጣሙም። እነዚህ ምልከታዎች ሊተረጎሙ የሚችሉት $M(R)\propto R$ ሲሆን ብቻ ነው።</p><p>የተመጣጣኝነት ቋሚውን $k$ ብለን $M(R) = kR$ ካስቀመጥን፣</p>\[v = \sqrt{\frac{GM(R)}{R}} = \sqrt{Gk}\ \text{(ቋሚ)}.\]<p>ከዚህ በመነሳት አስትሮፊዚሲስቶች ብዙ ጋላክሲዎች ውስጥ እስካሁን ያልተገኘ ‘ጨለማ ቁስ(dark matter)’ እንዲኖር አስፈላጊ እንደሆነ እና ይህ ጨለማ ቁስ ከአጽናፈ ዓለም ጠቅላላ ብዛት 90% በላይ መሆን እንዳለበት ድምዳሜ ይደርሳሉ። ሆኖም የጨለማ ቁስ ትክክለኛ ማንነት እስካሁን ግልጽ ሆኖ አልተገለጸም፣ እና ዋና ፅንሰ ሀሳብ ባይሆንም የጨለማ ቁስ መኖሩን ሳይገምቱ ምልከታ ውጤቶቹን ለማብራራት እንደ ተሻሻለ የኒውተን ዳይናሚክስ(Modified Newtonian Dynamics, MOND) ያሉ ሙከራዎችም አሉ። ዛሬ ይህ የምርምር መስክ በአስትሮፊዚክስ የፊት መስመር ላይ ይገኛል።</p>]]> </content> </entry> <entry><title xml:lang="am">ያልተወሰኑ ኮኤፊሺየንቶች ዘዴ</title><link href="https://www.yunseo.kim/am/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/method-of-undetermined-coefficients/" rel="alternate" type="text/html" hreflang="am" /><published>2025-04-20T00:00:00+09:00</published> <updated>2025-04-20T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/method-of-undetermined-coefficients/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Differential Equation" /> <summary xml:lang="am">ለተወሰኑ ቅርጾች ያላቸው ቋሚ-ኮኤፊሺየንት ያልሆሞጂኒየስ መስመራዊ ODE-ዎች የመጀመሪያ እሴት ችግሮችን በቀላሉ የሚፈታ እና በንዝረት ስርዓቶችና RLC ወረዳዎች በተደጋጋሚ የሚጠቅም የያልተወሰኑ ኮኤፊሺየንቶች ዘዴን እንመልከት።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>ለተወሰኑ ቅርጾች ያላቸው ቋሚ-ኮኤፊሺየንት ያልሆሞጂኒየስ መስመራዊ ODE-ዎች የመጀመሪያ እሴት ችግሮችን በቀላሉ የሚፈታ እና በንዝረት ስርዓቶችና RLC ወረዳዎች በተደጋጋሚ የሚጠቅም የያልተወሰኑ ኮኤፊሺየንቶች ዘዴን እንመልከት።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="አጭር-ማጠቃለያ">አጭር ማጠቃለያ</h2><blockquote class="prompt-info"><ul><li><strong>የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ</strong> የሚተገበርባቸው:<ul><li><strong>ቋሚ ኮኤፊሺየንቶች $a$ እና $b$</strong> ያላቸው<li>ግቤቱ $r(x)$ ኤክስፖነንሻል ፋንክሽን, የ $x$ ኃይል, $\cos$ ወይም $\sin$, ወይም እነዚህን ፋንክሽኖች በመደመርና በማባዛት የተገነባ የሆነ<li>መስመራዊ ተራ ዲፈረንሻል ስሌት $y^{\prime\prime} + ay^{\prime} + by = r(x)$</ul><li><strong>ለያልተወሰኑ ኮኤፊሺየንቶች ዘዴ የምርጫ ደንቦች</strong><ul><li><strong>(a) መሠረታዊ ደንብ(basic rule)</strong>: በስሌት ($\ref{eqn:linear_ode_with_constant_coefficients}$) ውስጥ $r(x)$ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ካሉት ፋንክሽኖች አንዱ ከሆነ, በተመሳሳይ ረድፍ ያለውን $y_p$ እንመርጣለን, እና $y_p$ እና አመጣጦቹን በስሌት ($\ref{eqn:linear_ode_with_constant_coefficients}$) ውስጥ በመተካት ያልተወሰኑትን ኮኤፊሺየንቶች እንወስናለን።<li><strong>(b) የማሻሻያ ደንብ(modification rule)</strong>: ለ $y_p$ የተመረጠው አባል ከስሌት ($\ref{eqn:linear_ode_with_constant_coefficients}$) ጋር የሚዛመደው ሆሞጂኒየስ ተራ ዲፈረንሻል ስሌት $y^{\prime\prime} + ay^{\prime} + by = 0$ መፍትሄ ከሆነ, ይህን አባል በ $x$ (ወይም ይህ መፍትሄ የሆሞጂኒየስ ስሌቱ የባህሪ ስሌት ድርብ ሥር ከሆነ $x^2$) እንባዛዋለን።<li><strong>(c) የድምር ደንብ(sum rule)</strong>: $r(x)$ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ያሉ ፋንክሽኖች ድምር ከሆነ, በሁለተኛው አምድ ያሉ ተዛማጅ ረድፎች ፋንክሽኖች ድምርን $y_p$ አድርገን እንመርጣለን።</ul></ul><table><thead><tr><th style="text-align: left">የ $r(x)$ አባል<th style="text-align: left">ለ $y_p(x)$ የምርጫ ቅጽ<tbody><tr><td style="text-align: left">$ke^{\gamma x}$<td style="text-align: left">$Ce^{\gamma x}$<tr><td style="text-align: left">$kx^n\ (n=0,1,\cdots)$<td style="text-align: left">$K_nx^n + K_{n-1}x^{n-1} + \cdots + K_1x + K_0$<tr><td style="text-align: left">$k\cos{\omega x}$<br />$k\sin{\omega x}$<td style="text-align: left">$K\cos{\omega x} + M\sin{\omega x}$<tr><td style="text-align: left">$ke^{\alpha x}\cos{\omega x}$<br />$ke^{\alpha x}\sin{\omega x}$<td style="text-align: left">$e^{\alpha x}(K\cos{\omega x} + M\sin{\omega x})$</table></blockquote><h2 id="ቅድመ-ዕውቀቶች">ቅድመ ዕውቀቶች</h2><ul><li><a href="/am/posts/homogeneous-linear-odes-of-second-order/">2ኛ ደረጃ ሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌቶች(Homogeneous Linear ODEs of Second Order)</a><li><a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">ቋሚ ኮኤፊሺየንቶች ያሏቸው 2ኛ ደረጃ ሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌቶች</a><li><a href="/am/posts/euler-cauchy-equation/">ኦይለር-ኮሺ ስሌት(Euler-Cauchy equation)</a><li><a href="/am/posts/wronskian-existence-and-uniqueness-of-solutions/">ውሮንስኪያን(Wronskian), የመፍትሄ መኖር እና አንድነት</a><li><a href="/am/posts/nonhomogeneous-linear-odes-of-second-order/">2ኛ ደረጃ ያልሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌቶች(Nonhomogeneous Linear ODEs of Second Order)</a><li>ቬክተር ቦታ, መስመራዊ ስፋት(ሊኒየር አልጀብራ)</ul><h2 id="ያልተወሰኑ-ኮኤፊሺየንቶች-ዘዴ">ያልተወሰኑ ኮኤፊሺየንቶች ዘዴ</h2><p>$r(x) \not\equiv 0$ የሆነ 2ኛ ደረጃ ያልሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌት</p>\[y^{\prime\prime} + p(x)y^{\prime} + q(x)y = r(x) \label{eqn:nonhomogeneous_linear_ode}\tag{1}\]<p>እና ከዚህ ያልሆሞጂኒየስ ስሌት ጋር የሚዛመደው ሆሞጂኒየስ ተራ ዲፈረንሻል ስሌት</p>\[y^{\prime\prime} + p(x)y^{\prime} + q(x)y = 0 \label{eqn:homogeneous_linear_ode}\tag{2}\]<p>እንመልከት።</p><p>ከዚህ ቀደም <a href="/am/posts/nonhomogeneous-linear-odes-of-second-order/">2ኛ ደረጃ ያልሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌቶች(Nonhomogeneous Linear ODEs of Second Order)</a> ላይ እንዳየነው, ለያልሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) የመጀመሪያ እሴት ችግርን ለመፍታት መጀመሪያ ሆሞጂኒየስ ስሌት ($\ref{eqn:homogeneous_linear_ode}$) በመፍታት $y_h$ ማግኘት አለብን, ከዚያም የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) አንድ መፍትሄ $y_p$ በማግኘት አጠቃላይ መፍትሄውን</p>\[y(x) = y_h(x) + y_p(x) \label{eqn:general_sol}\tag{3}\]<p>ማግኘት አለብን። እንግዲህ $y_p$ እንዴት እናገኛለን? $y_p$ ለማግኘት አጠቃላይ ዘዴው <strong>የመለኪያ ለውጥ ዘዴ(method of variation of parameters)</strong> ቢሆንም, በአንዳንድ ሁኔታዎች ከእርሱ በእጅጉ ቀላል የሆነውን <strong>የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ(method of undetermined coefficients)</strong> መተግበር እንችላለን። በተለይም, በንዝረት ስርዓቶች እና በ RLC የኤሌክትሪክ ወረዳ ሞዴሎች ላይ ስለሚተገበር በምህንድስና ብዙ ጊዜ የሚጠቀሙበት ዘዴ ነው።</p><p>የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ ለ <strong>ቋሚ ኮኤፊሺየንቶች $a$ እና $b$</strong> ያላቸው, እና ግቤቱ $r(x)$ ኤክስፖነንሻል ፋንክሽን, የ $x$ ኃይል, $\cos$ ወይም $\sin$, ወይም እነዚህን ፋንክሽኖች በመደመርና በማባዛት የተገነባ የሆነ መስመራዊ ተራ ዲፈረንሻል ስሌት</p>\[y^{\prime\prime} + ay^{\prime} + by = r(x) \label{eqn:linear_ode_with_constant_coefficients}\tag{4}\]<p>ተስማሚ ነው። ይህ አይነት $r(x)$ ከራሱ ጋር ተመሳሳይ ቅርጽ ያላቸውን አመጣጦች እንደሚኖሩት ያለው ነጥብ የዚህ ዘዴ ዋና ሐሳብ ነው። ይህን ዘዴ ለመተግበር, ከ $r(x)$ ጋር ተመሳሳይ ቅርጽ ያለው ነገር ግን ራሱን እና አመጣጦቹን በተሰጠው ስሌት ውስጥ በመተካት የሚወሰኑ ያልታወቁ ኮኤፊሺየንቶች ያሉትን $y_p$ እንመርጣለን። በምህንድስና አግባብ ያላቸው አስፈላጊ የ $r(x)$ ቅርጾች ላይ ተስማሚ $y_p$ ለመምረጥ የሚረዱ ደንቦች እነዚህ ናቸው።</p><blockquote class="prompt-info"><p><strong>ለያልተወሰኑ ኮኤፊሺየንቶች ዘዴ የምርጫ ደንቦች</strong><br /> <strong>(a) መሠረታዊ ደንብ(basic rule)</strong>: በስሌት ($\ref{eqn:linear_ode_with_constant_coefficients}$) ውስጥ $r(x)$ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ካሉት ፋንክሽኖች አንዱ ከሆነ, በተመሳሳይ ረድፍ ያለውን $y_p$ እንመርጣለን, እና $y_p$ እና አመጣጦቹን በስሌት ($\ref{eqn:linear_ode_with_constant_coefficients}$) ውስጥ በመተካት ያልተወሰኑትን ኮኤፊሺየንቶች እንወስናለን።<br /> <strong>(b) የማሻሻያ ደንብ(modification rule)</strong>: ለ $y_p$ የተመረጠው አባል ከስሌት ($\ref{eqn:linear_ode_with_constant_coefficients}$) ጋር የሚዛመደው ሆሞጂኒየስ ተራ ዲፈረንሻል ስሌት $y^{\prime\prime} + ay^{\prime} + by = 0$ መፍትሄ ከሆነ, ይህን አባል በ $x$ (ወይም ይህ መፍትሄ የሆሞጂኒየስ ስሌቱ የባህሪ ስሌት ድርብ ሥር ከሆነ $x^2$) እንባዛዋለን።<br /> <strong>(c) የድምር ደንብ(sum rule)</strong>: $r(x)$ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ያሉ ፋንክሽኖች ድምር ከሆነ, በሁለተኛው አምድ ያሉ ተዛማጅ ረድፎች ፋንክሽኖች ድምርን $y_p$ አድርገን እንመርጣለን።</p><table><thead><tr><th style="text-align: left">የ $r(x)$ አባል<th style="text-align: left">ለ $y_p(x)$ የምርጫ ቅጽ<tbody><tr><td style="text-align: left">$ke^{\gamma x}$<td style="text-align: left">$Ce^{\gamma x}$<tr><td style="text-align: left">$kx^n\ (n=0,1,\cdots)$<td style="text-align: left">$K_nx^n + K_{n-1}x^{n-1} + \cdots + K_1x + K_0$<tr><td style="text-align: left">$k\cos{\omega x}$<br />$k\sin{\omega x}$<td style="text-align: left">$K\cos{\omega x} + M\sin{\omega x}$<tr><td style="text-align: left">$ke^{\alpha x}\cos{\omega x}$<br />$ke^{\alpha x}\sin{\omega x}$<td style="text-align: left">$e^{\alpha x}(K\cos{\omega x} + M\sin{\omega x})$</table></blockquote><p>ይህ ዘዴ ቀላል ብቻ ሳይሆን ራስ-አስተካካይነት እንዳለው የሚቆጠር ጥቅምም አለው። $y_p$ በትክክል ካልተመረጠ ወይም በጣም ጥቂት አባላት ከተመረጡ, ተቃርኖ ይከሰታል፤ እንዲሁም ከሚያስፈልገው በላይ ብዙ አባላት ከተመረጡ, አላስፈላጊ አባላት ኮኤፊሺየንቶች $0$ ሆነው ትክክለኛው ውጤት ይገኛል። ስለዚህ ይህን ዘዴ ሲተገብሩ የሆነ ነገር ቢሳሳት እንኳን, በመፍትሄ ሂደቱ ውስጥ በተፈጥሮ ማስተዋል ይቻላል፤ ስለዚህ ከላይ ባሉት የምርጫ ደንቦች መሠረት በአጠቃላይ ተገቢ የሆነ $y_p$ ከተመረጠ, ከልብ ያለ ጫና መሞከር ይቻላል።</p><h3 id="የድምር-ደንብ-ማረጋገጫ">የድምር ደንብ ማረጋገጫ</h3><p>$r(x) = r_1(x) + r_2(x)$ ቅርጽ ያለውን ያልሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌት</p>\[y^{\prime\prime} + ay^{\prime} + by = r_1(x) + r_2(x)\]<p>እንመልከት። አሁን ተመሳሳይ ግራ ክፍል ያላቸው, ግን እንደ ግቤት $r_1$, $r_2$ ያላቸውን ሁለት ስሌቶች</p>\[\begin{gather*} y^{\prime\prime} + ay^{\prime} + by = r_1(x) \\ y^{\prime\prime} + ay^{\prime} + by = r_2(x) \end{gather*}\]<p>እያንዳንዳቸው ${y_p}_1$, ${y_p}_2$ መፍትሄ እንዳላቸው እንግምት። የተሰጠውን ስሌት ግራ ክፍል $L[y]$ ብለን ከጻፍን, በ $L[y]$ መስመራዊነት ምክንያት $y_p = {y_p}_1 + {y_p}_2$ ላይ የሚከተለው ስለሚሟላ, የድምር ደንብ ይረጋገጣል።</p>\[L[y_p] = L[{y_p}_1 + {y_p}_2] = L[{y_p}_1] + L[{y_p}_2] = r_1 + r_2 = r. \ \blacksquare\]<h2 id="ምሳሌ-yprimeprime--ayprime--by--kegamma-x">ምሳሌ: $y^{\prime\prime} + ay^{\prime} + by = ke^{\gamma x}$</h2><p>በመሠረታዊው ደንብ (a) መሠረት $y_p = Ce^{\gamma x}$ ብለን እንወስድ እና ይህን በተሰጠው ስሌት $y^{\prime\prime} + ay^{\prime} + by = ke^{\gamma x}$ ውስጥ ካስተካከልን</p>\[\gamma^2 Ce^{\gamma x} + \gamma aCe^{\gamma x} + bCe^{\gamma x} = ke^{\gamma x}\] \[C(\gamma^2 + a\gamma + b)e^{\gamma x} = ke^{\gamma x}\] \[C(\gamma^2 + a\gamma + b) = k.\]<h3 id="gamma2--agamma--b-neq-0-በሚሆንበት-ጊዜ">$\gamma^2 + a\gamma + b \neq 0$ በሚሆንበት ጊዜ</h3><p>እንደሚከተለው ያልተወሰነውን ኮኤፊሺየንት $C$ መወሰን እና $y_p$ ማግኘት እንችላለን።</p>\[C = \frac{k}{\gamma^2 + a\gamma + b}\] \[y_p = Ce^{\gamma x} = \frac{k}{\gamma^2 + a\gamma + b} e^{\gamma x}.\]<h3 id="gamma2--agamma--b--0-በሚሆንበት-ጊዜ">$\gamma^2 + a\gamma + b = 0$ በሚሆንበት ጊዜ</h3><p>በዚህ ሁኔታ የማሻሻያውን ደንብ (b) መተግበር አለብን። መጀመሪያ $b = -\gamma^2 - a\gamma = -\gamma(a + \gamma)$ መሆኑን በመጠቀም, የሆሞጂኒየስ ተራ ዲፈረንሻል ስሌት $y^{\prime\prime} + ay^{\prime} + by = 0$ የባህሪ ስሌት ሥሮችን እንፈልግ።</p>\[y^{\prime\prime} + ay^{\prime} - \gamma(a + \gamma)y = 0\] \[\lambda^2 + a\lambda - \gamma(a + \gamma) = 0\] \[(\lambda + (a + \gamma))(\lambda - \gamma) = 0\] \[\lambda = \gamma, -a -\gamma.\]<p>ከዚህ የሆሞጂኒየስ ስሌቱን መሠረት</p>\[y_1 = e^{\gamma x}, \quad y_2 = e^{(-a - \gamma)x}\]<p>እናገኛለን።</p><h4 id="gamma-neq--a-gamma-በሚሆንበት-ጊዜ">$\gamma \neq -a-\gamma$ በሚሆንበት ጊዜ</h4><p>ለ $y_p$ መጀመሪያ የተመረጠው $Ce^{\gamma x}$ ከተሰጠው ስሌት ጋር የሚዛመደው ሆሞጂኒየስ ስሌት ድርብ ሥር ያልሆነ መፍትሄ ስለሆነ, በየማሻሻያው ደንብ (b) መሠረት ይህን አባል በ $x$ እንባዛው እና $y_p = Cxe^{\gamma x}$ ብለን እንወስዳለን።</p><p>አሁን ይህን የተሻሻለውን $y_p$ በተሰጠው ስሌት $y^{\prime\prime} + ay^{\prime} - \gamma(a + \gamma)y = ke^{\gamma x}$ ውስጥ እንደገና ካስተካከልን</p>\[C(2\gamma + \gamma^2 x)e^{\gamma x} + aC(1 + \gamma x)e^{\gamma x} - \gamma(a + \gamma)Cxe^{\gamma x} = ke^{\gamma x}\] \[C \left[\left\{\gamma^2 + a\gamma -\gamma(a + \gamma)\right\}x + 2\gamma + a \right]e^{\gamma x} = ke^{\gamma x}\] \[C(2\gamma + a)e^{\gamma x} = ke^{\gamma x}\] \[C(2\gamma + a) = k\] \[\therefore C = \frac{k}{2\gamma + a}, \quad y_p = Cxe^{\gamma x} = \frac{k}{2\gamma + a}xe^{\gamma x}.\]<h4 id="gamma---a-gamma-በሚሆንበት-ጊዜ">$\gamma = -a-\gamma$ በሚሆንበት ጊዜ</h4><p>በዚህ ሁኔታ ለ $y_p$ መጀመሪያ የተመረጠው $Ce^{\gamma x}$ ከተሰጠው ስሌት ጋር የሚዛመደው ሆሞጂኒየስ ስሌት ድርብ ሥር ስለሆነ, በየማሻሻያው ደንብ (b) መሠረት ይህን አባል በ $x^2$ እንባዛው እና $y_p = Cx^2 e^{\gamma x}$ ብለን እንወስዳለን።</p><p>አሁን ይህን የተሻሻለውን $y_p$ በተሰጠው ስሌት $y^{\prime\prime} - 2\gamma y^{\prime} + \gamma^2 y = ke^{\gamma x}$ ውስጥ እንደገና ካስተካከልን</p>\[C(2 + 4\gamma x + \gamma^2 x^2)e^{\gamma x} + C(-4\gamma x - 2\gamma^2 x^2)e^{\gamma x} + C(\gamma^2 x^2)e^{\gamma x} = ke^{\gamma x}\] \[2Ce^{\gamma x} = ke^{\gamma x}\] \[2C = k\] \[\therefore C = \frac{k}{2}, \quad y_p = Cx^2 e^{\gamma x} = \frac{k}{2}x^2 e^{\gamma x}.\]<h2 id="የያልተወሰኑ-ኮኤፊሺየንቶች-ዘዴ-መስፋፋት-rx-የፋንክሽኖች-ውጤት-ቅርጽ-ሲሆን">የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ መስፋፋት: $r(x)$ የፋንክሽኖች ውጤት ቅርጽ ሲሆን</h2><p>$r(x) = k x^n e^{\alpha x}\cos(\omega x)$ ቅርጽ ያለውን ያልሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌት</p>\[y^{\prime\prime} + ay^{\prime} + by = C x^n e^{\alpha x}\cos(\omega x)\]<p>እንመልከት። $r(x)$ እንደዚህ ያለ ኤክስፖነንሻል ፋንክሽን $e^{\alpha x}$, የ $x$ ኃይል $x^m$, $\cos{\omega x}$ ወይም $\sin{\omega x}$ (እዚህ $\cos$ ብለን እንመስላለን, እንዲህ ብለን ማስቀመጥ አጠቃላይነቱን አያጎድልም), ወይም እነዚህ ፋንክሽኖች ድምርና ውጤት ከሆነ (ማለትም, ቀደም ብሎ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ባሉ ፋንክሽኖች ድምርና ውጤት መግለጽ ከተቻለ), በተመሳሳይ ሰንጠረዥ ሁለተኛ አምድ ውስጥ ያሉ ፋንክሽኖች ድምርና ውጤት ቅርጽ ያለው የስሌቱ መፍትሄ $y_p$ እንዳለ እናሳያለን።</p><blockquote class="prompt-tip"><p>ጥብቅ ማረጋገጫ ለማድረግ ሊኒየር አልጀብራን ተጠቅመን የገለጽናቸው ክፍሎች አሉ፤ እነዚህ ክፍሎች በ * ተመልክተዋል። እነዚያን ክፍሎች በመዝለል የቀሩትን ብቻ ብታነቡም አጠቃላይ ግንዛቤ ለማግኘት ችግር የለውም።</p></blockquote><h3 id="የቬክተር-ቦታ-v-መግለጫ">የቬክተር ቦታ $V$ መግለጫ*</h3><p>\(\begin{align*} r(x) &amp;= C_1x^{n_1}e^{\alpha_1 x} \times C_2x^{n_2}e^{\alpha_2 x}\cos(\omega x) \times \cdots \\ &amp;= C x^n e^{\alpha x}\cos(\omega x) \end{align*}\)</p><p>የሆነ $r(x)$ ላይ, $r(x) \in V$ እንዲሆን የቬክተር ቦታ $V$ እንደሚከተለው ማስያዝ ይቻላል።</p>\[V = \mathrm{span}\left\{x^k e^{\alpha x}\cos(\omega x), \; x^k e^{\alpha x}\sin(\omega x) \bigm| k=0,1,\dots,n \right\}\]<h3 id="የኤክስፖነንሻል-ፋንክሽኖች-የፖሊኖሚያል-ፋንክሽኖች-እና-የትሪጎኖሜትሪክ-ፋንክሽኖች-አመጣጥ-ቅርጾች">የኤክስፖነንሻል ፋንክሽኖች, የፖሊኖሚያል ፋንክሽኖች, እና የትሪጎኖሜትሪክ ፋንክሽኖች አመጣጥ ቅርጾች</h3><p>ቀደም ብሎ በሰንጠረዡ የመጀመሪያ አምድ የተሰጡት መሠረታዊ ፋንክሽኖች አመጣጥ ቅርጾች እነዚህ ናቸው።</p><ul><li>ኤክስፖነንሻል ፋንክሽን: $\cfrac{d}{dx}e^{\alpha x} = \alpha e^{\alpha x}$<li>ፖሊኖሚያል ፋንክሽን: $\cfrac{d}{dx}x^m = mx^{m-1}$<li>ትሪጎኖሜትሪክ ፋንክሽን: $\cfrac{d}{dx}\cos\omega x = -\omega\sin\omega x, \quad \cfrac{d}{dx}\sin\omega x = \omega\cos\omega x$</ul><p>እነዚህን ፋንክሽኖች በመለየት የሚገኙት አመጣጦችም <u>በተመሳሳይ ዓይነት ፋንክሽኖች ድምር</u> ሊገለጹ ይችላሉ።</p><p>ስለዚህ, ፋንክሽኖች $f$ እና $g$ ከላይ ያሉ ፋንክሽኖች ወይም እነርሱ ድምር ከሆኑ, $r(x) = f(x)g(x)$ ላይ የውጤት ልዩነት ሕግን በመተግበር</p>\[\begin{align*} (fg)^{\prime} &amp;= f^{\prime}g + fg^{\prime}, \\ (fg)^{\prime\prime} &amp;= f^{\prime\prime}g + 2f^{\prime}g^{\prime} + fg^{\prime\prime} \end{align*}\]<p>እናገኛለን፤ እዚህ $f$, $f^{\prime}$, $f^{\prime\prime}$ እና $g$, $g^{\prime}$, $g^{\prime\prime}$ ሁሉም ኤክስፖነንሻል ፋንክሽኖች, ፖሊኖሚያል ፋንክሽኖች, ትሪጎኖሜትሪክ ፋንክሽኖች ድምር ወይም በቋሚ ቁጥር የተባዙ ቅርጾች ናቸው። ስለዚህ $r^{\prime}(x) = (fg)^{\prime}$ እና $r^{\prime\prime}(x) = (fg)^{\prime\prime}$ እንዲሁም እንደ $r(x)$ በእነዚህ ፋንክሽኖች ድምርና ውጤት ሊገለጹ ይችላሉ።</p><h3 id="v-በልዩነት-ኦፕሬሽን-d-እና-በመስመራዊ-ተለዋዋጭ-l-ስር-የማይለወጥ-መሆን">$V$ በልዩነት ኦፕሬሽን $D$ እና በመስመራዊ ተለዋዋጭ $L$ ስር የማይለወጥ መሆን*</h3><p>ማለትም, $r(x)$ ብቻ ሳይሆን $r^{\prime}(x)$ እና $r^{\prime\prime}(x)$ ደግሞ $x^k e^{\alpha x}\cos(\omega x)$ ቅርጽ ያላቸው አባላትና $x^k e^{\alpha x}\sin(\omega x)$ ቅርጽ ያላቸው አባላት የመስመራዊ ጥምረት ስለሆኑ</p>\[r(x) \in V \implies r^{\prime}(x) \in V,\ r^{\prime\prime}(x) \in V.\]<p>ይህን ሐሳብ $r(x)$ ብቻ ሳይገድብ ከዚህ በፊት በተገለጸው የቬክተር ቦታ $V$ ሁሉም አባላት ላይ የልዩነት ኦፕሬተር $D$ በማስገባት አጠቃላይ ቅጽ ላይ እንጻፍ ከሆነ, <em>የቬክተር ቦታ $V$ በልዩነት ኦፕሬሽን $D$ ስር ዝግ ነው</em> ማለት ነው። ስለዚህ የተሰጠውን ስሌት ግራ ክፍል $y^{\prime\prime} + ay^{\prime} + by$ ን $L[y]$ ብለን ከጻፍን, <em>$V$ በ $L$ ስር የማይለወጥ(invariant) ነው</em>።</p>\[D^2(V)\subseteq V,\quad aD(V)\subseteq V,\quad b\,V\subseteq V \implies L(V)\subseteq V.\]<p>$r(x) \in V$ እና $V$ በ $L$ ስር የማይለወጥ ስለሆነ, $L[y_p] = r$ የሚያሟላ የ $V$ ሌላ አባል $y_p$ አለ።</p>\[\exists y_p \in V: L[y_p] = r\]<h3 id="አንሳትዝansatz">አንሳትዝ(Ansatz)</h3><p>ስለዚህ, ሁሉንም የሚቻሉ የውጤት ቅርጽ አባላት ድምር እንዲሆን ተገቢውን $y_p$ በያልተወሰኑት ኮኤፊሺየንቶች $A_0, A_1, \dots, A_n$ እና $K$, $M$ በመጠቀም እንደሚከተለው ከመረጥን, በመሠረታዊው ደንብ (a) እና በየማሻሻያው ደንብ (b) መሠረት $y_p$ (ወይም $xy_p$, $x^2y_p$) እና አመጣጦቹን በተሰጠው ስሌት ውስጥ በመተካት ያልተወሰኑትን ኮኤፊሺየንቶች መወሰን ይቻላል። በዚህ ጊዜ $n$ በ $r(x)$ ውስጥ ያለው የ $x$ ዲግሪ መሠረት ይወሰናል።</p>\[y_p = e^{\alpha x}(A_nx^n + A_{n-1}x^{n-1} + \cdots + A_1x + A_0)(K\cos{\omega x} + M \sin{\omega x}).\]<p>$\blacksquare$</p><blockquote class="prompt-warning"><p>ከተሰጠው ግቤት $r(x)$ ውስጥ የተለያዩ ብዙ $\alpha_i$, $\omega_j$ እሴቶች ካሉ, ለእያንዳንዱ $\alpha_i$ እና $\omega_j$ እሴት የሚቻሉ ሁሉንም $x^{k}e^{\alpha_i x}\cos(\omega_j x)$ እና $x^{k}e^{\alpha_i x}\sin(\omega_j x)$ ቅርጽ ያላቸው አባላት ሳይቀሩ እንዲካተቱ $y_p$ መመርጥ አለበት።<br /> የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ ጥቅሙ ቀላልነቱ ስለሆነ, የመፍትሄ መነሻ ግምቱ(ansatz) በጣም ውስብስብ ሆኖ ይህን ጥቅም ካጠፋ, ይልቁንም ከዚህ በኋላ የምናየውን የመለኪያ ለውጥ ዘዴ መተግበር ይሻላል።</p></blockquote><h2 id="የያልተወሰኑ-ኮኤፊሺየንቶች-ዘዴ-መስፋፋት-ኦይለር-ኮሺ-ስሌትeuler-cauchy-equation">የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ መስፋፋት: ኦይለር-ኮሺ ስሌት(Euler-Cauchy equation)</h2><p><a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">ቋሚ ኮኤፊሺየንቶች ያሏቸው 2ኛ ደረጃ ሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌቶች</a> ብቻ ሳይሆን, <a href="/am/posts/euler-cauchy-equation/">ኦይለር-ኮሺ ስሌት(Euler-Cauchy equation)</a></p>\[x^2y^{\prime\prime} + axy^{\prime} + by = r(x) \label{eqn:euler_cauchy}\tag{5}\]<p>ላይም የያልተወሰኑ ኮኤፊሺየንቶች ዘዴን መጠቀም ይቻላል።</p><h3 id="ተለዋዋጭ-መተካት">ተለዋዋጭ መተካት</h3><p><a href="/am/posts/euler-cauchy-equation/#ወደ-ቋሚ-ኮኤፊሺየንቶች-ያላቸው-2ኛ-ደረጃ-ሆሞጂኒየስ-መስመራዊ-ተራ-ዲፈረንሻል-ስሌቶች-መለወጥ">$x = e^t$ በማድረግ ወደ ቋሚ ኮኤፊሺየንቶች ያላቸው 2ኛ ደረጃ ሆሞጂኒየስ መስመራዊ ተራ ዲፈረንሻል ስሌቶች መለወጥ</a> ካደረግን</p>\[\frac{d}{dx} = \frac{1}{x}\frac{d}{dt}, \quad \frac{d^2}{dx^2} = \frac{1}{x^2}\left(\frac{d^2}{dt^2} - \frac{d}{dt} \right)\]<p>ይሆናል፤ ስለዚህ ኦይለር-ኮሺ ስሌቱን እንደሚከተለው በ $t$ ላይ ቋሚ ኮኤፊሺየንት ያለው መስመራዊ ተራ ዲፈረንሻል ስሌት መቀየር እንደሚቻል ቀደም ብለን አይተናል።</p>\[y^{\prime\prime} + (a-1)y^{\prime} + by = r(e^t). \label{eqn:substituted}\tag{6}\]<p>አሁን በስሌት ($\ref{eqn:substituted}$) ላይ <a href="#ያልተወሰኑ-ኮኤፊሺየንቶች-ዘዴ">ከዚህ ቀደም ያየነውን የያልተወሰኑ ኮኤፊሺየንቶች ዘዴ</a> በተመሳሳይ መንገድ ለ $t$ እንተግብር, መጨረሻም $t = \ln x$ መሆኑን በመጠቀም በ $x$ ላይ ያለውን መፍትሄ እናገኛለን።</p><h3 id="rx-የ-x-ኃይሎች-የተፈጥሮ-ሎጋሪትም-ወይም-እነዚህ-ፋንክሽኖች-ድምርና-ውጤት-በሚሆንበት-ጊዜ">$r(x)$ የ $x$ ኃይሎች, የተፈጥሮ ሎጋሪትም, ወይም እነዚህ ፋንክሽኖች ድምርና ውጤት በሚሆንበት ጊዜ</h3><p>በተለይ, ግቤቱ $r(x)$ የ $x$ ኃይሎች, የተፈጥሮ ሎጋሪትም, ወይም እነዚህ ፋንክሽኖች ድምርና ውጤት ከሆነ, ለኦይለር-ኮሺ ስሌት የሚከተሉትን የምርጫ ደንቦች በመጠቀም ተገቢውን $y_p$ በቀጥታ መምረጥ ይቻላል።</p><blockquote class="prompt-info"><p><strong>ለያልተወሰኑ ኮኤፊሺየንቶች ዘዴ የምርጫ ደንቦች: ለኦይለር-ኮሺ ስሌት</strong><br /> <strong>(a) መሠረታዊ ደንብ(basic rule)</strong>: በስሌት ($\ref{eqn:euler_cauchy}$) ውስጥ $r(x)$ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ካሉት ፋንክሽኖች አንዱ ከሆነ, በተመሳሳይ ረድፍ ያለውን $y_p$ እንመርጣለን, እና $y_p$ እና አመጣጦቹን በስሌት ($\ref{eqn:euler_cauchy}$) ውስጥ በመተካት ያልተወሰኑትን ኮኤፊሺየንቶች እንወስናለን።<br /> <strong>(b) የማሻሻያ ደንብ(modification rule)</strong>: ለ $y_p$ የተመረጠው አባል ከስሌት ($\ref{eqn:euler_cauchy}$) ጋር የሚዛመደው ሆሞጂኒየስ ተራ ዲፈረንሻል ስሌት $x^2y^{\prime\prime} + axy^{\prime} + by = 0$ መፍትሄ ከሆነ, ይህን አባል በ $\ln{x}$ (ወይም ይህ መፍትሄ የሆሞጂኒየስ ስሌቱ የባህሪ ስሌት ድርብ ሥር ከሆነ $(\ln{x})^2$) እንባዛዋለን።<br /> <strong>(c) የድምር ደንብ(sum rule)</strong>: $r(x)$ በሰንጠረዡ የመጀመሪያ አምድ ውስጥ ያሉ ፋንክሽኖች ድምር ከሆነ, በሁለተኛው አምድ ያሉ ተዛማጅ ረድፎች ፋንክሽኖች ድምርን $y_p$ አድርገን እንመርጣለን።</p><table><thead><tr><th style="text-align: left">የ $r(x)$ አባል<th style="text-align: left">ለ $y_p(x)$ የምርጫ ቅጽ<tbody><tr><td style="text-align: left">$kx^m\ (m=0,1,\cdots)$<td style="text-align: left">$Ax^m$<tr><td style="text-align: left">$kx^m \ln{x}\ (m=0,1,\cdots)$<td style="text-align: left">$x^m(B\ln x + C)$<tr><td style="text-align: left">$k(\ln{x})^s\ (s=0,1,\cdots)$<td style="text-align: left">$D_0 + D_1\ln{x} + \cdots + D_{s-1}(\ln{x})^{s-1} + D_s(\ln{x})^s$<tr><td style="text-align: left">$kx^m (\ln{x})^s$<br />$(m=0,1,\cdots ;\; s=0,1,\cdots)$<td style="text-align: left">$x^m \left( D_0 + D_1\ln{x} + \cdots + D_{s-1}(\ln{x})^{s-1} + D_s(\ln{x})^s \right)$</table></blockquote><p>እንዲህ በማድረግ በአግባብ አስፈላጊ ቅርጽ ያለው ግቤት $r(x)$ ላይ, <a href="#ተለዋዋጭ-መተካት">ተለዋዋጭ መተካት</a> በማድረግ ከሚገኘው ጋር ተመሳሳይ የሆነውን $y_p$ ከዚያ በላይ ፈጣንና ቀላል በሆነ መንገድ ማግኘት ይቻላል። ከዚህ ቀደም ባየነው <a href="#ያልተወሰኑ-ኮኤፊሺየንቶች-ዘዴ">የመጀመሪያው የምርጫ ደንብ</a> ውስጥ በ $x$ ምትክ $\ln{x}$ ብቻ በመተካት, ይህን ለኦይለር-ኮሺ ስሌት የሚሆነውን የምርጫ ደንብ ማውጣት ይቻላል።</p>]]> </content> </entry> <entry><title xml:lang="am">የ2ኛ ደረጃ አል-ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌቶች (Nonhomogeneous Linear ODEs of Second Order)</title><link href="https://www.yunseo.kim/am/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/nonhomogeneous-linear-odes-of-second-order/" rel="alternate" type="text/html" hreflang="am" /><published>2025-04-16T00:00:00+09:00</published> <updated>2025-04-16T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/nonhomogeneous-linear-odes-of-second-order/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Differential Equation" /> <summary xml:lang="am">የ2ኛ ደረጃ አል-ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌቶች አጠቃላይ መፍትሔ ከተዛማጅ ሆሞጄንየስ ስሌት መፍትሔ ጋር ያለውን ግንኙነት ይመለከታል፣ እንዲሁም የአጠቃላይ መፍትሔ መኖርና የልዩ መፍትሔ አለመኖርን ያሳያል።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>የ2ኛ ደረጃ አል-ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌቶች አጠቃላይ መፍትሔ ከተዛማጅ ሆሞጄንየስ ስሌት መፍትሔ ጋር ያለውን ግንኙነት ይመለከታል፣ እንዲሁም የአጠቃላይ መፍትሔ መኖርና የልዩ መፍትሔ አለመኖርን ያሳያል።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><ul><li>የ2ኛ ደረጃ አል-ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌት $y^{\prime\prime} + p(x)y^{\prime} + q(x)y = r(x)$ ၏ <strong>አጠቃላይ መፍትሔ</strong>:<ul><li>$y(x) = y_h(x) + y_p(x)$<li>$y_h$: የሆሞጄንየስ ተራ ልዩነት ስሌት $y^{\prime\prime} + p(x)y^{\prime} + q(x)y = 0$ አጠቃላይ መፍትሔ $y_h = c_1y_1 + c_2y_2$<li>$y_p$: ለተዛማጁ አል-ሆሞጄንየስ ተራ ልዩነት ስሌት የተለየ መፍትሔ</ul><li>የምላሽ ክፍሉ $y_p$ የሚወሰነው በግቤት $r(x)$ ብቻ ሲሆን፣ ለአንድ አይነት አል-ሆሞጄንየስ ተራ ልዩነት ስሌት የመጀመሪያ ሁኔታዎች ቢለያዩም $y_p$ አይለወጥም። የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ሁለት የተለዩ መፍትሔዎች ልዩነት ደግሞ ተዛማጁ ሆሞጄንየስ ተራ ልዩነት ስሌት መፍትሔ ይሆናል።<li><strong>የአጠቃላይ መፍትሔ መኖር</strong>: የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ኮኤፊሺየንቶች $p(x)$, $q(x)$ እና የግቤት ተግባር $r(x)$ ቀጣይ ከሆኑ አጠቃላይ መፍትሔ ሁልጊዜ ይኖራል<li><strong>የልዩ መፍትሔ አለመኖር</strong>: አጠቃላይ መፍትሔው ሁሉንም መፍትሔዎች ይይዛል (ማለትም ልዩ መፍትሔ የለም)</ul></blockquote><h2 id="ቅድመ-ዕውቀቶች">ቅድመ ዕውቀቶች</h2><ul><li><a href="/am/posts/homogeneous-linear-odes-of-second-order/">የ2ኛ ደረጃ ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌቶች</a><li><a href="/am/posts/wronskian-existence-and-uniqueness-of-solutions/">ብሮንስኪያን(Wronskian), የመፍትሔ መኖር እና አንድነት</a></ul><h2 id="የ2ኛ-ደረጃ-አል-ሆሞጄንየስ-መስመራዊ-ተራ-ልዩነት-ስሌቶች-አጠቃላይ-መፍትሔ-እና-የተለየ-መፍትሔ">የ2ኛ ደረጃ አል-ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌቶች አጠቃላይ መፍትሔ እና የተለየ መፍትሔ</h2><p>የ2ኛ ደረጃ አል-ሆሞጄንየስ መስመራዊ ተራ ልዩነት ስሌት</p>\[y^{\prime\prime} + p(x)y^{\prime} + q(x)y = r(x) \label{eqn:nonhomogeneous_linear_ode}\tag{1}\]<p>እንመልከት። እዚህ $r(x) \not\equiv 0$ ነው። በክፍት ክልል $I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) <strong>አጠቃላይ መፍትሔ</strong> ማለት ከዚህ አል-ሆሞጄንየስ ተራ ልዩነት ስሌት ጋር የሚዛመደው ሆሞጄንየስ ተራ ልዩነት ስሌት</p>\[y^{\prime\prime} + p(x)y^{\prime} + q(x)y = 0 \label{eqn:homogeneous_linear_ode}\tag{2}\]<p>የአጠቃላይ መፍትሔው $y_h = c_1y_1 + c_2y_2$ እና የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) የተለየ መፍትሔ $y_p$ ድምር</p>\[y(x) = y_h(x) + y_p(x) \label{eqn:general_sol}\tag{3}\]<p>በሚለው ቅርጽ ነው። በተጨማሪም በክልል $I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) <strong>የተለየ መፍትሔ</strong> ማለት በ$y_h$ ውስጥ ላሉ ማናቸውም ቋሚዎች $c_1$ እና $c_2$ ልዩ እሴቶችን በመመደብ ከስሌት ($\ref{eqn:general_sol}$) የሚገኘው መፍትሔ ነው።</p><p>በሌላ አነጋገር፣ በሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) ላይ በገለልተኛ ተለዋዋጭ $x$ ብቻ የሚወሰን ግቤት $r(x)$ ከተጨመረ፣ ከዚህ ጋር የሚዛመድ ክፍል $y_p$ በምላሹ ላይ ይጨመራል፤ ይህም የተጨመረው የምላሽ ክፍል $y_p$ ከመጀመሪያ ሁኔታዎች ጋር ግንኙነት ሳይኖረው በ$ r(x)$ ብቻ ይወሰናል። በኋላ እንደምናየው፣ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ማናቸውም ሁለት መፍትሔዎች $y_1$ እና $y_2$ ልዩነት ሲወሰድ (ማለትም ለሁለት የተለያዩ የመጀመሪያ ሁኔታዎች የሚሰጡ ሁለት የተለዩ መፍትሔዎች ልዩነት ሲወሰድ) ከመጀመሪያ ሁኔታዎች ነጻ የሆነው $y_p$ ክፍል ይጠፋል እና ${y_h}_1$ እና ${y_h}_2$ ልዩነት ብቻ ይቀራል፤ ይህም በ<a href="/am/posts/homogeneous-linear-odes-of-second-order/#የሱፐርፖዚሽን-መርህ">የሱፐርፖዚሽን መርህ</a> መሠረት የስሌት ($\ref{eqn:homogeneous_linear_ode}$) መፍትሔ ይሆናል።</p><h2 id="በአል-ሆሞጄንየስ-ተራ-ልዩነት-ስሌት-መፍትሔዎችና-ከእሱ-ጋር-ተዛማጅ-በሆነው-ሆሞጄንየስ-ተራ-ልዩነት-ስሌት-መፍትሔዎች-መካከል-ያለ-ግንኙነት">በአል-ሆሞጄንየስ ተራ ልዩነት ስሌት መፍትሔዎችና ከእሱ ጋር ተዛማጅ በሆነው ሆሞጄንየስ ተራ ልዩነት ስሌት መፍትሔዎች መካከል ያለ ግንኙነት</h2><blockquote class="prompt-info"><p><strong>ቲዎረም 1: በአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) መፍትሔዎችና በሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) መፍትሔዎች መካከል ያለ ግንኙነት</strong><br /> <strong>(a)</strong> በአንድ ክፍት ክልል $I$ ላይ የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) መፍትሔ $y$ እና የሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) መፍትሔ $\tilde{y}$ ድምር በክልል $I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) መፍትሔ ነው። በተለይም ስሌት ($\ref{eqn:general_sol}$) በክልል $I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) መፍትሔ ነው።<br /> <strong>(b)</strong> በክልል $I$ ላይ የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ሁለት መፍትሔዎች ልዩነት በክልል $I$ ላይ የሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) መፍትሔ ነው።</p></blockquote><h3 id="ማረጋገጫ">ማረጋገጫ</h3><h4 id="a">(a)</h4><p>የስሌቶች ($\ref{eqn:nonhomogeneous_linear_ode}$) እና ($\ref{eqn:homogeneous_linear_ode}$) የግራ በኩል ክፍልን $L[y]$ ብለን እንሰይም። እንግዲህ በክልል $I$ ላይ ለስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ማንኛውም መፍትሔ $y$ እና ለስሌት ($\ref{eqn:homogeneous_linear_ode}$) ማንኛውም መፍትሔ $\tilde{y}$ የሚከተለው ይሟላል።</p>\[L[y + \tilde{y}] = L[y] + L[\tilde{y}] = r + 0 = r.\]<h4 id="b">(b)</h4><p>በክልል $I$ ላይ ለስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ማንኛውም ሁለት መፍትሔዎች $y$ እና $y^*$ የሚከተለው ይሟላል።</p>\[L[y - y^*] = L[y] - L[y^*] = r - r = 0.\ \blacksquare\]<h2 id="የአል-ሆሞጄንየስ-ተራ-ልዩነት-ስሌት-አጠቃላይ-መፍትሔ-ሁሉንም-መፍትሔዎች-ይይዛል">የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት አጠቃላይ መፍትሔ ሁሉንም መፍትሔዎች ይይዛል</h2><p>ለሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) <a href="/am/posts/wronskian-existence-and-uniqueness-of-solutions/#አጠቃላይ-መፍትሔ-ሁሉንም-መፍትሔዎች-ይይዛል">አጠቃላይ መፍትሔው ሁሉንም መፍትሔዎች እንደሚይዝ እናውቃለን</a>። ለአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ደግሞ ይህ እንደሚሠራ እናሳይ።</p><blockquote class="prompt-info"><p><strong>ቲዎረም 2: የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት አጠቃላይ መፍትሔ ሁሉንም መፍትሔዎች ይይዛል</strong><br /> የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ኮኤፊሺየንቶች $p(x)$, $q(x)$ እና የግቤት ተግባር $r(x)$ በአንድ ክፍት ክልል $I$ ላይ ቀጣይ ከሆኑ፣ በክልል $I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ሁሉም መፍትሔዎች በክልል $I$ ላይ ያለው የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) አጠቃላይ መፍትሔ ($\ref{eqn:general_sol}$) ውስጥ ባለው $y_h$ የማንኛውም ቋሚዎች $c_1$ እና $c_2$ ላይ ተገቢ እሴቶችን በመመደብ ሊገኙ ይችላሉ።</p></blockquote><h3 id="ማረጋገጫ-1">ማረጋገጫ</h3><p>$y^*$ በ$I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) አንድ መፍትሔ ይሁን፣ $x_0$ ደግሞ በክልል $I$ ውስጥ ያለ አንድ $x$ ይሁን። <a href="/am/posts/wronskian-existence-and-uniqueness-of-solutions/#የአጠቃላይ-መፍትሔ-መኖር">ቀጣይ ተለዋዋጭ ኮኤፊሺየንቶች ያሉት የሆሞጄንየስ ተራ ልዩነት ስሌት አጠቃላይ መፍትሔ መኖር ቲዎረም</a> መሠረት $y_h = c_1y_1 + c_2y_2$ አለ፣ እና በኋላ የምንማረው <strong>የመለኪያ ለውጥ ዘዴ(method of variation of parameters)</strong> በመጠቀም $y_p$ ደግሞ ስለሚኖር በክልል $I$ ላይ የስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) አጠቃላይ መፍትሔ ($\ref{eqn:general_sol}$) ይኖራል። አሁን ከዚህ በፊት በማረጋገጫው ያሳየነው ቲዎረም <a href="#በአል-ሆሞጄንየስ-ተራ-ልዩነት-ስሌት-መፍትሔዎችና-ከእሱ-ጋር-ተዛማጅ-በሆነው-ሆሞጄንየስ-ተራ-ልዩነት-ስሌት-መፍትሔዎች-መካከል-ያለ-ግንኙነት">1(b)</a> መሠረት $Y = y^* - y_p$ በክልል $I$ ላይ የሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) መፍትሔ ነው፣ እና በ$x_0$ ላይ</p>\[\begin{gather*} Y(x_0) = y^*(x_0) - y_p(x_0) \\ Y^{\prime}(x_0) = {y^*}^{\prime}(x_0) - y_p^{\prime}(x_0) \end{gather*}\]<p>ነው። <a href="/am/posts/wronskian-existence-and-uniqueness-of-solutions/#የመነሻ-እሴት-ችግር-መፍትሔ-መኖርና-አንድነት-ቲዎረም">የመነሻ እሴት ችግር መፍትሔ መኖርና አንድነት ቲዎረም</a> መሠረት በክልል $I$ ላይ ለእነዚህ መነሻ ሁኔታዎች $y_h$ ውስጥ ላሉት $c_1$, $c_2$ ተገቢ እሴቶችን በመመደብ የሚገኝ የሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:homogeneous_linear_ode}$) የተለየ መፍትሔ $Y$ ብቻውን ይኖራል። $y^* = Y + y_p$ ስለሆነ፣ የአል-ሆሞጄንየስ ተራ ልዩነት ስሌት ($\ref{eqn:nonhomogeneous_linear_ode}$) ማንኛውም የተለየ መፍትሔ $y^*$ ከአጠቃላይ መፍትሔው ($\ref{eqn:general_sol}$) ሊገኝ እንደሚችል አሳይተናል። $\blacksquare$</p>]]> </content> </entry> <entry><title xml:lang="am">The Wronskian, Existence and Uniqueness of Solutions</title><link href="https://www.yunseo.kim/am/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/wronskian-existence-and-uniqueness-of-solutions/" rel="alternate" type="text/html" hreflang="am" /><published>2025-04-06T00:00:00+09:00</published> <updated>2025-07-11T21:22:11+09:00</updated> <id>https://www.yunseo.kim/am/posts/wronskian-existence-and-uniqueness-of-solutions/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Differential Equation" /> <summary xml:lang="am">Explore the existence and uniqueness of solutions for second-order homogeneous linear ODEs with continuous variable coefficients. Learn to use the Wronskian to test for linear independence and see why these equations always have a general solution that encompasses all possible solutions.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>Explore the existence and uniqueness of solutions for second-order homogeneous linear ODEs with continuous variable coefficients. Learn to use the Wronskian to test for linear independence and see why these equations always have a general solution that encompasses all possible solutions.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><p>For a second-order homogeneous linear ordinary differential equation with continuous variable coefficients $p$ and $q$ on an interval $I$</p>\[y^{\prime\prime} + p(x)y^{\prime} + q(x)y = 0\]<p>and initial conditions</p>\[y(x_0)=K_0, \qquad y^{\prime}(x_0)=K_1\]<p>the following four theorems hold.</p><ol><li><strong>Existence and Uniqueness Theorem for Initial Value Problems</strong>: The initial value problem consisting of the given equation and initial conditions has a unique solution $y(x)$ on the interval $I$.<li><strong>Test for Linear Dependence/Independence using the Wronskian</strong>: For two solutions $y_1$ and $y_2$ of the equation, if there exists an $x_0$ in the interval $I$ where the <strong>Wronskian</strong> $W(y_1, y_2) = y_1y_2^{\prime} - y_2y_1^{\prime}$ is $0$, then the two solutions are linearly dependent. Furthermore, if there exists an $x_1$ in the interval $I$ where $W\neq 0$, then the two solutions are linearly independent.<li><strong>Existence of a General Solution</strong>: The given equation has a general solution on the interval $I$.<li><strong>Nonexistence of Singular Solutions</strong>: This general solution includes all solutions of the equation (i.e., no singular solutions exist).</ol></blockquote><h2 id="prerequisites">Prerequisites</h2><ul><li><a href="/am/posts/Solution-of-First-Order-Linear-ODE/">Solution of First-Order Linear ODEs</a><li><a href="/am/posts/homogeneous-linear-odes-of-second-order/">Homogeneous Linear ODEs of Second Order</a><li><a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">Homogeneous Linear ODEs with Constant Coefficients</a><li><a href="/am/posts/euler-cauchy-equation/">Euler-Cauchy Equation</a><li>Inverse Matrix, Singular Matrix, and Determinant</ul><h2 id="homogeneous-linear-odes-with-continuous-variable-coefficients">Homogeneous Linear ODEs with Continuous Variable Coefficients</h2><p>Previously, we examined the general solutions of <a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">Homogeneous Linear ODEs with Constant Coefficients</a> and the <a href="/am/posts/euler-cauchy-equation/">Euler-Cauchy Equation</a>. In this article, we extend the discussion to a more general case: a second-order homogeneous linear ordinary differential equation with arbitrary continuous <strong>variable coefficients</strong> $p$ and $q$.</p>\[y^{\prime\prime} + p(x)y^{\prime} + q(x)y = 0 \label{eqn:homogeneous_linear_ode_with_var_coefficients}\tag{1}\]<p>We will investigate the existence and form of the general solution for this equation. Additionally, we will explore the uniqueness of the solution to the <a href="/am/posts/homogeneous-linear-odes-of-second-order/#initial-value-problem-and-initial-conditions">Initial Value Problem</a> composed of the ODE ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) and the following two initial conditions:</p>\[y(x_0)=K_0, \qquad y^{\prime}(x_0)=K_1 \label{eqn:initial_conditions}\tag{2}\]<p>To state the conclusion upfront, the core of this discussion is that a <u>linear</u> ordinary differential equation with continuous coefficients does not have a <em>singular solution</em> (a solution that cannot be obtained from the general solution).</p><h2 id="existence-and-uniqueness-theorem-for-initial-value-problems">Existence and Uniqueness Theorem for Initial Value Problems</h2><blockquote class="prompt-info"><p><strong>Existence and Uniqueness Theorem for Initial Value Problems</strong><br /> If $p(x)$ and $q(x)$ are continuous functions on some open interval $I$, and $x_0$ is in $I$, then the initial value problem consisting of Eqs. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) and ($\ref{eqn:initial_conditions}$) has a unique solution $y(x)$ on the interval $I$.</p></blockquote><p>The proof of existence will not be covered here; we will only look at the proof of uniqueness. Proving uniqueness is typically simpler than proving existence.<br /> If you are not interested in the proof, you may skip this section and proceed to <a href="#linear-dependence-and-independence-of-solutions">Linear Dependence and Independence of Solutions</a>.</p><h3 id="proof-of-uniqueness">Proof of Uniqueness</h3><p>Let’s assume that the initial value problem consisting of the ODE ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) and initial conditions ($\ref{eqn:initial_conditions}$) has two solutions, $y_1(x)$ and $y_2(x)$, on the interval $I$. If we can show that their difference</p>\[y(x) = y_1(x) - y_2(x)\]<p>is identically zero on the interval $I$, this implies that $y_1 \equiv y_2$ on $I$, which means the solution is unique.</p><p>Since Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) is a homogeneous linear ODE, the linear combination $y$ of $y_1$ and $y_2$ is also a solution to the equation on $I$. Since $y_1$ and $y_2$ satisfy the same initial conditions ($\ref{eqn:initial_conditions}$), $y$ satisfies the conditions</p>\[\begin{align*} &amp; y(x_0) = y_1(x_0) - y_2(x_0) = 0, \\ &amp; y^{\prime}(x_0) = y_1^{\prime}(x_0) - y_2^{\prime}(x_0) = 0 \end{align*} \label{eqn:initial_conditions_*}\tag{3}\]<p>Now, consider the function</p>\[z(x) = y(x)^2 + y^{\prime}(x)^2\]<p>and its derivative</p>\[z^{\prime} = 2yy^{\prime} + 2y^{\prime}y^{\prime\prime}\]<p>From the ODE, we have</p>\[y^{\prime\prime} = -py^{\prime} - qy\]<p>Substituting this into the expression for $z^{\prime}$ gives</p>\[z^{\prime} = 2yy^{\prime} - 2p{y^{\prime}}^2 - 2qyy^{\prime} \label{eqn:z_prime}\tag{4}\]<p>Now, since $y$ and $y^{\prime}$ are real,</p>\[(y\pm y^{\prime})^2 = y^2 \pm 2yy^{\prime} + {y^{\prime}}^2 \geq 0\]<p>From this and the definition of $z$, we can derive two inequalities:</p>\[(a)\ 2yy^{\prime} \leq y^2 + {y^{\prime}}^2 = z, \qquad (b)\ 2yy^{\prime} \geq -(y^2 + {y^{\prime}}^2) = -z \label{eqn:inequalities}\tag{5}\]<table><tbody><tr><td>From these two inequalities, we know that $<td>2yy^{\prime}<td>\leq z$. Thus, for the last term in Eq. ($\ref{eqn:z_prime}$), the following inequality holds:</table>\[\pm2qyy^{\prime} \leq |\pm 2qyy^{\prime}| = |q||2yy^{\prime}| \leq |q|z.\]<table><tbody><tr><td>Using this result, along with $-p \leq<td>p<td>$, and applying inequality ($\ref{eqn:inequalities}$a) to the term $2yy^{\prime}$ in Eq. ($\ref{eqn:z_prime}$), we get</table>\[z^{\prime} \leq z + 2|p|{y^{\prime}}^2 + |q|z\]<p>Since ${y^{\prime}}^2 \leq y^2 + {y^{\prime}}^2 = z$, this leads to</p>\[z^{\prime} \leq (1 + 2|p| + |q|)z\]<table><tbody><tr><td>Letting the function in the parenthesis be $h = 1 + 2<td>p<td>+<td>q<td>$, we have</table>\[z^{\prime} \leq hz \quad \forall x \in I \label{eqn:inequality_6a}\tag{6a}\]<p>In the same way, from Eqs. ($\ref{eqn:z_prime}$) and ($\ref{eqn:inequalities}$), we get</p>\[\begin{align*} -z^{\prime} &amp;= -2yy^{\prime} + 2p{y^{\prime}}^2 + 2qyy^{\prime} \\ &amp;\leq z + 2|p|z + |q|z = hz \end{align*} \label{eqn:inequality_6b}\tag{6b}\]<p>These two inequalities, ($\ref{eqn:inequality_6a}$) and ($\ref{eqn:inequality_6b}$), are equivalent to the following inequalities:</p>\[z^{\prime} - hz \leq 0, \qquad z^{\prime} + hz \geq 0 \label{eqn:inequalities_7}\tag{7}\]<p>The <a href="/am/posts/Solution-of-First-Order-Linear-ODE/#nonhomogeneous-linear-ordinary-differential-equations">integrating factors</a> for the left-hand sides of these two expressions are</p>\[F_1 = e^{-\int h(x)\ dx} \qquad \text{and} \qquad F_2 = e^{\int h(x)\ dx}\]<p>Since $h$ is continuous, the indefinite integral $\int h(x)\ dx$ exists. As $F_1$ and $F_2$ are positive, from ($\ref{eqn:inequalities_7}$) we obtain</p>\[F_1(z^{\prime} - hz) = (F_1 z)^{\prime} \leq 0, \qquad F_2(z^{\prime} + hz) = (F_2 z)^{\prime} \geq 0\]<p>This means that on the interval $I$, $F_1 z$ is non-increasing and $F_2 z$ is non-decreasing. By Eq. ($\ref{eqn:initial_conditions_*}$), we have $z(x_0) = 0$, so</p>\[\begin{cases} \left(F_1 z \geq (F_1 z)_{x_0} = 0\right)\ \&amp; \ \left(F_2 z \leq (F_2 z)_{x_0} = 0\right) &amp; (x \leq x_0) \\ \left(F_1 z \leq (F_1 z)_{x_0} = 0\right)\ \&amp; \ \left(F_2 z \geq (F_2 z)_{x_0} = 0\right) &amp; (x \geq x_0) \end{cases}\]<p>Finally, dividing both sides of the inequalities by the positive functions $F_1$ and $F_2$, we can show the uniqueness of the solution as follows:</p>\[(z \leq 0) \ \&amp; \ (z \geq 0) \quad \forall x \in I\] \[z = y^2 + {y^{\prime}}^2 = 0 \quad \forall x \in I\] \[\therefore y \equiv y_1 - y_2 \equiv 0 \quad \forall x \in I. \ \blacksquare\]<h2 id="linear-dependence-and-independence-of-solutions">Linear Dependence and Independence of Solutions</h2><p>Let’s briefly recall what we covered in <a href="/am/posts/homogeneous-linear-odes-of-second-order/#basis-and-general-solution">Second-Order Homogeneous Linear ODEs</a>. The general solution on an open interval $I$ is constructed from a <strong>basis</strong> $y_1$, $y_2$ on $I$, which is a pair of linearly independent solutions. Here, $y_1$ and $y_2$ being <strong>linearly independent</strong> on an interval $I$ means that for all $x$ in the interval, the following holds:</p>\[k_1y_1(x) + k_2y_2(x) = 0 \Leftrightarrow k_1=0\text{ and }k_2=0 \label{eqn:linearly_independent}\tag{8}\]<p>If the above is not satisfied, and $k_1y_1(x) + k_2y_2(x) = 0$ holds for at least one non-zero $k_1$ or $k_2$, then $y_1$ and $y_2$ are <strong>linearly dependent</strong> on the interval $I$. In this case, for all $x$ in the interval $I$,</p>\[\text{(a) } y_1 = ky_2 \quad \text{or} \quad \text{(b) } y_2 = ly_1 \label{eqn:linearly_dependent}\tag{9}\]<p>which means $y_1$ and $y_2$ are proportional.</p><p>Now let’s look at the following test for linear independence/dependence of solutions.</p><blockquote class="prompt-info"><p><strong>Test for Linear Dependence/Independence using the Wronskian</strong><br /> <strong>i.</strong> If the ODE ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) has continuous coefficients $p(x)$ and $q(x)$ on an open interval $I$, then a necessary and sufficient condition for two solutions $y_1$ and $y_2$ of Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) to be linearly dependent on $I$ is that their <em>Wronski determinant</em>, or simply <strong>Wronskian</strong>, which is the following determinant,</p>\[W(y_1, y_2) = \begin{vmatrix} y_1 &amp; y_2 \\ y_1^{\prime} &amp; y_2^{\prime} \\ \end{vmatrix} = y_1y_2^{\prime} - y_2y_1^{\prime} \label{eqn:wronskian}\tag{10}\]<p>is zero at some $x_0$ in the interval $I$.</p>\[\exists x_0 \in I: W(x_0)=0 \iff y_1 \text{ and } y_2 \text{ are linearly dependent}\]<p><strong>ii.</strong> If $W=0$ at a point $x=x_0$ in the interval $I$, then $W=0$ for all $x$ in the interval $I$.</p>\[\exists x_0 \in I: W(x_0)=0 \implies \forall x \in I: W(x)=0\]<p>In other words, if there exists an $x_1$ in the interval $I$ such that $W\neq 0$, then $y_1$ and $y_2$ are linearly independent on that interval $I$.</p>\[\begin{align*} \exists x_1 \in I: W(x_1)\neq 0 &amp;\implies \forall x \in I: W(x)\neq 0 \\ &amp;\implies y_1 \text{ and } y_2 \text{ are linearly independent} \end{align*}\]</blockquote><blockquote class="prompt-tip"><p>The Wronskian was first introduced by the Polish mathematician Józef Maria Hoene-Wroński and was named after him posthumously in 11882 HE by the Scottish mathematician Sir Thomas Muir.</p></blockquote><h3 id="proof">Proof</h3><h4 id="i-a">i. (a)</h4><p>Let $y_1$ and $y_2$ be linearly dependent on the interval $I$. Then, either Eq. ($\ref{eqn:linearly_dependent}$a) or ($\ref{eqn:linearly_dependent}$b) holds on $I$. If Eq. ($\ref{eqn:linearly_dependent}$a) holds, then</p>\[W(y_1, y_2) = y_1y_2^{\prime} - y_2y_1^{\prime} = ky_2y_2^{\prime} - y_2(ky_2^{\prime}) = 0\]<p>Similarly, if Eq. ($\ref{eqn:linearly_dependent}$b) holds, then</p>\[W(y_1, y_2) = y_1y_2^{\prime} - y_2y_1^{\prime} = y_1(ly_1^{\prime}) - ly_1y_1^{\prime} = 0\]<p>Thus, we can confirm that the Wronskian $W(y_1, y_2)=0$ <u>for all $x$ in the interval $I$</u>.</p><h4 id="i-b">i. (b)</h4><p>Conversely, suppose that $W(y_1, y_2)=0$ for some $x = x_0$. We will show that $y_1$ and $y_2$ are linearly dependent on the interval $I$. Consider the system of linear equations for the unknowns $k_1$, $k_2$:</p>\[\begin{gather*} k_1y_1(x_0) + k_2y_2(x_0) = 0 \\ k_1y_1^{\prime}(x_0) + k_2y_2^{\prime}(x_0) = 0 \end{gather*} \label{eqn:linear_system}\tag{11}\]<p>This can be expressed in the form of a vector equation:</p>\[\left[\begin{matrix} y_1(x_0) &amp; y_2(x_0) \\ y_1^{\prime}(x_0) &amp; y_2^{\prime}(x_0) \end{matrix}\right] \left[\begin{matrix} k_1 \\ k_2 \end{matrix}\right] = 0 \label{eqn:vector_equation}\tag{12}\]<p>The coefficient matrix of this vector equation is</p>\[A = \left[\begin{matrix} y_1(x_0) &amp; y_2(x_0) \\ y_1^{\prime}(x_0) &amp; y_2^{\prime}(x_0) \end{matrix}\right]\]<p>and the determinant of this matrix is $W(y_1(x_0), y_2(x_0))$. Since $\det(A) = W=0$, $A$ is a <strong>singular matrix</strong> that does not have an <strong>inverse matrix</strong>. Therefore, the system of equations ($\ref{eqn:linear_system}$) has a non-trivial solution $(c_1, c_2)$ other than the zero vector $(0,0)$, where at least one of $k_1$ and $k_2$ is not zero. Now, let’s introduce the function</p>\[y(x) = c_1y_1(x) + c_2y_2(x)\]<p>Since Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) is homogeneous and linear, by the <a href="/am/posts/homogeneous-linear-odes-of-second-order/#superposition-principle">Superposition Principle</a>, this function is a solution of ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) on the interval $I$. From Eq. ($\ref{eqn:linear_system}$), we can see that this solution satisfies the initial conditions $y(x_0)=0$, $y^{\prime}(x_0)=0$.</p><p>Meanwhile, there exists a trivial solution $y^* \equiv 0$ that satisfies the same initial conditions $y^*(x_0)=0$, ${y^*}^{\prime}(x_0)=0$. Since the coefficients $p$ and $q$ of Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) are continuous, the uniqueness of the solution is guaranteed by the <a href="#existence-and-uniqueness-theorem-for-initial-value-problems">Existence and Uniqueness Theorem for Initial Value Problems</a>. Therefore, $y \equiv y^*$. That is, on the interval $I$,</p>\[c_1y_1 + c_2y_2 \equiv 0\]<p>Since at least one of $c_1$ and $c_2$ is not zero, this does not satisfy ($\ref{eqn:linearly_independent}$), which means that $y_1$ and $y_2$ are linearly dependent on the interval $I$.</p><h4 id="ii">ii.</h4><p>If $W(x_0)=0$ at some point $x_0$ in the interval $I$, then by <a href="#i-b">i.(b)</a>, $y_1$ and $y_2$ are linearly dependent on the interval $I$. Then, by <a href="#i-a">i.(a)</a>, $W\equiv 0$. Therefore, if there is even one point $x_1$ in the interval $I$ where $W(x_1)\neq 0$, then $y_1$ and $y_2$ are linearly independent. $\blacksquare$</p><h2 id="the-general-solution-includes-all-solutions">The General Solution Includes All Solutions</h2><h3 id="existence-of-a-general-solution">Existence of a General Solution</h3><blockquote class="prompt-info"><p>If $p(x)$ and $q(x)$ are continuous on an open interval $I$, then the equation ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) has a general solution on the interval $I$.</p></blockquote><h4 id="proof-1">Proof</h4><p>By the <a href="#existence-and-uniqueness-theorem-for-initial-value-problems">Existence and Uniqueness Theorem for Initial Value Problems</a>, the ODE ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) has a solution $y_1(x)$ on the interval $I$ that satisfies the initial conditions</p>\[y_1(x_0) = 1, \qquad y_1^{\prime}(x_0) = 0\]<p>and a solution $y_2(x)$ on the interval $I$ that satisfies the initial conditions</p>\[y_2(x_0) = 0, \qquad y_2^{\prime}(x_0) = 1\]<p>The Wronskian of these two solutions at $x=x_0$ has a non-zero value:</p>\[W(y_1(x_0), y_2(x_0)) = y_1(x_0)y_2^{\prime}(x_0) - y_2(x_0)y_1^{\prime}(x_0) = 1\cdot 1 - 0\cdot 0 = 1\]<p>Therefore, by the <a href="#linear-dependence-and-independence-of-solutions">Test for Linear Dependence/Independence using the Wronskian</a>, $y_1$ and $y_2$ are linearly independent on the interval $I$. Thus, these two solutions form a basis of solutions for Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) on the interval $I$, and a general solution $y = c_1y_1 + c_2y_2$ with arbitrary constants $c_1$, $c_2$ must exist on the interval $I$. $\blacksquare$</p><h3 id="nonexistence-of-singular-solutions">Nonexistence of Singular Solutions</h3><blockquote class="prompt-info"><p>If the ODE ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) has continuous coefficients $p(x)$ and $q(x)$ on some open interval $I$, then every solution $y=Y(x)$ of Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) on the interval $I$ is of the form</p>\[Y(x) = C_1y_1(x) + C_2y_2(x) \label{eqn:particular_solution}\tag{13}\]<p>where $y_1$, $y_2$ form a basis of solutions for Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) on the interval $I$, and $C_1$, $C_2$ are suitable constants.<br /> That is, Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) does not have a <strong>singular solution</strong>, which is a solution that cannot be obtained from the general solution.</p></blockquote><h4 id="proof-2">Proof</h4><p>Let $y=Y(x)$ be any solution of Eq. ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) on the interval $I$. Now, by the <a href="#existence-of-a-general-solution">Existence of a General Solution theorem</a>, the ODE ($\ref{eqn:homogeneous_linear_ode_with_var_coefficients}$) has a general solution on the interval $I$:</p>\[y(x) = c_1y_1(x) + c_2y_2(x) \label{eqn:general_solution}\tag{14}\]<p>Now we must show that for any $Y(x)$, there exist constants $c_1$, $c_2$ such that $y(x)=Y(x)$ on the interval $I$. Let’s first show that we can find values for $c_1$, $c_2$ such that for an arbitrary $x_0$ in $I$, we have $y(x_0)=Y(x_0)$ and $y^{\prime}(x_0)=Y^{\prime}(x_0)$. From Eq. ($\ref{eqn:general_solution}$), we get</p>\[\begin{gather*} \left[\begin{matrix} y_1(x_0) &amp; y_2(x_0) \\ y_1^{\prime}(x_0) &amp; y_2^{\prime}(x_0) \end{matrix}\right] \left[\begin{matrix} c_1 \\ c_2 \end{matrix}\right] = \left[\begin{matrix} Y(x_0) \\ Y^{\prime}(x_0) \end{matrix}\right] \end{gather*} \label{eqn:vector_equation_2}\tag{15}\]<p>Since $y_1$ and $y_2$ form a basis, the determinant of the coefficient matrix, which is the Wronskian $W(y_1(x_0), y_2(x_0))$, is non-zero. Therefore, Eq. ($\ref{eqn:vector_equation_2}$) can be solved for $c_1$ and $c_2$. Let the solution be $(c_1, c_2) = (C_1, C_2)$. Substituting this into Eq. ($\ref{eqn:general_solution}$) gives the following particular solution:</p>\[y^*(x) = C_1y_1(x) + C_2y_2(x).\]<p>Since $C_1$, $C_2$ are the solution to Eq. ($\ref{eqn:vector_equation_2}$),</p>\[y^*(x_0) = Y(x_0), \qquad {y^*}^{\prime}(x_0) = Y^{\prime}(x_0)\]<p>By the uniqueness part of the <a href="#existence-and-uniqueness-theorem-for-initial-value-problems">Existence and Uniqueness Theorem for Initial Value Problems</a>, we have $y^* \equiv Y$ for all $x$ in the interval $I$. $\blacksquare$</p>]]> </content> </entry> <entry><title xml:lang="am">የኦይለር-ኮሺ ስሌት</title><link href="https://www.yunseo.kim/am/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/euler-cauchy-equation/" rel="alternate" type="text/html" hreflang="am" /><published>2025-03-28T00:00:00+09:00</published> <updated>2025-03-28T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/euler-cauchy-equation/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Differential Equation" /> <summary xml:lang="am">በረዳት ስሌቱ ዲስክሪሚናንት ምልክት መሰረት፣ በእያንዳንዱ ሁኔታ የኦይለር-ኮሺ ስሌት አጠቃላይ መፍትሄ ምን አይነት ቅጽ እንደሚኖረው እንመለከታለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>በረዳት ስሌቱ ዲስክሪሚናንት ምልክት መሰረት፣ በእያንዳንዱ ሁኔታ የኦይለር-ኮሺ ስሌት አጠቃላይ መፍትሄ ምን አይነት ቅጽ እንደሚኖረው እንመለከታለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="ማጠቃለያ">ማጠቃለያ</h2><blockquote class="prompt-info"><ul><li>የኦይለር-ኮሺ ስሌት: $x^2y^{\prime\prime} + axy^{\prime} + by = 0$<li><strong>ረዳት ስሌት(auxiliary equation)</strong>: $m^2 + (a-1)m + b = 0$<li>በረዳት ስሌቱ ዲስክሪሚናንት $(1-a)^2 - 4b$ ምልክት መሰረት የአጠቃላይ መፍትሄውን ቅጽ ከታች እንደሚታየው በሦስት ሁኔታዎች መከፋፈል ይቻላል</ul><table><thead><tr><th style="text-align: center">ሁኔታ<th style="text-align: center">የረዳት ስሌቱ መፍትሄ<th style="text-align: center">የኦይለር-ኮሺ ስሌት መፍትሄ መሠረት<th style="text-align: center">የኦይለር-ኮሺ ስሌት አጠቃላይ መፍትሄ<tbody><tr><td style="text-align: center">I<td style="text-align: center">የተለያዩ ሁለት እውነተኛ ሥሮች<br />$m_1$, $m_2$<td style="text-align: center">$x^{m_1}$, $x^{m_2}$<td style="text-align: center">$y = c_1 x^{m_1} + c_2 x^{m_2}$<tr><td style="text-align: center">II<td style="text-align: center">ድርብ እውነተኛ ሥር<br /> $m = \cfrac{1-a}{2}$<td style="text-align: center">$x^{(1-a)/2}$, $x^{(1-a)/2}\ln{x}$<td style="text-align: center">$y = (c_1 + c_2 \ln x)x^m$<tr><td style="text-align: center">III<td style="text-align: center">የኮንጁጌት ኮምፕሌክስ ሥሮች<br /> $m_1 = \cfrac{1}{2}(1-a) + i\omega$, <br /> $m_2 = \cfrac{1}{2}(1-a) - i\omega$<td style="text-align: center">$x^{(1-a)/2}\cos{(\omega \ln{x})}$, <br /> $x^{(1-a)/2}\sin{(\omega \ln{x})}$<td style="text-align: center">$y = x^{(1-a)/2}[A\cos{(\omega \ln{x})} + B\sin{(\omega \ln{x})}]$</table></blockquote><h2 id="ቅድመ-ሁኔታዎች">ቅድመ ሁኔታዎች</h2><ul><li><a href="/am/posts/homogeneous-linear-odes-of-second-order/">የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች (Homogeneous Linear ODEs of Second Order)</a><li><a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">ቋሚ ኮኤፊሺዎንቶች ያላቸው የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች</a><li>የኦይለር ቀመር</ul><h2 id="ረዳት-ስሌት-auxiliary-equation">ረዳት ስሌት (auxiliary equation)</h2><p><strong>የኦይለር-ኮሺ ስሌት(Euler-Cauchy equation)</strong> የተሰጡ ቋሚዎች $a$ እና $b$፣ እንዲሁም ያልታወቀ ተግባር $y(x)$ ያለው</p>\[x^2y^{\prime\prime} + axy^{\prime} + by = 0 \label{eqn:euler_cauchy_eqn}\tag{1}\]<p>ቅጽ ያለው ተራ ልዩነት ስሌት ነው። በስሌት ($\ref{eqn:euler_cauchy_eqn}$) ውስጥ</p>\[y=x^m, \qquad y^{\prime}=mx^{m-1}, \qquad y^{\prime\prime}=m(m-1)x^{m-2}\]<p>ካስቀመጥን</p>\[x^2m(m-1)x^{m-2} + axmx^{m-1} + bx^m = 0,\]<p>ማለትም</p>\[[m(m-1) + am + b]x^m = 0\]<p>እናገኛለን። ከዚህም ረዳት ስሌቱን</p>\[m^2 + (a-1)m + b = 0 \label{eqn:auxiliary_eqn}\tag{2}\]<p>እናገኛለን፤ $y=x^m$ የኦይለር-ኮሺ ስሌት ($\ref{eqn:euler_cauchy_eqn}$) መፍትሄ ለመሆን ያለው አስፈላጊና በቂ ሁኔታ $m$ የረዳት ስሌቱ ($\ref{eqn:auxiliary_eqn}$) መፍትሄ መሆኑ ነው።</p><p>የካሬ ስሌቱን ($\ref{eqn:auxiliary_eqn}$) መፍትሄዎች ካገኘን</p>\[\begin{align*} m_1 &amp;= \frac{1}{2}\left[(1-a) + \sqrt{(1-a)^2 - 4b} \right], \\ m_2 &amp;= \frac{1}{2}\left[(1-a) - \sqrt{(1-a)^2 - 4b} \right] \end{align*}\label{eqn:m1_and_m2}\tag{3}\]<p>ሲሆኑ፣ ከዚህም ሁለቱ ተግባሮች</p>\[y_1 = x^{m_1}, \quad y_2 = x^{m_2}\]<p>የስሌቱ ($\ref{eqn:euler_cauchy_eqn}$) መፍትሄዎች ይሆናሉ።</p><p><a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">ቋሚ ኮኤፊሺዎንቶች ያላቸው የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች</a> ውስጥ እንዳየነው በተመሳሳይ፣ በረዳት ስሌቱ ($\ref{eqn:auxiliary_eqn}$) ዲስክሪሚናንት $(1-a)^2 - 4b$ ምልክት መሰረት ሁኔታዎቹን በሦስት ማካፈል ይቻላል።</p><ul><li>$(1-a)^2 - 4b &gt; 0$: የተለያዩ ሁለት እውነተኛ ሥሮች<li>$(1-a)^2 - 4b = 0$: ድርብ እውነተኛ ሥር<li>$(1-a)^2 - 4b &lt; 0$: የኮንጁጌት ኮምፕሌክስ ሥሮች</ul><h2 id="በረዳት-ስሌቱ-ዲስክሪሚናንት-ምልክት-መሰረት-የአጠቃላይ-መፍትሄ-ቅጽ">በረዳት ስሌቱ ዲስክሪሚናንት ምልክት መሰረት የአጠቃላይ መፍትሄ ቅጽ</h2><h3 id="i-የተለያዩ-ሁለት-እውነተኛ-ሥሮች-m_1-እና-m_2">I. የተለያዩ ሁለት እውነተኛ ሥሮች $m_1$ እና $m_2$</h3><p>በዚህ ሁኔታ፣ በማንኛውም ክፍት ክልል ላይ የስሌቱ ($\ref{eqn:euler_cauchy_eqn}$) መፍትሄ መሠረት</p>\[y_1 = x^{m_1}, \quad y_2 = x^{m_2}\]<p>ሲሆን፣ ይህን የሚያመለክተው አጠቃላይ መፍትሄ</p>\[y = c_1 x^{m_1} + c_2 x^{m_2} \label{eqn:general_sol_1}\tag{4}\]<p>ነው።</p><h3 id="ii-ድርብ-እውነተኛ-ሥር-m--cfrac1-a2">II. ድርብ እውነተኛ ሥር $m = \cfrac{1-a}{2}$</h3><p>$(1-a)^2 - 4b = 0$፣ ማለትም $b=\cfrac{(1-a)^2}{4}$ ከሆነ የካሬ ስሌቱ ($\ref{eqn:auxiliary_eqn}$) አንድ ብቻ መፍትሄ $m = m_1 = m_2 = \cfrac{1-a}{2}$ ይኖረዋል፤ ስለዚህም ከዚህ የምናገኘው $y = x^m$ ቅጽ ያለው አንድ መፍትሄ</p>\[y_1 = x^{(1-a)/2}\]<p>ሲሆን፣ የኦይለር-ኮሺ ስሌቱ ($\ref{eqn:euler_cauchy_eqn}$)</p>\[y^{\prime\prime} + \frac{a}{x}y^{\prime} + \frac{(1-a)^2}{4x^2}y = 0 \label{eqn:standard_form}\tag{5}\]<p>ቅጽ ይኖረዋል። አሁን ከዚህ ጋር መስመራዊ ገለልተኛ የሆነ ሌላ መፍትሄ $y_2$ን <a href="/am/posts/homogeneous-linear-odes-of-second-order/#የደረጃ-መቀነስ-reduction-of-order">የደረጃ መቀነስ</a> በመጠቀም እንፈልግ።</p><p>የምንፈልገውን ሁለተኛ መፍትሄ $y_2=uy_1$ ብለን ካስቀመጥን</p>\[u = \int U, \qquad U = \frac{1}{y_1^2}\exp\left(-\int \frac{a}{x}\ dx \right)\]<p>እናገኛለን።</p><p>$\exp \left(-\int \cfrac{a}{x}\ dx \right) = \exp (-a\ln x) = \exp(\ln{x^{-a}}) = x^{-a}$ ስለሆነ፣</p>\[U = \frac{x^{-a}}{y_1^2} = \frac{x^{-a}}{x^{(1-a)}} = \frac{1}{x}\]<p>ይሆናል፣ እና ካካተትን $u = \ln x$ እናገኛለን።</p><p>ስለዚህ $y_2 = uy_1 = y_1 \ln x$ ሲሆን፣ $y_1$ እና $y_2$ ጥምርታቸው ቋሚ ስላልሆነ መስመራዊ ገለልተኛ ናቸው። ከመሠረቱ $y_1$ እና $y_2$ ጋር የሚዛመደው አጠቃላይ መፍትሄ</p>\[y = (c_1 + c_2 \ln x)x^m \label{eqn:general_sol_2}\tag{6}\]<p>ነው።</p><h3 id="iii-የኮንጁጌት-ኮምፕሌክስ-ሥሮች">III. የኮንጁጌት ኮምፕሌክስ ሥሮች</h3><p>በዚህ ሁኔታ የረዳት ስሌቱ ($\ref{eqn:auxiliary_eqn}$) መፍትሄዎች $m = \cfrac{1}{2}(1-a) \pm i\sqrt{b - \frac{1}{4}(1-a)^2}$ ይሆናሉ፣ እነዚህን የሚዛመዱ የስሌቱ ($\ref{eqn:euler_cauchy_eqn}$) ሁለት ኮምፕሌክስ መፍትሄዎች ደግሞ $x=e^{\ln x}$ መሆኑን በመጠቀም እንደሚከተለው ልንጽፋቸው እንችላለን።</p>\[\begin{align*} x^{m_1} &amp;= x^{(1-a)/2 + i\sqrt{b - \frac{1}{4}(1-a)^2}} \\ &amp;= x^{(1-a)/2}(e^{\ln x})^{i\sqrt{b - \frac{1}{4}(1-a)^2}} \\ &amp;= x^{(1-a)/2}e^{i(\sqrt{b - \frac{1}{4}(1-a)^2}\ln x)}, \\ x^{m_2} &amp;= x^{(1-a)/2 - i\sqrt{b - \frac{1}{4}(1-a)^2}} \\ &amp;= x^{(1-a)/2}(e^{\ln x})^{-i\sqrt{b - \frac{1}{4}(1-a)^2}} \\ &amp;= x^{(1-a)/2}e^{i(-\sqrt{b - \frac{1}{4}(1-a)^2}\ln x)}. \end{align*} \tag{7}\]<p>$t=\sqrt{b - \frac{1}{4}(1-a)^2}\ln x$ ብለን ካስቀመጥን እና የኦይለር ቀመር $e^{it} = \cos{t} + i\sin{t}$ን ከተጠቀምን</p>\[\begin{align*} x^{m_1} &amp;= x^{(1-a)/2}\left[\cos\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) + i\sin\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) \right], \\ x^{m_2} &amp;= x^{(1-a)/2}\left[\cos\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) - i\sin\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) \right] \end{align*} \tag{8}\]<p>እንደሚሆኑ እናውቃለን፣ ከዚህም የሚከተሉትን ሁለት እውነተኛ መፍትሄዎች</p>\[\begin{align*} \frac{x^{m_1} + x^{m_2}}{2} &amp;= x^{(1-a)/2}\cos\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right), \\ \frac{x^{m_1} - x^{m_2}}{2i} &amp;= x^{(1-a)/2}\sin\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) \end{align*} \tag{9}\]<p>እናገኛለን።</p><p>እነዚህ ሁለት መፍትሄዎች ጥምርታቸው $\cos\left(\sqrt{b - \frac{1}{4}(1-a)^2}\ln x \right)$ ቋሚ ስላልሆነ፣ ከላይ ያሉት ሁለቱ መፍትሄዎች መስመራዊ ገለልተኛ ናቸው፣ ስለዚህ <a href="/am/posts/homogeneous-linear-odes-of-second-order/#የልዕለት-መርህ">የልዕለት መርህ</a> መሰረት የኦይለር-ኮሺ ስሌት ($\ref{eqn:euler_cauchy_eqn}$) መሠረት ይፈጥራሉ። ከዚህም የሚከተለውን እውነተኛ አጠቃላይ መፍትሄ እናገኛለን።</p>\[y = x^{(1-a)/2} \left[ A\cos\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) + B\sin\left(\sqrt{b - \tfrac{1}{4}(1-a)^2}\ln x \right) \right]. \label{eqn:general_sol_3}\tag{10}\]<p>ሆኖም፣ በኦይለር-ኮሺ ስሌት ውስጥ ረዳት ስሌቱ የኮንጁጌት ኮምፕሌክስ ሥሮች ያሉበት ሁኔታ በተግባር ያለው አስፈላጊነት እጅግ አይበዛም።</p><h2 id="ወደ-ቋሚ-ኮኤፊሺዎንቶች-ያሉት-የ2ኛ-ደረጃ-አንድ-ዓይነት-መስመራዊ-ተራ-ልዩነት-ስሌቶች-መቀየር">ወደ ቋሚ ኮኤፊሺዎንቶች ያሉት የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች መቀየር</h2><p>የኦይለር-ኮሺ ስሌት በተለዋዋጭ መተካት <a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">ቋሚ ኮኤፊሺዎንቶች ያላቸው የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች</a> ወደሚሆኑት ሊቀየር ይችላል።</p><p>$x = e^t$ ብለን ከተካነ</p>\[\frac{d}{dx} = \frac{1}{x}\frac{d}{dt}, \quad \frac{d^2}{dx^2} = \frac{1}{x^2}\left(\frac{d^2}{dt^2} - \frac{d}{dt} \right)\]<p>ይሆናል፣ ስለዚህ የኦይለር-ኮሺ ስሌቱ ($\ref{eqn:euler_cauchy_eqn}$) እንደሚከተለው በ $t$ ላይ ያለ ቋሚ ኮኤፊሺዎንት አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌት ይሆናል።</p>\[y^{\prime\prime}(t) + (a-1)y^{\prime}(t) + by(t) = 0. \label{eqn:substituted}\tag{11}\]<p>ስሌቱን ($\ref{eqn:substituted}$) በ<a href="/am/posts/homogeneous-linear-odes-with-constant-coefficients/">ቋሚ ኮኤፊሺዎንቶች ያላቸው የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች</a> የመፍትሄ ዘዴ በመተግበር በ$t$ ላይ ከፈታነው በኋላ፣ እንዲሁ ያገኘነውን መፍትሄ $t = \ln{x}$ መሆኑን በመጠቀም እንደገና ወደ $x$ ላይ ያለ መፍትሄ ከቀየርነው <a href="#በረዳት-ስሌቱ-ዲስክሪሚናንት-ምልክት-መሰረት-የአጠቃላይ-መፍትሄ-ቅጽ">ከዚህ በፊት እንዳየነው ተመሳሳይ ውጤት</a> እናገኛለን።</p>]]> </content> </entry> <entry><title xml:lang="am">የተከታታይ ድምር መቀራረብ/መበተን ፈተናዎች</title><link href="https://www.yunseo.kim/am/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/testing-for-convergence-or-divergence-of-a-series/" rel="alternate" type="text/html" hreflang="am" /><published>2025-03-18T00:00:00+09:00</published> <updated>2025-03-18T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/testing-for-convergence-or-divergence-of-a-series/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Calculus" /> <summary xml:lang="am">የተከታታይ ድምር መቀራረብን ወይም መበተንን ለመወሰን የሚያገለግሉ ዋና ዋና ዘዴዎችን በአንድ ላይ እንመለከታለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>የተከታታይ ድምር መቀራረብን ወይም መበተንን ለመወሰን የሚያገለግሉ ዋና ዋና ዘዴዎችን በአንድ ላይ እንመለከታለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><ul><li><strong>የአጠቃላይ አባል ፈተና($n$th-term test for divergence)</strong>: $\lim_{n\to\infty} a_n \neq 0 \Rightarrow \text{ተከታታይ ድምር }\sum a_n \text{ ይበተናል}$<li><strong>የጂኦሜትሪክ ተከታታይ ድምር መቀራረብ/መበተን</strong>: ጂኦሜትሪክ ተከታታይ ድምር(geometric series) $\sum ar^{n-1}$ ከሆነ<ul><li>$|r| &lt; 1$ ከሆነ ይቀራረባል<li>$|r| \geq 1$ ከሆነ ይበተናል</ul><li><strong>የ$p$-ተከታታይ ድምር መቀራረብ/መበተን</strong>: $p$-ተከታታይ ድምር($p$-series) $\sum \cfrac{1}{n^p}$ ከሆነ<ul><li>$p&gt;1$ ከሆነ ይቀራረባል<li>$p\leq 1$ ከሆነ ይበተናል</ul><li><strong>የንጽጽር ፈተና(Comparison Test)</strong>: $0 \leq a_n \leq b_n$ ሲሆን,<ul><li>$\sum b_n &lt; \infty \ \Rightarrow \ \sum a_n &lt; \infty$<li>$\sum a_n = \infty \ \Rightarrow \ \sum b_n = \infty$</ul><li><strong>የገደብ ንጽጽር ፈተና(Limit Comparison Test)</strong>: ከሆነ $\lim_{n\to\infty} \frac{a_n}{b_n} = c \text{ (}c\text{ ውሱን አዎንታዊ ቁጥር ነው)}$ ሁለቱም ተከታታይ ድምሮች $\sum a_n$ እና $\sum b_n$ ወይ ሁለቱም ይቀራረባሉ ወይም ሁለቱም ይበተናሉ<li>ለአዎንታዊ አባላት ተከታታይ ድምር $\sum a_n$ እና አዎንታዊ ቁጥር $\epsilon &lt; 1$<ul><li>ለሁሉም $n$ ላይ $\sqrt[n]{a_n}&lt; 1-\epsilon$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>ለሁሉም $n$ ላይ $\sqrt[n]{a_n}&gt; 1+\epsilon$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይበተናል</ul><li><strong>የሥር ፈተና(Root Test)</strong>: በአዎንታዊ አባላት ተከታታይ ድምር $\sum a_n$ ውስጥ የገደብ እሴት $\lim_{n\to\infty} \sqrt[n]{a_n} =: r$ ካለ,<ul><li>$r&lt;1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>$r&gt;1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይበተናል</ul><li><strong>የጥምርታ ፈተና(Ratio Test)</strong>: ለአዎንታዊ ተከታታይ $(a_n)$ እና $0 &lt; r &lt; 1$<ul><li>ለሁሉም $n$ ላይ $a_{n+1}/a_n \leq r$ ከሆነ, ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>ለሁሉም $n$ ላይ $a_{n+1}/a_n \geq 1$ ከሆነ, ተከታታይ ድምር $\sum a_n$ ይበተናል</ul><li>በአዎንታዊ ተከታታይ $(a_n)$ ውስጥ የገደብ እሴት $\rho := \lim_{n\to\infty} \cfrac{a_{n+1}}{a_n}$ እንዳለ ካሰብን,<ul><li>$\rho &lt; 1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>$\rho &gt; 1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይበተናል</ul><li><strong>የኢንተግራል ፈተና(Integral Test)</strong>: ቀጣይ ተግባር $f: \left[1,\infty \right) \rightarrow \mathbb{R}$ እየቀነሰ የሚሄድ ተግባር እና ሁልጊዜ $f(x)&gt;0$ ሲሆን, ተከታታይ ድምር $\sum f(n)$ እንዲቀራረብ የሚያስፈልገውና የሚበቃው ሁኔታ ኢንተግራሉ $\int_1^\infty f(x)\ dx := \lim_{b\to\infty} \int_1^b f(x)\ dx$ መቀራረቡ ነው<li><strong>የተለዋዋጭ ምልክት ተከታታይ ድምር ፈተና(Alternating Series Test)</strong>: የሚከተሉት ሁኔታዎች ከተሟሉ ተለዋዋጭ ምልክት ተከታታይ ድምር $\sum a_n$ ይቀራረባል<ol><li>ለሁሉም $n$ ላይ $a_n$ እና $a_{n+1}$ ምልክታቸው ይለያያል<li>ለሁሉም $n$ ላይ $|a_n| \geq |a_{n+1}|$<li>$\lim_{n\to\infty} a_n = 0$</ol><li>በፍጹም የሚቀራረብ ተከታታይ ድምር ይቀራረባል። ተገላቢጦሹ ግን አይሰራም።</ul></blockquote><h2 id="prerequisites">Prerequisites</h2><ul><li><a href="/am/posts/sequences-and-series/">ተከታታዮችና ተከታታይ ድምሮች</a></ul><h2 id="መግቢያ">መግቢያ</h2><p>ቀደም ሲል <a href="/am/posts/sequences-and-series/#ተከታታይ-ድምር-መቀራረብና-መበተን">ተከታታዮችና ተከታታይ ድምሮች</a> በሚለው ጽሑፍ ውስጥ የተከታታይ ድምር መቀራረብና መበተን ትርጉም ተመልክተናል። በዚህ ጽሑፍ ደግሞ የተከታታይ ድምር መቀራረብ/መበተንን ለመወሰን ሊጠቅሙ የሚችሉ የተለያዩ ዘዴዎችን እናጠቃልላለን። በአጠቃላይ የተከታታይ ድምር መቀራረብ/መበተንን መፈተን የተከታታይ ድምሩን ጠቅላላ ድምር በትክክል ከማግኘት ይልቅ እጅግ ቀላል ነው።</p><h2 id="የአጠቃላይ-አባል-ፈተና">የአጠቃላይ አባል ፈተና</h2><p>ለተከታታይ ድምር $\sum a_n$፣ $a_n$-ን የዚያ ተከታታይ ድምር <strong>አጠቃላይ አባል</strong> ብለን እንጠራዋለን።</p><p>በሚከተለው መረጃ መሰረት አንዳንድ ተከታታይ ድምሮች በግልጽ ሁኔታ እንደሚበተኑ በቀላሉ ማወቅ ይቻላል፤ ስለዚህ የአንድ ተከታታይ ድምር መቀራረብ/መበተን ሲፈተን በመጀመሪያ ይህን መመርመር ጊዜ እንዳይባክን የሚረዳ ጥሩ ዘዴ ነው።</p><blockquote class="prompt-info"><p><strong>የአጠቃላይ አባል ፈተና($n$th-term test for divergence)</strong><br /> ተከታታይ ድምር $\sum a_n$ የሚቀራረብ ከሆነ,</p>\[\lim_{n\to\infty} a_n=0\]<p>ይሆናል። ማለትም,</p>\[\lim_{n\to\infty} a_n \neq 0 \Rightarrow \text{ተከታታይ ድምር }\sum a_n \text{ ይበተናል}\]<p>ነው።</p></blockquote><h3 id="ማረጋገጫ">ማረጋገጫ</h3><p>የሚቀራረብ ማንኛውንም ተከታታይ ድምር $\sum a_n$ ጠቅላላ ድምሩን $l$ እንበል፤ እስከ መጀመሪያው $n$ አባል ድረስ ያለውን ከፊል ድምርም</p>\[s_n := a_1 + a_2 + \cdots + a_n\]<p>ብለን እንውሰድ፤ ከዚያ</p>\[\forall \epsilon &gt; 0,\, \exists N \in \mathbb{N}\ (n &gt; N \Rightarrow |s_n - l| &lt; \epsilon).\]<p>ስለዚህ በበቂ ሁኔታ ትልቅ($&gt;N$) $n$ ላይ</p>\[|a_n| = |s_n - s_{n-1}| = |(s_n - l) - (s_{n-1} - l)| \leq |s_n - l| + |s_{n-1} - l| \leq \epsilon + \epsilon = 2\epsilon\]<p>ይሆናል፤ ስለዚህ ከተከታታይ መቀራረብ ትርጉም ይመነጫል የሚለው</p>\[\lim_{n\to\infty} |a_n| = 0. \quad \blacksquare\]<h3 id="ማስጠንቀቂያ">ማስጠንቀቂያ</h3><p>የዚህ መረጃ ተገላቢጦሽ በአጠቃላይ እውነት አይደለም። ይህን የሚያሳይ የተለመደ ምሳሌ <strong>ሃርሞኒክ ተከታታይ ድምር(harmonic series)</strong> ነው።</p><p>ሃርሞኒክ ተከታታይ ድምር የእያንዳንዱ አባል <strong>የአሪትሜቲክ ተከታታይ</strong> ተገላቢጦሽ በሆነ ተከታታይ፣ ማለትም <strong>ሃርሞኒክ ተከታታይ(harmonic sequence)</strong> የሚገኝ ተከታታይ ድምር ነው። የታወቀው ሃርሞኒክ ተከታታይ ድምር</p>\[H_n := 1 + \frac{1}{2} + \cdots + \frac{1}{n} \quad (n=1,2,3,\dots)\]<p>ነው። ይህ ተከታታይ ድምር እንደሚበተን እንዲህ ማሳየት ይቻላል።</p>\[\begin{align*} \lim_{n\to\infty} H_n &amp;= 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \frac{1}{5} + \frac{1}{6} + \frac{1}{7} + \frac{1}{8} + \frac{1}{9} + \cdots + \frac{1}{16} + \cdots \\ &amp;&gt; 1 + \frac{1}{2} + \frac{1}{4} + \frac{1}{4} + \frac{1}{8} + \frac{1}{8} + \frac{1}{8} + \frac{1}{8} + \frac{1}{16} + \cdots + \frac{1}{16} + \cdots \\ &amp;= 1 + \frac{1}{2} \qquad\, + \frac{1}{2} \qquad\qquad\qquad\ \ + \frac{1}{2} \qquad\qquad\quad + \frac{1}{2} + \cdots \\ &amp;= \infty. \end{align*}\]<p>እንዲህ ሆኖ ተከታታይ ድምር $H_n$ ቢበተንም፣ አጠቃላይ አባሉ $1/n$ ወደ $0$ እንደሚቀራረብ እናውቃለን።</p><blockquote class="prompt-danger"><p>$\lim_{n\to\infty} a_n \neq 0$ ከሆነ ተከታታይ ድምር $\sum a_n$ ግዴታ ይበተናል፤ ነገር ግን $\lim_{n\to\infty} a_n = 0$ ብሎ ብቻ ተከታታይ ድምር $\sum a_n$ ይቀራረባል ብሎ ማሰብ አደገኛ ነው፤ በዚህ ሁኔታ ሌሎች ዘዴዎችን ተጠቅመን መቀራረብ/መበተንን መወሰን ያስፈልጋል።</p></blockquote><h2 id="ጂኦሜትሪክ-ተከታታይ-ድምር">ጂኦሜትሪክ ተከታታይ ድምር</h2><p>የመጀመሪያ አባሉ 1 እና <strong>የጋራ ጥምርታ</strong>ው $r$ የሆነ ጂኦሜትሪክ ተከታታይ የሚያመነጨው <strong>ጂኦሜትሪክ ተከታታይ ድምር(geometric series)</strong></p>\[1 + r + r^2 + r^3 + \cdots \label{eqn:geometric_series}\tag{5}\]<p><u>ከሁሉም በላይ አስፈላጊና መሠረታዊ ተከታታይ ድምሮች አንዱ</u> ነው። በዚህ ጊዜ እኩልነቱ</p>\[(1-r)(1+r+\cdots + r^{n-1}) = 1 - r^n\]<p>ስለሆነ</p>\[1 + r + \cdots + r^{n-1} = \frac{1-r^n}{1-r} = \frac{1}{1-r} - \frac{r^n}{1-r} \qquad (r \neq 1) \label{eqn:sum_of_geometric_series}\tag{6}\]<p>እናገኛለን። በሌላ በኩል</p>\[\lim_{n\to\infty} r^n = 0 \quad \Leftrightarrow \quad |r| &lt; 1\]<p>ስለሆነ፣ ጂኦሜትሪክ ተከታታይ ድምር ($\ref{eqn:geometric_series}$) እንዲቀራረብ የሚያስፈልገውና የሚበቃው ሁኔታ $|r| &lt; 1$ መሆኑን እናውቃለን።</p><blockquote class="prompt-info"><p><strong>የጂኦሜትሪክ ተከታታይ ድምር መቀራረብ/መበተን</strong><br /> ጂኦሜትሪክ ተከታታይ ድምር $\sum ar^{n-1}$ ከሆነ</p><ul><li>$|r| &lt; 1$ ከሆነ ይቀራረባል<li>$|r| \geq 1$ ከሆነ ይበተናል</ul></blockquote><p>ከዚህም</p>\[1 + r + r^2 + r^3 + \cdots = \frac{1}{1-r} \qquad (|r| &lt; 1) \label{eqn:sum_of_inf_geometric_series}\tag{7}\]<p>እናገኛለን።</p><h3 id="ጂኦሜትሪክ-ተከታታይ-ድምር-እና-ግምታዊ-እሴቶች">ጂኦሜትሪክ ተከታታይ ድምር እና ግምታዊ እሴቶች</h3><p>መለያ እኩልነቱ ($\ref{eqn:sum_of_geometric_series}$) በ$|r| &lt; 1$ ጊዜ $\cfrac{1}{1-r}$ የግምታዊ እሴት ለማግኘት ጠቃሚ ነው።</p><p>በዚህ ስሌት ውስጥ $r=-\epsilon$, $n=2$ ብለን ብንተካ,</p>\[\frac{1}{1+\epsilon} - (1 - \epsilon) = \frac{\epsilon^2}{1 + \epsilon}\]<p>እናገኛለን። ስለዚህ $0 &lt; \epsilon &lt; 1$ ከሆነ</p>\[0 &lt; \frac{1}{1 + \epsilon} - (1 - \epsilon) &lt; \epsilon^2\]<p>እና</p>\[\frac{1}{1 + \epsilon} \approx (1 - \epsilon) \pm \epsilon^2 \qquad (0 &lt; \epsilon &lt; 1)\]<p>እንዲሆን እናገኛለን። ከዚህ በመነሳት፣ በበቂ ሁኔታ ትንሽ ለሆነ አዎንታዊ $\epsilon$ ላይ $\cfrac{1}{1 + \epsilon}$ በ $1 - \epsilon$ መግምት እንደሚቻል እናውቃለን።</p><h2 id="የp-ተከታታይ-ድምር-ፈተና-p-series-test">የ$p$-ተከታታይ ድምር ፈተና ($p$-Series Test)</h2><p>ለአዎንታዊ እውነተኛ ቁጥር $p$፣ የሚከተለውን ቅርጽ ያለው ተከታታይ ድምር <strong>$p$-ተከታታይ ድምር</strong> ይባላል።</p>\[\sum_{n=1}^{\infty} \frac{1}{n^p}\]<blockquote class="prompt-info"><p><strong>የ$p$-ተከታታይ ድምር መቀራረብ/መበተን</strong><br /> $p$-ተከታታይ ድምር $\sum \cfrac{1}{n^p}$ ከሆነ</p><ul><li>$p&gt;1$ ከሆነ ይቀራረባል<li>$p\leq 1$ ከሆነ ይበተናል</ul></blockquote><p>በ$p$-ተከታታይ ድምር ውስጥ $p=1$ ከሆነ ሃርሞኒክ ተከታታይ ድምር ይሆናል፣ እሱም እንደሚበተን ከዚህ ቀደም አይተናል።<br /> $p=2$ በሚሆንበት ጊዜ ያለው $p$-ተከታታይ ድምር፣ ማለትም $\sum \cfrac{1}{n^2}$ ዋጋ ማግኘት ችግኝ፣ ይህ ተከታታይ ድምር እንደሚቀራረብ መጀመሪያ ያሳየው እና ለብዙ ትውልዶች ብዙ ታዋቂ የሂሳብ ሰዎችን ያፈራ ቤተሰብ መኖሪያ ቦታ ስም ተከትሎ “የባዝል(Basel) ችግኝ” ተብሎ ይጠራል። የዚህ ችግኝ መልስ $\cfrac{\pi^2}{6}$ መሆኑ ይታወቃል።</p><p>ከዚያም በላይ፣ በአጠቃላይ $p$-ተከታታይ ድምር ውስጥ $p&gt;1$ የሆነውን <strong>ዜታ ፋንክሽን(zeta function)</strong> ይላሉ። ይህ ሌዎንሃርድ ኦይለር(Leonhard Euler) በ<a href="https://en.wikipedia.org/wiki/Holocene_calendar">የሆሎሲን ዘመን</a> 11740 ዓመት ያስተዋወቀውና ከዚያ በኋላ በሪማን የተሰየመ ከልዩ ፋንክሽኖች አንዱ ሲሆን,</p>\[\zeta(s) := \sum_{n=1}^{\infty} \frac{1}{n^s} \qquad (s&gt;1)\]<p>ብለን እንገልጻዋለን።</p><p>ይህ ከዚህ ጽሑፍ ዋና ርዕስ ጥቂት ቢርቅም፣ እውነቱን ከተናገርኩ እኔ የምህንድስና ተማሪ እንጂ የሂሳብ ሰው ስላልሆንኩ በደንብ አላውቀውም እና እዚህ አልመለከተውም፤ ነገር ግን ሌዎንሃርድ ኦይለር(Leonhard Euler) ዜታ ፋንክሽኑ በ<strong>ኦይለር ምርት(Euler Product)</strong> ተብሎ በሚጠራ የጠቅላላ ቁጥሮች(prime number) የማይጨረስ ምርት ቅርጽ ሊገለጽ እንደሚችል አሳይቶ ነበር፤ ከዚያ በኋላም ዜታ ፋንክሽኑ በአናሌቲክ ቁጥር ንድፈ ሐሳብ ስር ባሉ ብዙ መስኮች ውስጥ ማዕከላዊ ቦታ ይይዛል። የዜታ ፋንክሽኑን የግልጽ ቁጥሮች መግለጫ ወደ ውስብስብ ቁጥሮች የሚያራዝመው <strong>ሪማን ዜታ ፋንክሽን(Riemann zeta function)</strong> እና ከእሱ ጋር የተያያዘው አስፈላጊ ያልተፈታ ችግኝ <strong>ሪማን ግምት(Riemann hypothesis)</strong> ከእነዚህ መካከል ናቸው።</p><p>ወደ መጀመሪያው ርዕስ ብንመለስ፣ የ$p$-ተከታታይ ድምር ፈተናን ለማረጋገጥ ከዚህ በኋላ የምንመለከታቸው <a href="#የንጽጽር-ፈተና">የንጽጽር ፈተና</a> እና <a href="#የኢንተግራል-ፈተና">የኢንተግራል ፈተና</a> ያስፈልጋሉ። ነገር ግን የ$p$-ተከታታይ ድምር መቀራረብ/መበተን ልክ እንደ ጂኦሜትሪክ ተከታታይ ድምር በቀጥታ ከሚቀጥለው <a href="#የንጽጽር-ፈተና">የንጽጽር ፈተና</a> ውስጥ ጠቃሚ ስለሆነ በማሰብ አስቀድሞ አቀረብነው።</p><h3 id="ማረጋገጫ-1">ማረጋገጫ</h3><h4 id="i-p1-ሲሆን">i) $p&gt;1$ ሲሆን</h4><p>ኢንተግራሉ</p>\[\int_1^\infty \frac{1}{x^p}\ dx = \left[\frac{1}{-p+1}\frac{1}{x^{p-1}} \right]^\infty_1 = \frac{1}{p-1}\]<p>ይቀራረባል፤ ስለዚህ <a href="#የኢንተግራል-ፈተና">የኢንተግራል ፈተና</a> መሰረት ተከታታይ ድምር $\sum \cfrac{1}{n^p}$ ደግሞ እንደሚቀራረብ እናውቃለን።</p><h4 id="ii-pleq-1-ሲሆን">ii) $p\leq 1$ ሲሆን</h4><p>በዚህ ሁኔታ</p>\[0 \leq \frac{1}{n} \leq \frac{1}{n^p}\]<p>ነው። እዚህ ሃርሞኒክ ተከታታይ ድምር $\sum \cfrac{1}{n}$ እንደሚበተን እናውቃለን፤ ስለዚህ <a href="#የንጽጽር-ፈተና">የንጽጽር ፈተና</a> መሰረት $\sum \cfrac{1}{n^p}$ ደግሞ እንደሚበተን እናውቃለን።</p><h4 id="መደምደሚያ">መደምደሚያ</h4><p>በ i), ii) መሰረት፣ $p$-ተከታታይ ድምር $\sum \cfrac{1}{n^p}$ በ$p&gt;1$ ሲሆን ይቀራረባል፣ በ$p \leq 1$ ሲሆን ይበተናል። $\blacksquare$</p><h2 id="የንጽጽር-ፈተና">የንጽጽር ፈተና</h2><p>አጠቃላይ አባላቸው $0$ ወይም ከዚያ በላይ የሆኑ እውነተኛ ቁጥሮች ያላቸው ተከታታይ ድምሮች፣ ማለትም <strong>አዎንታዊ አባላት ተከታታይ ድምር(series of positive terms)</strong> መቀራረብ/መበተን ለመወሰን የያኮብ ቤርኑሊ(Jakob Bernoulli) <strong>የንጽጽር ፈተና(Comparison Test)</strong> ጠቃሚ ነው።</p><p>አዎንታዊ አባላት ተከታታይ ድምር $\sum a_n$ እየጨመረ የሚሄድ ተከታታይ ስለሆነ፣ ወደ ማይጨረስ በሚበተንበት ሁኔታ($\sum a_n = \infty$) ካልሆነ በስተቀር ግዴታ ይቀራረባል። ስለዚህ በአዎንታዊ አባላት ተከታታይ ድምር ውስጥ</p>\[\sum a_n &lt; \infty\]<p>የሚል አገላለጽ <u>ይቀራረባል</u> ማለት ነው።</p><blockquote class="prompt-info"><p><strong>የንጽጽር ፈተና(Comparison Test)</strong><br /> $0 \leq a_n \leq b_n$ ሲሆን,</p><ul><li>$\sum b_n &lt; \infty \ \Rightarrow \ \sum a_n &lt; \infty$<li>$\sum a_n = \infty \ \Rightarrow \ \sum b_n = \infty$</ul></blockquote><p>በተለይም ከአዎንታዊ አባላት ተከታታይ ድምሮች መካከል $\sum \cfrac{1}{n^2 + n}$, $\sum \cfrac{\log n}{n^3}$, $\sum \cfrac{1}{2^n + 3^n}$, $\sum \cfrac{1}{\sqrt{n}}$, $\sum \sin{\cfrac{1}{n}}$ ወዘተ እንደሚሆኑ ከዚህ በፊት ያየናቸው የጂኦሜትሪክ ተከታታይ ድምር $\sum ar^{n-1}$ ወይም $p$-ተከታታይ ድምር $\sum \cfrac{1}{n^p}$ ጋር ተመሳሳይ ቅርጽ ያላቸው ተከታታይ ድምሮችን ሲፈትኑ የንጽጽር ፈተናን በንቃት ማሞከር ጥሩ ነው።</p><p>ከዚህ በኋላ የምንመለከታቸው ሌሎች ብዙ የመቀራረብ/መበተን ፈተናዎች ሁሉ ከዚህ <strong>የንጽጽር ፈተና</strong> ሊመነጩ ይችላሉ፤ በዚህ አይነት አቅጣጫ ለመመልከት የንጽጽር ፈተናው ከሁሉም በላይ አስፈላጊ ነው ማለት ይቻላል።</p><h3 id="የገደብ-ንጽጽር-ፈተና">የገደብ ንጽጽር ፈተና</h3><p>ለአዎንታዊ አባላት ተከታታይ ድምሮች $\sum a_n$ እና $\sum b_n$፣ በሁለቱ ተከታታይ ድምሮች አጠቃላይ አባላት ጥምርታ $a_n/b_n$ ውስጥ በላይኛውና በታችኛው ክፍል ያሉ ዋና አባላት(dominant term) ተሰርዘው $\lim_{n\to\infty} \cfrac{a_n}{b_n}=c \text{ (}c\text{ ውሱን አዎንታዊ ቁጥር ነው)}$ ይሆናል ብለን እንውሰድ። በዚህ ጊዜ ተከታታይ ድምር $\sum b_n$ ይቀራረባል ወይስ ይበተናል የሚለውን ካወቅን፣ የሚከተለውን <strong>የገደብ ንጽጽር ፈተና(Limit Comparison Test)</strong> መጠቀም እንችላለን።</p><blockquote class="prompt-info"><p><strong>የገደብ ንጽጽር ፈተና(Limit Comparison Test)</strong><br /> ከሆነ</p>\[\lim_{n\to\infty} \frac{a_n}{b_n} = c \text{ (}c\text{ ውሱን አዎንታዊ ቁጥር ነው)}\]<p>ሁለቱ ተከታታይ ድምሮች $\sum a_n$ እና $\sum b_n$ ወይ ሁለቱም ይቀራረባሉ ወይም ሁለቱም ይበተናሉ። ማለትም $ \sum a_n &lt; \infty \ \Leftrightarrow \ \sum b_n &lt; \infty$ ነው።</p></blockquote><h2 id="የሥር-ፈተና">የሥር ፈተና</h2><blockquote class="prompt-info"><p><strong>መረጃ</strong><br /> ለአዎንታዊ አባላት ተከታታይ ድምር $\sum a_n$ እና አዎንታዊ $\epsilon &lt; 1$</p><ul><li>ለሁሉም $n$ ላይ $\sqrt[n]{a_n}&lt; 1-\epsilon$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>ለሁሉም $n$ ላይ $\sqrt[n]{a_n}&gt; 1+\epsilon$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይበተናል</ul></blockquote><blockquote class="prompt-info"><p><strong>ተከታይ መረጃ: የሥር ፈተና(Root Test)</strong><br /> በአዎንታዊ አባላት ተከታታይ ድምር $\sum a_n$ ውስጥ የገደብ እሴት</p>\[\lim_{n\to\infty} \sqrt[n]{a_n} =: r\]<p>አለ እንበል። በዚህ ጊዜ</p><ul><li>$r&lt;1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>$r&gt;1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይበተናል</ul></blockquote><blockquote class="prompt-warning"><p>በላይ ባለው ተከታይ መረጃ ውስጥ $r=1$ ከሆነ መቀራረብ/መበተንን መወሰን አይቻልም፣ ስለዚህ ሌላ ዘዴ መጠቀም ያስፈልጋል።</p></blockquote><h2 id="የጥምርታ-ፈተና">የጥምርታ ፈተና</h2><blockquote class="prompt-info"><p><strong>የጥምርታ ፈተና(Ratio Test)</strong><br /> ለአዎንታዊ ተከታታይ $(a_n)$ እና $0 &lt; r &lt; 1$</p><ul><li>ለሁሉም $n$ ላይ $a_{n+1}/a_n \leq r$ ከሆነ, ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>ለሁሉም $n$ ላይ $a_{n+1}/a_n \geq 1$ ከሆነ, ተከታታይ ድምር $\sum a_n$ ይበተናል</ul></blockquote><blockquote class="prompt-info"><p><strong>ተከታይ መረጃ</strong><br /> በአዎንታዊ ተከታታይ $(a_n)$ ውስጥ የገደብ እሴት $\rho := \lim_{n\to\infty} \cfrac{a_{n+1}}{a_n}$ አለ እንበል። በዚህ ጊዜ</p><ul><li>$\rho &lt; 1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይቀራረባል<li>$\rho &gt; 1$ ከሆነ ተከታታይ ድምር $\sum a_n$ ይበተናል</ul></blockquote><h2 id="የኢንተግራል-ፈተና">የኢንተግራል ፈተና</h2><p>የኢንተግራል ዘዴን በመጠቀም እየቀነሰ የሚሄድ አዎንታዊ ተከታታይ የሚፈጥረው ተከታታይ ድምር ይቀራረባል ወይስ ይበተናል የሚለውን መወሰን ይቻላል።</p><blockquote class="prompt-info"><p><strong>የኢንተግራል ፈተና(Integral Test)</strong><br /> ቀጣይ ተግባር $f: \left[1,\infty \right) \rightarrow \mathbb{R}$ እየቀነሰ የሚሄድ ተግባር እና ሁልጊዜ $f(x)&gt;0$ ሲሆን, ተከታታይ ድምር $\sum f(n)$ እንዲቀራረብ የሚያስፈልገውና የሚበቃው ሁኔታ ኢንተግራሉ</p>\[\int_1^\infty f(x)\ dx := \lim_{b\to\infty} \int_1^b f(x)\ dx\]<p>መቀራረቡ ነው።</p></blockquote><h3 id="ማረጋገጫ-2">ማረጋገጫ</h3><p>ፋንክሽኑ $f(x)$ ቀጣይ እና እየቀነሰ የሚሄድ ሲሆን ምልክቱም ሁልጊዜ አዎንታዊ ስለሆነ፣ የሚከተለው እኩልነት</p>\[f(n+1) \leq \int_n^{n+1} f(x)\ dx \leq f(n)\]<p>ይፀናል። ይህን እኩልነት $n=1$ ጀምሮ እስከ አጠቃላይ አባሉ ድረስ በየክፍሉ ብንደምር፣</p>\[f(2) + \cdots + f(n+1) \leq \int_1^{n+1} f(x)\ dx \leq f(1) + \cdots + f(n)\]<p>የሚል እኩልነት እናገኛለን። አሁን <a href="#የንጽጽር-ፈተና">የንጽጽር ፈተና</a> ብንጠቀም የሚፈለገውን ውጤት እናገኛለን። $\blacksquare$</p><h2 id="ተለዋዋጭ-ምልክት-ተከታታይ-ድምር">ተለዋዋጭ ምልክት ተከታታይ ድምር</h2><p>አጠቃላይ አባሉ $0$ ያልሆነ እና የእያንዳንዱ አባል $a_n$ ምልክት ከሚቀጥለው አባል $a_{n+1}$ ምልክት የሚለያይ፣ ማለትም አዎንታዊና አሉታዊ አባላት በተራ የሚታዩበት ተከታታይ ድምር $\sum a_n$-ን <strong>ተለዋዋጭ ምልክት ተከታታይ ድምር(alternating series)</strong> ይላሉ።</p><p>ለተለዋዋጭ ምልክት ተከታታይ ድምር በጀርመን የሂሳብ ሰው ጎትፍሪድ ቪልሄልም ላይብኒትስ(Gottfried Wilhelm Leibniz) ያገኘውን የሚከተለውን መረጃ በመቀራረብ/መበተን ፈተና ላይ በጠቃሚ ሁኔታ መጠቀም ይቻላል።</p><blockquote class="prompt-info"><p><strong>የተለዋዋጭ ምልክት ተከታታይ ድምር ፈተና(Alternating Series Test)</strong></p><ol><li>ለሁሉም $n$ ላይ $a_n$ እና $a_{n+1}$ ምልክታቸው የተለያየ ከሆነ,<li>ለሁሉም $n$ ላይ $|a_n| \geq |a_{n+1}|$ ከሆነ,<li>$\lim_{n\to\infty} a_n = 0$ ከሆነ,</ol><p>ተለዋዋጭ ምልክት ተከታታይ ድምር $\sum a_n$ ይቀራረባል።</p></blockquote><h2 id="በፍጹም-የሚቀራረብ-ተከታታይ-ድምር">በፍጹም የሚቀራረብ ተከታታይ ድምር</h2><p>ለተከታታይ ድምር $\sum a_n$፣ ተከታታይ ድምር $\sum |a_n|$ የሚቀራረብ ከሆነ “ተከታታይ ድምር $\sum a_n$ <strong>በፍጹም ይቀራረባል</strong>(<strong>converge absolutely</strong>)” ብለን እንላለን።</p><p>በዚህ ጊዜ የሚከተለው መረጃ ይፀናል።</p><blockquote class="prompt-info"><p><strong>መረጃ</strong><br /> በፍጹም የሚቀራረብ ተከታታይ ድምር ይቀራረባል።</p></blockquote><blockquote class="prompt-warning"><p>የላይኛው መረጃ ተገላቢጦሽ አይፀናም።<br /> ተከታታይ ድምር የሚቀራረብ ነገር ግን በፍጹም የማይቀራረብ ከሆነ “<strong>በሁኔታ ይቀራረባል</strong>(<strong>converge conditionally</strong>)” ይባላል።</p></blockquote><h3 id="ማረጋገጫ-3">ማረጋገጫ</h3><p>ለእውነተኛ ቁጥር $a$</p>\[\begin{align*} a^+ &amp;:= \max\{a,0\} = \frac{1}{2}(|a| + a), \\ a^- &amp;:= -\min\{a,0\} = \frac{1}{2}(|a| - a) \end{align*}\]<p>ብለን ብንውሰድ,</p>\[a = a^+ - a^-, \qquad |a| = a^+ + a^-\]<p>እናገኛለን። ከዚያ $0 \leq a^\pm \leq |a|$ ስለሆነ፣ <a href="#የንጽጽር-ፈተና">የንጽጽር ፈተና</a> መሰረት ተከታታይ ድምር $\sum |a_n|$ የሚቀራረብ ከሆነ ተከታታይ ድምሮች $\sum a_n^+$ እና $\sum a_n^-$ ሁለቱም ይቀራረባሉ፤ ስለዚህ <a href="/am/posts/sequences-and-series/#የሚቀራረቡ-ተከታታይ-ድምሮች-መሠረታዊ-ባህሪያት">የሚቀራረቡ ተከታታይ ድምሮች መሠረታዊ ባህሪያት</a> መሰረት</p>\[\sum a_n = \sum (a_n^+ - a_n^-) = \sum a_n^+ - \sum a_n^-\]<p>ደግሞ ይቀራረባል። $\blacksquare$</p>]]> </content> </entry> <entry><title xml:lang="am">Sequences and Series</title><link href="https://www.yunseo.kim/am/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/sequences-and-series/" rel="alternate" type="text/html" hreflang="am" /><published>2025-03-16T00:00:00+09:00</published> <updated>2025-05-13T16:24:07+09:00</updated> <id>https://www.yunseo.kim/am/posts/sequences-and-series/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Calculus" /> <summary xml:lang="am">We examine fundamental concepts of calculus such as the definition of sequences and series, convergence and divergence of sequences, convergence and divergence of series, and the definition of e, the base of natural logarithm.</summary> <content type="html" xml:lang="am"> <![CDATA[<p>We examine fundamental concepts of calculus such as the definition of sequences and series, convergence and divergence of sequences, convergence and divergence of series, and the definition of e, the base of natural logarithm.</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="sequences">Sequences</h2><p>In calculus, a <strong>sequence</strong> primarily refers to an infinite sequence. That is, a sequence is a function defined on the set of all <strong>natural numbers</strong></p>\[\mathbb{N} := \{1,2,3,\dots\}\]<ul><li>If the values of this function are real numbers, we call it a ‘real sequence’; if complex numbers, a ‘complex sequence’; if points, a ‘point sequence’; if matrices, a ‘matrix sequence’; if functions, a ‘function sequence’; if sets, a ‘set sequence’. However, all of these can be simply referred to as ‘sequences’.</ul><p>Usually, for the <strong>field of real numbers</strong> $\mathbb{R}$, in a sequence $\mathbf{a}: \mathbb{N} \to \mathbb{R}$, we denote</p>\[a_1 := \mathbf{a}(1), \quad a_2 := \mathbf{a}(2), \quad a_3 := \mathbf{a}(3)\]<p>and represent this sequence as</p>\[a_1,\, a_2,\, a_3,\, \dots\]<p>or</p>\[\begin{gather*} (a_1,a_2,a_3,\dots), \\ (a_n: n=1,2,3,\dots), \\ (a_n)_{n=1}^{\infty}, \qquad (a_n) \end{gather*}\]<blockquote class="prompt-info"><p>*In the process of defining a sequence, instead of using the set of all natural numbers $\mathbb{N}$ as the domain, we can also use the set of non-negative integers</p>\[\mathbb{N}_0 := \{0\} \cup \mathbb{N} = \{0,1,2,\dots\}\]<p>or</p>\[\{2,3,4,\dots \}\]<p>For example, when dealing with power series theory, it’s more natural to have $\mathbb{N}_0$ as the domain.</p></blockquote><h2 id="convergence-and-divergence">Convergence and Divergence</h2><p>If a sequence $(a_n)$ converges to a real number $l$, we write</p>\[\lim_{n\to \infty} a_n = l\]<p>and call $l$ the <strong>limit</strong> of the sequence $(a_n)$.</p><blockquote class="prompt-info"><p>The rigorous definition using the <strong>epsilon-delta argument</strong> is as follows:</p>\[\lim_{n\to \infty} a_n = l \overset{def}\Longleftrightarrow \forall \epsilon &gt; 0,\, \exists N \in \mathbb{N}\ (n &gt; N \Rightarrow |a_n - l| &lt; \epsilon)\]<p>In other words, if for any positive $\epsilon$, there always exists a natural number $N$ such that $|a_n - l | &lt; \epsilon$ when $n&gt;N$, it means that the difference between $a_n$ and $l$ becomes infinitely small for sufficiently large $n$. Therefore, we define that a sequence $(a_n)$ satisfying this condition converges to the real number $l$.</p></blockquote><p>A sequence that does not converge is said to <strong>diverge</strong>. <em>The convergence or divergence of a sequence does not change even if a finite number of its terms are altered.</em></p><p>If each term of the sequence $(a_n)$ grows infinitely large, we write</p>\[\lim_{n\to \infty} a_n = \infty\]<p>and say that it <em>diverges to positive infinity</em>. Similarly, if each term of the sequence $(a_n)$ becomes infinitely small, we write</p>\[\lim_{n\to \infty} a_n = -\infty\]<p>and say that it <em>diverges to negative infinity</em>.</p><h2 id="basic-properties-of-convergent-sequences">Basic Properties of Convergent Sequences</h2><p>If sequences $(a_n)$ and $(b_n)$ both converge (i.e., have limits), then the sequences $(a_n + b_n)$ and $(a_n \cdot b_n)$ also converge, and</p>\[\lim_{n\to \infty} (a_n + b_n) = \lim_{n\to \infty} a_n + \lim_{n\to \infty} b_n \label{eqn:props_of_conv_series_1}\tag{1}\] \[\lim_{n\to \infty} (a_n \cdot b_n) = \left(\lim_{n\to \infty} a_n \right) \cdot \left(\lim_{n\to \infty} b_n \right) \label{eqn:props_of_conv_series_2}\tag{2}\]<p>Also, for any real number $t$,</p>\[\lim_{n\to \infty} (t a_n) = t\left(\lim_{n\to \infty} a_n \right) \label{eqn:props_of_conv_series_3}\tag{3}\]<p>These properties are called the <strong>basic properties of convergent sequences</strong> or <strong>basic properties of limits</strong>.</p><h2 id="e-the-base-of-natural-logarithm">$e$, the Base of Natural Logarithm</h2><p><strong>The base of natural logarithm</strong> is defined as</p>\[e := \lim_{n\to \infty} \left(1+\frac{1}{n} \right)^n \approx 2.718\]<p>This is considered one of the most important constants in mathematics.</p><blockquote class="prompt-tip"><p>The term ‘natural constant’ is widely used only in Korea, but this is not a standard term. The official term registered in the mathematics terminology dictionary by the Korean Mathematical Society is <a href="https://www.kms.or.kr/mathdict/list.html?key=kname&amp;keyword=%EC%9E%90%EC%97%B0%EB%A1%9C%EA%B7%B8%EC%9D%98+%EB%B0%91">‘base of natural logarithm’</a>, and the expression ‘natural constant’ cannot be found in this dictionary. Even in the Standard Korean Language Dictionary of the National Institute of Korean Language, the word ‘natural constant’ cannot be found, and in the <a href="https://stdict.korean.go.kr/search/searchView.do?pageSize=10&amp;searchKeyword=%EC%9E%90%EC%97%B0%EB%A1%9C%EA%B7%B8">dictionary definition of ‘natural logarithm’</a>, it only mentions “a specific number usually denoted as e”.<br /> In English-speaking countries and Japan, there is no corresponding term, and in English, it’s mainly referred to as ‘the base of the natural logarithm’ or shortened to ‘natural base’, or ‘Euler’s number’ or ‘the number $e$’.<br /> Since the origin is unclear and it has never been recognized as an official term by the Korean Mathematical Society, and it’s not used anywhere else in the world except Korea, there’s no reason to insist on using such a term. Therefore, from now on, I will refer to it as ‘the base of natural logarithm’ or simply denote it as $e$.</p></blockquote><h2 id="series">Series</h2><p>For a sequence</p>\[\mathbf{a} = (a_1, a_2, a_3, \dots)\]<p>the sequence of partial sums</p>\[a_1, \quad a_1 + a_2, \quad a_1 + a_2 + a_3, \quad \dots\]<p>is called the <strong>series</strong> of the sequence $\mathbf{a}$. The series of the sequence $(a_n)$ is denoted as</p>\[\begin{gather*} a_1 + a_2 + a_3 + \cdots, \qquad \sum_{n=1}^{\infty}a_n, \\ \sum_{n\geq 1} a_n, \qquad \sum_n a_n, \qquad \sum a_n \end{gather*}\]<h2 id="convergence-and-divergence-of-series">Convergence and Divergence of Series</h2><p>If the series obtained from the sequence $(a_n)$</p>\[a_1, \quad a_1 + a_2, \quad a_1 + a_2 + a_3, \quad \dots\]<p>converges to some real number $l$, we write</p>\[\sum_{n=1}^{\infty} a_n = l\]<p>The limit value $l$ is called the <strong>sum</strong> of the series $\sum a_n$. The symbol</p>\[\sum a_n\]<p>can represent either the <u>series</u> or the <u>sum of the series</u>, depending on the context.</p><p>A series that does not converge is said to <strong>diverge</strong>.</p><h2 id="basic-properties-of-convergent-series">Basic Properties of Convergent Series</h2><p>From the <a href="#basic-properties-of-convergent-sequences">basic properties of convergent sequences</a>, we obtain the following basic properties of convergent series. For a real number $t$ and two convergent series $\sum a_n$, $\sum b_n$,</p>\[\sum(a_n + b_n) = \sum a_n + \sum b_n, \qquad \sum ta_n = t\sum a_n \tag{4}\]<p>The convergence of a series is not affected by changes in a finite number of terms. That is, if $a_n=b_n$ for all but finitely many $n$ in two sequences $(a_n)$, $(b_n)$, the series $\sum a_n$ converges if and only if the series $\sum b_n$ converges.</p>]]> </content> </entry> <entry><title xml:lang="am">የኒውተን የእንቅስቃሴ ሕጎች</title><link href="https://www.yunseo.kim/am/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/newtons-laws-of-motion/" rel="alternate" type="text/html" hreflang="am" /><published>2025-03-10T00:00:00+09:00</published> <updated>2025-03-10T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/newtons-laws-of-motion/</id> <author> <name>Yunseo Kim</name> </author> <category term="Physics" /> <category term="Classical Dynamics" /> <summary xml:lang="am">የኒውተን 3 የእንቅስቃሴ ሕጎችን፣ ትርጉማቸውን፣ የኢነርሻ ብዛትና የስበት ብዛት ትርጉሞችን እንመለከታለን፣ እንዲሁም በክላሲካል መካኒክስና በአጠቃላይ አንጻራዊነት ወሳኝ የሆነውን የእኩልነት መርህ እንመርምራለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>የኒውተን 3 የእንቅስቃሴ ሕጎችን፣ ትርጉማቸውን፣ የኢነርሻ ብዛትና የስበት ብዛት ትርጉሞችን እንመለከታለን፣ እንዲሁም በክላሲካል መካኒክስና በአጠቃላይ አንጻራዊነት ወሳኝ የሆነውን የእኩልነት መርህ እንመርምራለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="tldr">TL;DR</h2><blockquote class="prompt-info"><p><strong>የኒውተን የእንቅስቃሴ ሕጎች(Newton’s laws of motion)</strong></p><ol><li>ከውጭ ኃይል ካልተግባረበት፣ አንድ አካል በእረፍት ሁኔታ ወይም በቀጥታ መስመር በቋሚ ፍጥነት መንቀሳቀሱን ይቀጥላል።<li>የአካሉ ሞመንተም በጊዜ የሚለወጥበት መጠን በእሱ ላይ ከሚሠራው ኃይል ጋር እኩል ነው።<ul><li>$\vec{F} = \cfrac{d\vec{p}}{dt} = \cfrac{d}{dt}(m\vec{v}) = m\vec{a}$</ul><li>ሁለት አካላት እርስ በርሳቸው ኃይል ሲያደርጉ፣ እነዚህ ሁለቱ ኃይሎች መጠናቸው እኩል እና አቅጣጫቸው ተቃራኒ ነው።<ul><li>$\vec{F_1} = -\vec{F_2}$</ul></ol></blockquote><blockquote class="prompt-info"><p><strong>የእኩልነት መርህ(principle of equivalence)</strong></p><ul><li>የኢነርሻ ብዛት: የተሰጠ ኃይል ሲሠራ የአካሉን ፍጥነት-ለውጥ የሚወስን ብዛት<li>የስበት ብዛት: በአንድ አካል እና በሌላ አካል መካከል የሚሠራውን የስበት ኃይል የሚወስን ብዛት<li>በአሁኑ ጊዜ የኢነርሻ ብዛት እና የስበት ብዛት በ $10^{-12}$ ያህል የስህተት ክልል ውስጥ በግልጽ እንደሚጣጣሙ ይታወቃል<li>የኢነርሻ ብዛት እና የስበት ብዛት በትክክል እኩል ናቸው የሚለውን አቤቱታ <strong>የእኩልነት መርህ</strong> ብለን እንጠራዋለን</ul></blockquote><h2 id="የኒውተን-የእንቅስቃሴ-ሕጎች">የኒውተን የእንቅስቃሴ ሕጎች</h2><p>የኒውተን የእንቅስቃሴ ሕጎች አይዛክ ኒውተን(Issac Newton) በ<a href="https://en.wikipedia.org/wiki/Holocene_calendar">የሆሎሲን ዘመን አቆጣጠር</a> 11687 ዓመት በPhilosophiæ Naturalis Principia Mathematica(የተፈጥሮ ፍልስፍና የሂሳብ መርሆች፣ በአጭሩ ‘ፕሪንሲፒያ’) በተባለው መጽሐፉ ያቀረባቸው 3 ሕጎች ሲሆኑ፣ የኒውተን መካኒክስ(Newtonian mechanics) መሠረት ይሆናሉ።</p><ol><li>ከውጭ ኃይል ካልተግባረበት፣ አንድ አካል በእረፍት ሁኔታ ወይም በቀጥታ መስመር በቋሚ ፍጥነት መንቀሳቀሱን ይቀጥላል።<li>የአካሉ ሞመንተም በጊዜ የሚለወጥበት መጠን በእሱ ላይ ከሚሠራው ኃይል ጋር እኩል ነው።<li>ሁለት አካላት እርስ በርሳቸው ኃይል ሲያደርጉ፣ እነዚህ ሁለቱ ኃይሎች መጠናቸው እኩል እና አቅጣጫቸው ተቃራኒ ነው።</ol><h3 id="የኒውተን-1ኛ-ሕግ">የኒውተን 1ኛ ሕግ</h3><blockquote><p>I. ከውጭ ኃይል ካልተግባረበት፣ አንድ አካል በእረፍት ሁኔታ ወይም በቀጥታ መስመር በቋሚ ፍጥነት መንቀሳቀሱን ይቀጥላል።</p></blockquote><p>እንዲህ ያለ ከውጭ ኃይል የተፈታ አካልን <strong>ነፃ አካል(free body)</strong> ወይም <strong>ነፃ ቅንጣት(free particle)</strong> ብለን እንጠራዋለን። ነገር ግን 1ኛው ሕግ ብቻውን ስለ ኃይል የሚሰጠው ጥራታዊ ግንዛቤ ብቻ ነው።</p><h3 id="የኒውተን-2ኛ-ሕግ">የኒውተን 2ኛ ሕግ</h3><blockquote><p>II. የአካሉ ሞመንተም በጊዜ የሚለወጥበት መጠን በእሱ ላይ ከሚሠራው ኃይል ጋር እኩል ነው።</p></blockquote><p>ኒውተን <strong>ሞመንተም(momentum)</strong>ን እንደ ብዛት እና ፍጥነት ምርት</p>\[\vec{p} \equiv m\vec{v} \label{eqn:momentum}\tag{1}\]<p>ብሎ ገለጸው። ከዚህ በመነሳት የኒውተን 2ኛ ሕግ እንዲህ ሊገለጽ ይችላል።</p>\[\vec{F} = \frac{d\vec{p}}{dt} = \frac{d}{dt}(m\vec{v}) = m\vec{a}. \label{eqn:2nd_law}\tag{2}\]<p>የኒውተን 1ኛ ሕግ እና 2ኛ ሕግ ስማቸው ሕጎች ቢሆንም፣ በእውነቱ ከ’ሕግ’ ይልቅ ኃይልን የሚገልጹ ‘ትርጓሜዎች’ ጋር የበለጠ ይቀራረባሉ። እንዲሁም የኃይል ትርጓሜ በ’ብዛት’ ትርጓሜ ላይ እንደሚመሠረት ማየት ይቻላል።</p><h3 id="የኒውተን-3ኛ-ሕግ">የኒውተን 3ኛ ሕግ</h3><blockquote><p>III. ሁለት አካላት እርስ በርሳቸው ኃይል ሲያደርጉ፣ እነዚህ ሁለቱ ኃይሎች መጠናቸው እኩል እና አቅጣጫቸው ተቃራኒ ነው።</p></blockquote><p>ይህ በ”የእርምጃና የተግባር ምላሽ ሕግ” በሚል ስምም የሚታወቅ የፊዚክስ ሕግ ሲሆን፣ አንድ አካል በሌላ አካል ላይ የሚያደርገው ኃይል የሁለቱን ተግባር ነጥቦች የሚያገናኝ ቀጥተኛ መስመር አቅጣጫ ሲከተል ይተገበራል። እንዲህ ያለውን ኃይል <strong>ማዕከላዊ ኃይል(central force)</strong> ብለን እንጠራዋለን፣ እና 3ኛው ሕግ ይህ ኃይል መሳብ ይሁን መግፋት ምንም አይነት እንኳን ይሠራል። በእረፍት ላይ ያሉ ሁለት አካላት መካከል ያለው የስበት ኃይል ወይም የኤሌክትሮስታቲክ ኃይል፣ እንዲሁም የኤላስቲክ ኃይል ይህን ዓይነት ማዕከላዊ ኃይሎች ናቸው። በሌላ በኩል በእንቅስቃሴ ላይ ያሉ ቻርጆች መካከል ያለው ኃይል፣ በእንቅስቃሴ ላይ ያሉ አካላት መካከል ያለው የስበት ኃይል ወዘተ እንደ ተጋጣሚ ሁለቱ አካላት ፍጥነት የሚመሠረቱ ኃይሎች ግን ማዕከል-ያልሆኑ ኃይሎች ናቸው፣ በእነዚህ ጉዳዮች 3ኛው ሕግ ሊተገበር አይችልም።</p><p>ከዚህ በፊት ያየነውን የብዛት ትርጓሜ ካካተትን፣ 3ኛው ሕግ እንዲህ ተብሎ እንደገና ሊገለጽ ይችላል።</p><blockquote><p>III$^\prime$. ሁለት አካላት ተስማሚ የተነጠለ ስርዓት ቢፈጥሩ፣ የእነዚህ ሁለት አካላት ፍጥነት-ለውጦች አቅጣጫቸው ተቃራኒ ሲሆን የመጠናቸው ጥምርታ ከብዛታቸው ግልባጭ ጥምርታ ጋር እኩል ነው።</p></blockquote><p>በኒውተን 3ኛ ሕግ መሠረት</p>\[\vec{F_1} = -\vec{F_2} \label{eqn:3rd_law}\tag{3}\]<p>ሲሆን፣ ከዚህ ቀደም ያየነውን 2ኛ ሕግ ($\ref{eqn:2nd_law}$) በዚህ ላይ ካስገባን</p>\[\frac{d\vec{p_1}}{dt} = -\frac{d\vec{p_2}}{dt} \label{eqn:3rd-1_law}\tag{4}\]<p>ይሆናል። ከዚህ ሁለት ቅንጣቶች በተነጠለ መስተጋብር ውስጥ ሞመንተም እንደሚጠበቅ ማወቅ ይቻላል።</p>\[\frac{d}{dt}(\vec{p_1}+\vec{p_2}) = 0 \label{eqn:conservation_of_momentum}\tag{5}\]<p>እንዲሁም በስሌት ($\ref{eqn:3rd-1_law}$) ውስጥ $\vec{p}=m\vec{v}$ ሲሆን ብዛት $m$ ቋሚ ስለሆነ፣</p>\[m_1\left(\frac{d\vec{v_1}}{dt} \right) = m_2\left(-\frac{d\vec{v_2}}{dt} \right) \tag{6a}\] \[m_1(\vec{a_1}) = m_2(-\vec{a_2}) \tag{6b}\]<p>ይህም ሆኖ የሚከተለውን እናገኛለን።</p>\[\frac{m_2}{m_1} = -\frac{a_1}{a_2}. \tag{7}\]<p>ነገር ግን የኒውተን 3ኛ ሕግ ሁለት አካላት የተነጠለ ስርዓት ሲፈጥሩ የሚሆነውን ሁኔታ ቢገልጽም፣ በእውነቱ እንዲህ ያሉ ተስማሚ ሁኔታዎችን ማሳካት አይቻልም፤ ስለዚህ በ3ኛው ሕግ ውስጥ የኒውተን አቤቱታ በአንድ ወገን በጣም ደፋር ነበር ማለት ይቻላል። እንዲህ ያለ ከተገደበ ምልከታ የተገኘ ውሳኔ ቢሆንም፣ በኒውተን ጥልቅ የፊዚክስ እውቀት ምክንያት የኒውተን መካኒክስ ለአስቀድሞ 300 ዓመታት በተለያዩ ሙከራዎች የተደረገ ማረጋገጫ ውስጥ ምንም ስህተት ሳይገኝበት ጽኑ አቋም አለው፤ እስከ 11900 ዎቹ ድረስ ብቻ የኒውተን ንድፈ ሐሳብ ትንበያዎች እና እውነተኛ ሁኔታ መካከል ልዩነት ለማሳየት የሚችሉ እጅግ የትክክለኛ መለኪያዎች ሊደረጉ ቻሉ፣ ከዚህም አንጻራዊነት ንድፈ ሐሳብ እና ኳንተም መካኒክስ ተወለዱ።</p><h2 id="የኢነርሻ-ብዛት-እና-የስበት-ብዛት">የኢነርሻ ብዛት እና የስበት ብዛት</h2><p>የአንድ አካልን ብዛት ለመወሰን ከሚቻሉ መንገዶች አንዱ፣ እንደ ሚዛን ያለ መሣሪያ በመጠቀም የዚያ አካል ክብደት ከመደበኛ ክብደት ጋር ማነጻጸር ነው። ይህ ዘዴ በስበት መስክ ውስጥ ያለ አካል ክብደት በዚያ አካል ላይ ከሚሠራው የስበት ኃይል መጠን ጋር እኩል መሆኑን ይጠቀማል፤ በዚህ ሁኔታ 2ኛው ሕግ $\vec{F}=m\vec{a}$ ወደ $\vec{W}=m\vec{g}$ ቅርጽ ይለወጣል። ይህ ዘዴ በ III$^\prime$ ውስጥ የተገለጸው ብዛት $m$ በስበት ስሌት ውስጥ ከሚታየው ብዛት $m$ ጋር እኩል ነው በሚል መሠረታዊ ግምት ላይ ይመሠረታል። እነዚህን ሁለት ብዛቶች በተከታታይ <strong>የኢነርሻ ብዛት(inertial mass)</strong> እና <strong>የስበት ብዛት(gravitational mass)</strong> ብለን እንጠራቸዋለን፣ እነሱም እንዲህ ተብለው ይገለጻሉ።</p><ul><li>የኢነርሻ ብዛት: የተሰጠ ኃይል ሲሠራ የአካሉን ፍጥነት-ለውጥ የሚወስን ብዛት<li>የስበት ብዛት: በአንድ አካል እና በሌላ አካል መካከል የሚሠራውን የስበት ኃይል የሚወስን ብዛት</ul><p>ምንም እንኳን ከጋሊሌዮ ጋሊሌይ(Galileo Galilei) ጋር በቀጥታ የማይዛመድ እና ከእርሱ በኋላ የተፈጠረ ታሪክ ቢሆንም፣ የፒሳ ግንብ የመውደቅ ሙከራ የኢነርሻ ብዛት እና የስበት ብዛት እኩል እንደሚሆኑ ለመጀመሪያ ጊዜ ያሳየ አስተሳሰባዊ ሙከራ ነው። ኒውተንም እንዲሁ ርዝመታቸው እኩል ነገር ግን የጉበቶቻቸው ብዛት የተለያዩ ፔንዱላሞች የንቀት ጊዜ በመለካት በእነዚህ ሁለት ብዛቶች መካከል ልዩነት እንደሌለ ለማሳየት ሞክሮ ነበር፣ ግን የሙከራው ዘዴ እና ትክክለኛነቱ ደካማ ስለነበሩ ትክክለኛ ማረጋገጫ ላይ አልደረሰም።</p><p>ከዚያ በኋላ በ11800 ዎቹ መጨረሻ፣ የሀንጋሪ ፊዚክስ ምሁር ኤትቮሽ ሎራንድ አጎሽቶን(Eötvös Loránd Ágoston) በየኢነርሻ ብዛት እና በየስበት ብዛት መካከል ያለውን ልዩነት በትክክል ለመለካት የኤትቮሽ ሙከራን አከናወነ፣ እናም የኢነርሻ ብዛት እና የስበት ብዛት አንድ እንደሆኑ በከፍተኛ ትክክለኛነት (ከ2 ኮቲ ውስጥ 1 ያልበለጠ ስህተት) አረጋገጠ።</p><p>ከዚያ በኋላ ሮበርት ሄንሪ ዲክ(Robert Henry Dicke) እና ሌሎች ያካሄዱት ከዚያም የበለጠ ዘመናዊ ሙከራዎች ትክክለኛነቱን የበለጠ አሻሽለዋል፣ እና በአሁኑ ጊዜ የኢነርሻ ብዛት እና የስበት ብዛት በ $10^{-12}$ ያህል የስህተት ክልል ውስጥ በግልጽ እንደሚጣጣሙ ይታወቃል። እነዚህ ውጤቶች በአጠቃላይ አንጻራዊነት ንድፈ ሐሳብ ውስጥ እጅግ አስፈላጊ ትርጉም አላቸው፣ እና የኢነርሻ ብዛት እና የስበት ብዛት በትክክል እኩል ናቸው የሚለውን አቤቱታ <strong>የእኩልነት መርህ(principle of equivalence)</strong> ብለን እንጠራዋለን።</p>]]> </content> </entry> <entry><title xml:lang="am">ቋሚ ኮኤፊሺዎንቶችን ያላቸው 2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች</title><link href="https://www.yunseo.kim/am/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/homogeneous-linear-odes-with-constant-coefficients/" rel="alternate" type="text/html" hreflang="am" /><published>2025-02-22T00:00:00+09:00</published> <updated>2025-02-22T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/homogeneous-linear-odes-with-constant-coefficients/</id> <author> <name>Yunseo Kim</name> </author> <category term="Mathematics" /> <category term="Differential Equation" /> <summary xml:lang="am">የባህሪ ስሌቱ ዲስክሪሚናንት ምልክት መሠረት በማድረግ፣ የቋሚ ኮኤፊሺዎንቶች አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌት አጠቃላይ መፍትሄ በሦስት አጋጣሚዎች ምን ቅርጽ እንደሚኖረው እንመልከታለን።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>የባህሪ ስሌቱ ዲስክሪሚናንት ምልክት መሠረት በማድረግ፣ የቋሚ ኮኤፊሺዎንቶች አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌት አጠቃላይ መፍትሄ በሦስት አጋጣሚዎች ምን ቅርጽ እንደሚኖረው እንመልከታለን።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="ማጠቃለያ">ማጠቃለያ</h2><blockquote class="prompt-info"><ul><li>ቋሚ ኮኤፊሺዎንቶችን ያለው 2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌት: $y^{\prime\prime} + ay^{\prime} + by = 0$<li><strong>የባህሪ ስሌት(characteristic equation)</strong>: $\lambda^2 + a\lambda + b = 0$<li>በየባህሪ ስሌቱ ዲስክሪሚናንት $a^2 - 4b$ ምልክት መሠረት የአጠቃላይ መፍትሄው ቅርጽ እንደሚከተለው በሶስት አጋጣሚዎች ሊከፈል ይችላል</ul><table><thead><tr><th style="text-align: center">አጋጣሚ<th style="text-align: center">የባህሪ ስሌቱ ሥሮች<th style="text-align: center">የተራ ልዩነት ስሌቱ መፍትሄዎች መሠረት<th style="text-align: center">የተራ ልዩነት ስሌቱ አጠቃላይ መፍትሄ<tbody><tr><td style="text-align: center">I<td style="text-align: center">የተለያዩ እውነተኛ ሥሮች<br />$\lambda_1$, $\lambda_2$<td style="text-align: center">$e^{\lambda_1 x}$, $e^{\lambda_2 x}$<td style="text-align: center">$y = c_1e^{\lambda_1 x} + c_2e^{\lambda_2 x}$<tr><td style="text-align: center">II<td style="text-align: center">ድርብ እውነተኛ ሥር<br /> $\lambda = -\cfrac{1}{2}a$<td style="text-align: center">$e^{-ax/2}$, $xe^{-ax/2}$<td style="text-align: center">$y = (c_1 + c_2 x)e^{-ax/2}$<tr><td style="text-align: center">III<td style="text-align: center">የተዛማጅ ውስብስብ ሥሮች<br /> $\lambda_1 = -\cfrac{1}{2}a + i\omega$, <br /> $\lambda_2 = -\cfrac{1}{2}a - i\omega$<td style="text-align: center">$e^{-ax/2}\cos{\omega x}$, <br /> $e^{-ax/2}\sin{\omega x}$<td style="text-align: center">$y = e^{-ax/2}(A\cos{\omega x} + B\sin{\omega x})$</table></blockquote><h2 id="ቅድመ-ሁኔታዎች">ቅድመ ሁኔታዎች</h2><ul><li><a href="/am/posts/Bernoulli-Equation/">የቤርኑሊ(Bernoulli) ስሌት</a><li><a href="/am/posts/homogeneous-linear-odes-of-second-order/">የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች (Homogeneous Linear ODEs of Second Order)</a><li>የኦይለር(Euler) ቀመር</ul><h2 id="የባህሪ-ስሌት-characteristic-equation">የባህሪ ስሌት (characteristic equation)</h2><p>ኮኤፊሺዎንቶቹ $a$ እና $b$ ቋሚ የሆኑበትን 2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌት</p>\[y^{\prime\prime} + ay^{\prime} + by = 0 \label{eqn:ode_with_constant_coefficients}\tag{1}\]<p>እንመልከት። ይህ አይነት ስሌት በመካኒካዊ እና ኤሌክትሪካዊ ንዝረቶች ውስጥ ጠቃሚ ተግባራዊነት አለው።</p><p>ከዚህ በፊት <a href="/am/posts/Bernoulli-Equation/">የቤርኑሊ(Bernoulli) ስሌት</a> ውስጥ የሎጂስቲክ ስሌቱን አጠቃላይ መፍትሄ አግኝተናል፣ በዚያም መሠረት ቋሚ ኮኤፊሺዎንት $k$ ያለው 1ኛ ደረጃ መስመራዊ ተራ ልዩነት ስሌት</p>\[y^\prime + ky = 0\]<p>መፍትሄው የኤክስፖነንሺያል ተግባር $y = ce^{-kx}$ ነው። (በዚያ ጽሑፍ ውስጥ ካለው ስሌት (4) ውስጥ $A=-k$, $B=0$ በሆነበት አጋጣሚ)</p><p>ስለዚህ፣ ከዚህ ጋር ተመሳሳይ ቅርጽ ላለው ስሌት ($\ref{eqn:ode_with_constant_coefficients}$) ውስጥም</p>\[y=e^{\lambda x}\label{eqn:general_sol}\tag{2}\]<p>የሚለውን ቅርጽ ያለ መፍትሄ በመጀመሪያ ልንሞክር እንችላለን።</p><blockquote class="prompt-info"><p>እርግጥ ይህ እስካሁን ድረስ ግምት ብቻ ነው፣ እና አጠቃላይ መፍትሄው በእርግጥ ይህን ቅርጽ ይይዛል ብሎ ማረጋገጥ አይቻልም። ነገር ግን ምንም ቢሆን መስመራዊ ገለልተኛ የሆኑ ሁለት መፍትሄዎችን ብቻ ካገኘን፣ <a href="/am/posts/homogeneous-linear-odes-of-second-order/#መሠረት-እና-አጠቃላይ-መፍትሄ">የ2ኛ ደረጃ አንድ-ዓይነት መስመራዊ ተራ ልዩነት ስሌቶች</a> ውስጥ እንዳየነው በ<a href="/am/posts/homogeneous-linear-odes-of-second-order/#የልዕለት-መርህ">የልዕለት መርህ</a> መሠረት አጠቃላይ መፍትሄውን ማግኘት እንችላለን።<br /> ትንሽ ቆይተን እንደምናየው፣ <a href="#ii-ድርብ-እውነተኛ-ሥር-lambda---cfraca2">ሌላ ቅርጽ ያለ መፍትሄ ማግኘት የሚያስፈልግበት አጋጣሚ</a>ም አለ።</p></blockquote><p>ስሌት ($\ref{eqn:general_sol}$) እና የእርሱ ተዋረዶች</p>\[y^\prime = \lambda e^{\lambda x}, \quad y^{\prime\prime} = \lambda^2 e^{\lambda x}\]<p>ን ወደ ስሌት ($\ref{eqn:ode_with_constant_coefficients}$) በማስገባት</p>\[(\lambda^2 + a\lambda + b)e^{\lambda x} = 0\]<p>እናገኛለን። ስለዚህ $\lambda$ የ<strong>ባህሪ ስሌቱ(characteristic equation)</strong></p>\[\lambda^2 + a\lambda + b = 0 \label{eqn:characteristic_eqn}\tag{3}\]<p>ሥር ከሆነ፣ የኤክስፖነንሺያል ተግባሩ ($\ref{eqn:general_sol}$) የተራ ልዩነት ስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) መፍትሄ ይሆናል። የኳድራቲክ ስሌቱ ($\ref{eqn:characteristic_eqn}$) ሥሮችን ከፈታን</p>\[\begin{align*} \lambda_1 &amp;= \frac{1}{2}\left(-a + \sqrt{a^2 - 4b}\right), \\ \lambda_2 &amp;= \frac{1}{2}\left(-a - \sqrt{a^2 - 4b}\right) \end{align*}\label{eqn:lambdas}\tag{4}\]<p>እናገኛለን፣ ከዚህም ሁለቱ ተግባሮች</p>\[y_1 = e^{\lambda_1 x}, \quad y_2 = e^{\lambda_2 x} \tag{5}\]<p>የስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) መፍትሄዎች ይሆናሉ።</p><blockquote class="prompt-tip"><p><strong>የባህሪ ስሌት(characteristic equation)</strong> እና <strong>የረዳት ስሌት(auxiliary equation)</strong> የሚሉት ሁለት ቃላት ብዙ ጊዜ በመተካከል ይጠቀማሉ፣ ግን ሙሉ በሙሉ አንድ ትርጉም አላቸው። የቱንም ብትጠቀሙ ችግር የለውም።</p></blockquote><p>አሁን በባህሪ ስሌቱ ($\ref{eqn:characteristic_eqn}$) ዲስክሪሚናንት $a^2 - 4b$ ምልክት መሠረት አጋጣሚዎቹን ሶስት ክፍሎች ማካፈል እንችላለን።</p><ul><li>$a^2 - 4b &gt; 0$: ሁለት የተለያዩ እውነተኛ ሥሮች<li>$a^2 - 4b = 0$: ድርብ እውነተኛ ሥር<li>$a^2 - 4b &lt; 0$: የተዛማጅ ውስብስብ ሥሮች</ul><h2 id="በባህሪ-ስሌቱ-ዲስክሪሚናንት-ምልክት-መሠረት-የአጠቃላይ-መፍትሄ-ቅርጽ">በባህሪ ስሌቱ ዲስክሪሚናንት ምልክት መሠረት የአጠቃላይ መፍትሄ ቅርጽ</h2><h3 id="i-ሁለት-የተለያዩ-እውነተኛ-ሥሮች-lambda_1-እና-lambda_2">I. ሁለት የተለያዩ እውነተኛ ሥሮች $\lambda_1$ እና $\lambda_2$</h3><p>በዚህ አጋጣሚ በማንኛውም ክልል ላይ ያለው የስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) መፍትሄዎች መሠረት</p>\[y_1 = e^{\lambda_1 x}, \quad y_2 = e^{\lambda_2 x}\]<p>ሲሆን፣ በዚህ መሠረት የሚገኘው አጠቃላይ መፍትሄ</p>\[y = c_1 e^{\lambda_1 x} + c_2 e^{\lambda_2 x} \label{eqn:general_sol_1}\tag{6}\]<p>ነው።</p><h3 id="ii-ድርብ-እውነተኛ-ሥር-lambda---cfraca2">II. ድርብ እውነተኛ ሥር $\lambda = -\cfrac{a}{2}$</h3><p>$a^2 - 4b = 0$ ከሆነ የኳድራቲክ ስሌቱ ($\ref{eqn:characteristic_eqn}$) አንድ ብቻ ሥር $\lambda = \lambda_1 = \lambda_2 = -\cfrac{a}{2}$ ይኖረዋል፣ ስለዚህ ከእርሱ ልናገኘው የምንችለው $y = e^{\lambda x}$ ቅርጽ ያለ መፍትሄ</p>\[y_1 = e^{-(a/2)x}\]<p>አንድ ብቻ ነው። መሠረት ለማግኘት $y_1$ ጋር ገለልተኛ የሆነ ሌላ ቅርጽ ያለ ሁለተኛ መፍትሄ $y_2$ ማግኘት አለብን።</p><p>በእንደዚህ ያለ ሁኔታ ልንጠቀምበት የምንችለው ቀደም ሲል ያየነው <a href="/am/posts/homogeneous-linear-odes-of-second-order/#የደረጃ-መቀነስ-reduction-of-order">የደረጃ መቀነስ</a> ነው። ልናገኘው የምንፈልገውን ሁለተኛ መፍትሄ $y_2=uy_1$ ብለን ብናስቀምጥ፣</p>\[\begin{align*} y_2 &amp;= uy_1, \\ y_2^{\prime} &amp;= u^{\prime}y_1 + uy_1^{\prime}, \\ y_2^{\prime\prime} &amp;= u^{\prime\prime}y_1 + 2u^{\prime}y_1^{\prime} + uy_1^{\prime\prime} \end{align*}\]<p>እነዚህን ወደ ስሌት ($\ref{eqn:ode_with_constant_coefficients}$) በማስገባት</p>\[(u^{\prime\prime}y_1 + 2u^\prime y_1^\prime + uy_1^{\prime\prime}) + a(u^\prime y_1 + uy_1^\prime) + buy_1 = 0\]<p>እናገኛለን። $u^{\prime\prime}$፣ $u^\prime$፣ $u$ ያላቸውን አባላት በየቡድናቸው ሰብስበን ካዘጋጀን</p>\[y_1u^{\prime\prime} + (2y_1^\prime + ay_1)u^\prime + (y_1^{\prime\prime} + ay_1^\prime + by_1)u = 0\]<p>ይሆናል። እዚህ $y_1$ የስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) መፍትሄ ስለሆነ በመጨረሻው ቅንፍ ውስጥ ያለው ንግግር $0$ ነው፣</p>\[2y_1^\prime = -ae^{-ax/2} = -ay_1\]<p>ስለሆነም በመጀመሪያው ቅንፍ ውስጥ ያለው ንግግርም $0$ ነው። ስለዚህ $u^{\prime\prime}y_1 = 0$ ብቻ ይቀራል፣ ከዚህም $u^{\prime\prime}=0$ እንደሆነ እናገኛለን። ሁለት ጊዜ ኢንተግሬት ካደረግን $u = c_1x + c_2$ ይሆናል፣ እና የኢንተግሬሽን ቋሚዎቹ $c_1$ እና $c_2$ ማንኛውም እሴት ሊኖራቸው ስለሚችል ቀላሉን $c_1=1$, $c_2=0$ በመምረጥ $u=x$ ብለን ማስቀመጥ እንችላለን። ከዚያ $y_2 = uy_1 = xy_1$ ይሆናል፣ እና $y_1$ እና $y_2$ መስመራዊ ገለልተኛ ስለሆኑ ሁለቱም መሠረት ይፈጥራሉ። ስለዚህ የባህሪ ስሌቱ ($\ref{eqn:characteristic_eqn}$) ድርብ ሥር ሲኖረው በማንኛውም ክልል ላይ ያለው የስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) መፍትሄዎች መሠረት</p>\[e^{-ax/2}, \quad xe^{-ax/2}\]<p>ሲሆን፣ ከእርሱ ጋር የሚዛመደው አጠቃላይ መፍትሄ</p>\[y = (c_1 + c_2x)e^{-ax/2} \label{eqn:general_sol_2}\tag{7}\]<p>ነው።</p><h3 id="iii-የተዛማጅ-ውስብስብ-ሥሮች--cfrac12a--iomega-እና--cfrac12a---iomega">III. የተዛማጅ ውስብስብ ሥሮች $-\cfrac{1}{2}a + i\omega$ እና $-\cfrac{1}{2}a - i\omega$</h3><p>በዚህ አጋጣሚ $a^2 - 4b &lt; 0$ እና $\sqrt{-1} = i$ ስለሆነ ከስሌት ($\ref{eqn:lambdas}$)</p>\[\cfrac{1}{2}\sqrt{a^2 - 4b} = \cfrac{1}{2}\sqrt{-(4b - a^2)} = \sqrt{-(b-\frac{1}{4}a^2)} = i\sqrt{b - \frac{1}{4}a^2}\]<p>እንደምናገኝ፣ እዚህ እውነተኛውን $\sqrt{b-\cfrac{1}{4}a^2} = \omega$ ብለን እንግለጽ።</p><p>$\omega$ ን ከላይ እንደተገለጸው ካቀረብን፣ የባህሪ ስሌቱ ($\ref{eqn:characteristic_eqn}$) ሥሮች የተዛማጅ ውስብስብ ሥሮች $\lambda = -\cfrac{1}{2}a \pm i\omega$ ይሆናሉ፣ እና ከእነርሱ ጋር የሚዛመዱ ሁለቱ የስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) ውስብስብ መፍትሄዎች</p>\[\begin{align*} e^{\lambda_1 x} &amp;= e^{-(a/2)x + i\omega x}, \\ e^{\lambda_2 x} &amp;= e^{-(a/2)x - i\omega x} \end{align*}\]<p>ን እናገኛለን። ነገር ግን በዚህ አጋጣሚም የማይምሳሌ እውነተኛ መፍትሄዎችን መሠረት እንደሚከተለው ማግኘት እንችላለን።</p><p>የኦይለር(Euler) ቀመር</p>\[e^{it} = \cos t + i\sin t \label{eqn:euler_formula}\tag{8}\]<p>እና በላዩ ውስጥ $t$ ቦታ $-t$ በማስገባት የምናገኘው</p>\[e^{-it} = \cos t - i\sin t\]<p>የሚለውን ሁለቱን ስሌቶች በየጎናቸው በመደመርና በመቀነስ የሚከተለውን እናገኛለን።</p>\[\begin{align*} \cos t &amp;= \frac{1}{2}(e^{it} + e^{-it}), \\ \sin t &amp;= \frac{1}{2i}(e^{it} - e^{-it}). \end{align*} \label{eqn:cos_and_sin}\tag{9}\]<p>እውነተኛ ክፍሉ $r$ እና ምናባዊ ክፍሉ $it$ የሆነ ውስብስብ ተለዋዋጭ $z = r + it$ ያለው ውስብስብ ኤክስፖነንሺያል ተግባር $e^z$ እውነተኛ ተግባሮቹን $e^r$, $\cos t$ እና $\sin t$ በመጠቀም እንደሚከተለው ልንገልጸው እንችላለን።</p>\[e^z = e^{r + it} = e^r e^{it} = e^r(\cos t + i\sin t) \label{eqn:complex_exp}\tag{10}\]<p>እዚህ $r=-\cfrac{1}{2}ax$, $t=\omega x$ ብለን ካስቀመጥን የሚከተለውን እንጽፋለን።</p>\[\begin{align*} e^{\lambda_1 x} &amp;= e^{-(a/2)x + i\omega x} = e^{-(a/2)x}(\cos{\omega x} + i\sin{\omega x}) \\ e^{\lambda_2 x} &amp;= e^{-(a/2)x - i\omega x} = e^{-(a/2)x}(\cos{\omega x} - i\sin{\omega x}) \end{align*}\]<p>በ<a href="/am/posts/homogeneous-linear-odes-of-second-order/#የልዕለት-መርህ">የልዕለት መርህ</a> መሠረት ከላይ ያሉት ውስብስብ መፍትሄዎች ድምርና በቋሚ ቁጥር መባዛት ደግሞ መፍትሄ ይሆናሉ። ስለዚህ ሁለቱን እኩልነቶች በየጎናቸው በመደመር ከዚያም በሁለቱም ጎኖች $\cfrac{1}{2}$ በመባዛት የመጀመሪያውን እውነተኛ መፍትሄ $y_1$ እንደሚከተለው እናገኛለን።</p>\[y_1 = e^{-(a/2)x} \cos{\omega x}. \label{eqn:basis_1}\tag{11}\]<p>በተመሳሳይ መንገድ ከመጀመሪያው እኩልነት ሁለተኛውን በየጎናቸው በመቀነስ ከዚያም በሁለቱም ጎኖች $\cfrac{1}{2i}$ በመባዛት ሁለተኛውን እውነተኛ መፍትሄ $y_2$ ማግኘት እንችላለን።</p>\[y_2 = e^{-(a/2)x} \sin{\omega x}. \label{eqn:basis_2}\tag{12}\]<p>$\cfrac{y_1}{y_2} = \cot{\omega x}$ ሲሆን ይህ ቋሚ አይደለም፣ ስለዚህ $y_1$ እና $y_2$ በሁሉም ክልሎች መስመራዊ ገለልተኛ ናቸው፤ በዚህም ምክንያት የስሌቱ ($\ref{eqn:ode_with_constant_coefficients}$) እውነተኛ መፍትሄዎች መሠረትን ይፈጥራሉ። ከዚህም የሚከተለውን አጠቃላይ መፍትሄ</p>\[y = e^{-ax/2}(A\cos{\omega x} + B\sin{\omega x}) \quad \text{(}A,\, B\text{ ማንኛውም ቋሚዎች ናቸው)} \label{eqn:general_sol_3}\tag{13}\]<p>እናገኛለን።</p>]]> </content> </entry> <entry><title xml:lang="am">በJekyll ብሎግ ላይ በPolyglot ብዙ ቋንቋ ድጋፍ የሚደረግበት መንገድ (3) - የChirpy ገጽታ የbuild አልተሳካም እና የፍለጋ ባህሪ ስህተቶች መፍትሄ</title><link href="https://www.yunseo.kim/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="en" /><link href="https://www.yunseo.kim/ko/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="ko" /><link href="https://www.yunseo.kim/ja/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="ja" /><link href="https://www.yunseo.kim/zh-TW/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="zh-TW" /><link href="https://www.yunseo.kim/es/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="es" /><link href="https://www.yunseo.kim/pt-BR/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="pt-BR" /><link href="https://www.yunseo.kim/fr/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="fr" /><link href="https://www.yunseo.kim/de/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="de" /><link href="https://www.yunseo.kim/pl/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="pl" /><link href="https://www.yunseo.kim/cs/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="cs" /><link href="https://www.yunseo.kim/sw/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="sw" /><link href="https://www.yunseo.kim/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/" rel="alternate" type="text/html" hreflang="am" /><published>2025-02-05T00:00:00+09:00</published> <updated>2025-02-05T00:00:00+09:00</updated> <id>https://www.yunseo.kim/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-3/</id> <author> <name>Yunseo Kim</name> </author> <category term="Dev" /> <category term="Web Dev" /> <summary xml:lang="am">&apos;jekyll-theme-chirpy&apos; መሠረት ባለው የJekyll ብሎግ ላይ የPolyglot ፕላግን በመተግበር የብዙ ቋንቋ ድጋፍ የተፈጸመበትን ሂደት ያስተዋውቃል። ይህ ልጥፍ የዚህ ተከታታይ ሶስተኛው ክፍል ሲሆን፣ Polyglot በChirpy ገጽታ ላይ ሲተገበር የተፈጠሩ ስህተቶችን መንስኤ መለየትና መፍታትን ይመለከታል።</summary> <content type="html" xml:lang="am"> <![CDATA[<p>'jekyll-theme-chirpy' መሠረት ባለው የJekyll ብሎግ ላይ የPolyglot ፕላግን በመተግበር የብዙ ቋንቋ ድጋፍ የተፈጸመበትን ሂደት ያስተዋውቃል። ይህ ልጥፍ የዚህ ተከታታይ ሶስተኛው ክፍል ሲሆን፣ Polyglot በChirpy ገጽታ ላይ ሲተገበር የተፈጠሩ ስህተቶችን መንስኤ መለየትና መፍታትን ይመለከታል።</p><em><p>* Mathematical equations and diagrams included in posts may not display properly when viewed with a feed reader.</p></em><h2 id="አጠቃላይ-እይታ">አጠቃላይ እይታ</h2><p>በ12024 ዓ.ም. 7ኛ ወር መጀመሪያ ላይ፣ በJekyll ላይ የተመሠረተና በGithub Pages የሚስተናገድ ይህ ብሎግ ላይ <a href="https://github.com/untra/polyglot">Polyglot</a> ፕላግን በመተግበር የብዙ ቋንቋ ድጋፍ ታክሎበታል። ይህ ተከታታይ በChirpy ገጽታ ላይ የPolyglot ፕላግንን ሲተገብር የተፈጠሩ ብግኖችን እና የመፍትሄ ሂደታቸውን፣ እንዲሁም SEOን ከግምት ውስጥ ያስገባ የhtml ራስጌ እና sitemap.xml መጻፍ መንገድን ያካፍላል። ተከታታዩ ከ3 ጽሁፎች የተዋቀረ ሲሆን፣ እያነበቡት ያለው ይህ ጽሁፍ የተከታታዩ ሶስተኛው ነው።</p><ul><li>ክፍል 1: <a href="/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-1">የPolyglot ፕላግን መተግበር &amp; html ራስጌ እና sitemap ማስተካከል</a><li>ክፍል 2: <a href="/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-2">የቋንቋ ምርጫ አዝራር መተግበር &amp; የአቀማመጥ ቋንቋ አካባቢያዊ ማድረግ</a><li>ክፍል 3: የChirpy ገጽታ የbuild አልተሳካም እና የፍለጋ ባህሪ ስህተት መፍትሄ (ዋና ጽሁፍ)</ul><blockquote class="prompt-info"><p>መጀመሪያ ላይ በጠቅላላ 2 ክፍሎች እንዲሆን ተዘጋጅቶ ነበር፣ ነገር ግን በኋላ በርካታ ጊዜ ይዘቱ ሲደገፍ መጠኑ በጣም ስለጨመረ ወደ 3 ክፍሎች ተደርጎ ተደራጀ።</p></blockquote><h2 id="መስፈርቶች">መስፈርቶች</h2><ul class="task-list"><li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />የbuild ውጤቱ(ድረ ገጾች) በቋንቋ የተለዩ መንገዶች(ex. <code class="language-plaintext filepath highlighter-rouge">/posts/ko/</code>, <code class="language-plaintext filepath highlighter-rouge">/posts/ja/</code>) ሊቀርቡ ይገባል።<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />ለብዙ ቋንቋ ድጋፍ ተጨማሪ የሚፈልጉትን ጊዜና ጥረት በተቻለ መጠን ለመቀነስ፣ በተጻፈው የመነሻ markdown ፋይል YAML front matter ውስጥ <code class="language-plaintext highlighter-rouge">lang</code> እና <code class="language-plaintext highlighter-rouge">permalink</code> ታጎችን አንድ በአንድ ሳይገልጹ በbuild ጊዜ ፋይሉ በሚገኝበት አካባቢያዊ መንገድ(ex. <code class="language-plaintext filepath highlighter-rouge">/_posts/ko/</code>, <code class="language-plaintext filepath highlighter-rouge">/_posts/ja/</code>) መሠረት ቋንቋውን በራስ-ሰር ሊለይ ይገባል።<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />በጣቢያው ውስጥ ያሉ እያንዳንዱ ገጽ ራስጌ ክፍሎች ተገቢ የContent-Language ሜታ ታግ፣ hreflang አማራጭ ታጎች እና canonical link መያዝ አለባቸው እንዲሁም ለብዙ ቋንቋ ፍለጋ የGoogle SEO መመሪያዎችን ሊያሟሉ ይገባል።<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />በጣቢያው ውስጥ ያሉ የእያንዳንዱ ቋንቋ ስሪት ገጽ ማገናኛዎች ሳይቀሩ በ<code class="language-plaintext filepath highlighter-rouge">sitemap.xml</code> መቅረብ አለባቸው፣ እና <code class="language-plaintext filepath highlighter-rouge">sitemap.xml</code> ራሱ ድግግሞሽ ሳይኖርበት በroot መንገድ ላይ አንድ ብቻ ሊኖር ይገባል።<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" /><a href="https://github.com/cotes2020/jekyll-theme-chirpy">Chirpy ገጽታ</a> የሚሰጣቸው ሁሉም ባህሪያት በእያንዳንዱ ቋንቋ ገጽ ላይ በመደበኛነት መስራት አለባቸው፣ ካልሆነም እንዲሰሩ መሻሻል አለባቸው።<ul class="task-list"><li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />‘Recently Updated’, ‘Trending Tags’ ባህሪያት በመደበኛነት መስራት<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />በGitHub Actions የbuild ሂደት ውስጥ ስህተት እንዳይፈጠር<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />በብሎጉ ቀኝ ላይ ከላይ ያለው የፖስት ፍለጋ ባህሪ በመደበኛነት መስራት</ul></ul><h2 id="ከመጀመርዎ-በፊት">ከመጀመርዎ በፊት</h2><p>ይህ ጽሁፍ ከ<a href="/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-1">ክፍል 1</a> እና <a href="/am/posts/how-to-support-multi-language-on-jekyll-blog-with-polyglot-2">ክፍል 2</a> የሚቀጥል ስለሆነ፣ እስካሁን ካላነበቡት በመጀመሪያ ከቀደሙት ጽሁፎች ጀምረው እንዲያነቡ እመክራለሁ።</p><h2 id="ችግር-መፍትሄ-relative_url_regex-target-of-repeat-operator-is-not-specified">ችግር መፍትሄ (‘relative_url_regex’: target of repeat operator is not specified)</h2><p>(+ 12025.10.08. ዝማኔ) <a href="https://polyglot.untra.io/2025/09/20/polyglot.1.11.0/">ይህ ብግ በPolyglot 1.11 ስሪት ተፈትቷል</a>.</p><p>ከቀደሙት ደረጃዎች በኋላ <code class="language-plaintext highlighter-rouge">bundle exec jekyll serve</code> ትዕዛዝን በማስኬድ build ሙከራ ሲደረግ፣ <code class="language-plaintext highlighter-rouge">'relative_url_regex': target of repeat operator is not specified</code> የሚል ስህተት ተፈጥሮ የbuild ሂደቱ አልተሳካም።</p><div class="language-shell highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre><td class="rouge-code"><pre>...<span class="o">(</span>ከፊል ተዘለለ<span class="o">)</span>
                    <span class="nt">------------------------------------------------</span>
      Jekyll 4.3.4   Please append <span class="sb">`</span><span class="nt">--trace</span><span class="sb">`</span> to the <span class="sb">`</span>serve<span class="sb">`</span> <span class="nb">command 
                     </span><span class="k">for </span>any additional information or backtrace. 
                    <span class="nt">------------------------------------------------</span>
/Users/yunseo/.gem/ruby/3.2.2/gems/jekyll-polyglot-1.8.1/lib/jekyll/polyglot/
patches/jekyll/site.rb:234:in <span class="sb">`</span>relative_url_regex<span class="s1">': target of repeat operator 
is not specified: /href="?\/((?:(?!*.gem)(?!*.gemspec)(?!tools)(?!README.md)(
?!LICENSE)(?!*.config.js)(?!rollup.config.js)(?!package*.json)(?!.sass-cache)
(?!.jekyll-cache)(?!gemfiles)(?!Gemfile)(?!Gemfile.lock)(?!node_modules)(?!ve
ndor\/bundle\/)(?!vendor\/cache\/)(?!vendor\/gems\/)(?!vendor\/ruby\/)(?!en\/
)(?!ko\/)(?!es\/)(?!pt-BR\/)(?!ja\/)(?!fr\/)(?!de\/)[^,'</span><span class="s2">"</span><span class="se">\s\/</span><span class="s2">?.]+</span><span class="se">\.</span><span class="s2">?)*(?:</span><span class="se">\/</span><span class="s2">[^
</span><span class="se">\]\[</span><span class="s2">)("</span><span class="s1">'\s]*)?)"/ (RegexpError)

...(የቀረው ተዘለለ)
</span></pre></div></div><p>ተመሳሳይ ችግር ከዚህ በፊት ተመዝግቦ እንደነበር ለማየት ከፈለግሁ በኋላ፣ በPolyglot ሪፖዚቶሪ ውስጥ <a href="https://github.com/untra/polyglot/issues/204">በትክክል ተመሳሳይ ጉዳይ</a> እንደተመዘገበ እና መፍትሄውም እንዳለ አግኝቻለሁ።</p><p>በዚህ ብሎግ ላይ በሥራ ላይ የሚገኘው <a href="https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/_config.yml">የChirpy ገጽታ <code class="language-plaintext filepath highlighter-rouge">_config.yml</code></a> ፋይል ውስጥ የሚከተለው ኮድ አለ።</p><div file="\_config.yml" class="language-yml highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
</pre><td class="rouge-code"><pre><span class="na">exclude</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s2">"</span><span class="s">*.gem"</span>
  <span class="pi">-</span> <span class="s2">"</span><span class="s">*.gemspec"</span>
  <span class="pi">-</span> <span class="s">docs</span>
  <span class="pi">-</span> <span class="s">tools</span>
  <span class="pi">-</span> <span class="s">README.md</span>
  <span class="pi">-</span> <span class="s">LICENSE</span>
  <span class="pi">-</span> <span class="s2">"</span><span class="s">*.config.js"</span>
  <span class="pi">-</span> <span class="s">package*.json</span>
</pre></div></div><p>የችግሩ ምክንያት በ<a href="https://github.com/untra/polyglot/blob/master/lib/jekyll/polyglot/patches/jekyll/site.rb">Polyglot <code class="language-plaintext filepath highlighter-rouge">site.rb</code></a> ፋይል ውስጥ ያሉት የሚከተሉት ሁለት ተግባራት የregular expression አጻጻፍ በላይ እንደታየው <code class="language-plaintext highlighter-rouge">"*.gem"</code>, <code class="language-plaintext highlighter-rouge">"*.gemspec"</code>, <code class="language-plaintext highlighter-rouge">"*.config.js"</code> ያሉ ዋይልድካርድ ያላቸው የglobbing ንድፎችን በመደበኛነት ማስተናገድ አልቻሉም።</p><div file="(polyglot root path)/lib/jekyll/polyglot/patches/jekyll/site.rb" class="language-ruby highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
</pre><td class="rouge-code"><pre>    <span class="c1"># a regex that matches relative urls in a html document</span>
    <span class="c1"># matches href="baseurl/foo/bar-baz" href="/am/foo/bar-baz" and others like it</span>
    <span class="c1"># avoids matching excluded files.  prepare makes sure</span>
    <span class="c1"># that all @exclude dirs have a trailing slash.</span>
    <span class="k">def</span> <span class="nf">relative_url_regex</span><span class="p">(</span><span class="n">disabled</span> <span class="o">=</span> <span class="kp">false</span><span class="p">)</span>
      <span class="n">regex</span> <span class="o">=</span> <span class="s1">''</span>
      <span class="k">unless</span> <span class="n">disabled</span>
        <span class="vi">@exclude</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">x</span><span class="si">}</span><span class="s2">)"</span>
        <span class="k">end</span>
        <span class="vi">@languages</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">x</span><span class="si">}</span><span class="se">\/</span><span class="s2">)"</span>
        <span class="k">end</span>
      <span class="k">end</span>
      <span class="n">start</span> <span class="o">=</span> <span class="n">disabled</span> <span class="p">?</span> <span class="s1">'ferh'</span> <span class="p">:</span> <span class="s1">'href'</span>
      <span class="sr">%r{</span><span class="si">#{</span><span class="n">start</span><span class="si">}</span><span class="sr">="?</span><span class="si">#{</span><span class="vi">@baseurl</span><span class="si">}</span><span class="sr">/((?:</span><span class="si">#{</span><span class="n">regex</span><span class="si">}</span><span class="sr">[^,'"</span><span class="se">\s</span><span class="sr">/?.]+</span><span class="se">\.</span><span class="sr">?)*(?:/[^</span><span class="se">\]\[</span><span class="sr">)("'</span><span class="se">\s</span><span class="sr">]*)?)"}</span>
    <span class="k">end</span>

    <span class="c1"># a regex that matches absolute urls in a html document</span>
    <span class="c1"># matches href="http://baseurl/foo/bar-baz" and others like it</span>
    <span class="c1"># avoids matching excluded files.  prepare makes sure</span>
    <span class="c1"># that all @exclude dirs have a trailing slash.</span>
    <span class="k">def</span> <span class="nf">absolute_url_regex</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">disabled</span> <span class="o">=</span> <span class="kp">false</span><span class="p">)</span>
      <span class="n">regex</span> <span class="o">=</span> <span class="s1">''</span>
      <span class="k">unless</span> <span class="n">disabled</span>
        <span class="vi">@exclude</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">x</span><span class="si">}</span><span class="s2">)"</span>
        <span class="k">end</span>
        <span class="vi">@languages</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">x</span><span class="si">}</span><span class="se">\/</span><span class="s2">)"</span>
        <span class="k">end</span>
      <span class="k">end</span>
      <span class="n">start</span> <span class="o">=</span> <span class="n">disabled</span> <span class="p">?</span> <span class="s1">'ferh'</span> <span class="p">:</span> <span class="s1">'href'</span>
      <span class="sr">%r{(?&lt;!hreflang="</span><span class="si">#{</span><span class="vi">@default_lang</span><span class="si">}</span><span class="sr">" )</span><span class="si">#{</span><span class="n">start</span><span class="si">}</span><span class="sr">="?</span><span class="si">#{</span><span class="n">url</span><span class="si">}#{</span><span class="vi">@baseurl</span><span class="si">}</span><span class="sr">/((?:</span><span class="si">#{</span><span class="n">regex</span><span class="si">}</span><span class="sr">[^,'"</span><span class="se">\s</span><span class="sr">/?.]+</span><span class="se">\.</span><span class="sr">?)*(?:/[^</span><span class="se">\]\[</span><span class="sr">)("'</span><span class="se">\s</span><span class="sr">]*)?)"}</span>
    <span class="k">end</span>
</pre></div></div><p>ይህን ችግር ለመፍታት ሁለት መንገዶች አሉ።</p><h3 id="1-polyglotን-fork-ካደረጉ-በኋላ-ችግሩ-ያለበትን-ክፍል-አስተካክለው-መጠቀም">1. Polyglotን fork ካደረጉ በኋላ ችግሩ ያለበትን ክፍል አስተካክለው መጠቀም</h3><p>ይህን ጽሁፍ በምጽፍበት ጊዜ(12024.11.) መሠረት <a href="https://jekyllrb.com/docs/configuration/options/#global-configuration">የJekyll ኦፊሴላዊ ሰነዶች</a> የ<code class="language-plaintext highlighter-rouge">exclude</code> ቅንብር የglobbing ንድፎችን መጠቀም እንደሚደግፍ በግልጽ ይገልጻሉ።</p><blockquote><p>“This configuration option supports Ruby’s File.fnmatch filename globbing patterns to match multiple entries to exclude.”</p></blockquote><p>ማለትም፣ የችግሩ መንስኤ Chirpy ገጽታ አይደለም፤ ይልቁንም በPolyglot ውስጥ ያሉ <code class="language-plaintext highlighter-rouge">relative_url_regex()</code>, <code class="language-plaintext highlighter-rouge">absolute_url_regex()</code> ሁለቱ ተግባራት ናቸው፣ ስለዚህ ችግር እንዳይፈጠር በሚገባ ማስተካከል መሠረታዊ መፍትሄ ነው።</p><p><del>በPolyglot ውስጥ ይህ ብግ ገና አልተፈታም፣</del> ላይ እንደተገለጸው <a href="https://polyglot.untra.io/2025/09/20/polyglot.1.11.0/">ከPolyglot 1.11 ስሪት ጀምሮ ይህ ችግር ተፈትቷል</a>. ችግሩ በወቅቱ ሲፈጠር ግን <del><a href="https://hionpu.com/posts/github_blog_4#4-polyglot-%EC%9D%98%EC%A1%B4%EC%84%B1-%EB%AC%B8%EC%A0%9C">ይህን ብሎግ ጽሁፍ</a>(ጣቢያው ጠፍቷል) እና</del> <a href="https://github.com/untra/polyglot/issues/204#issuecomment-2143270322">በላይ በተጠቀሰው የGitHub issue ላይ የተጻፈውን መልስ</a> በመመርኮዝ Polyglot ሪፖዚቶሪን fork ካደረግሁ በኋላ ችግሩ ያለበትን ክፍል እንደሚከተለው በማስተካከል ከመነሻው Polyglot ይልቅ ተጠቅሜ መፍትሄ ማግኘት ተችሏል።</p><div file="(polyglot root path)/lib/jekyll/polyglot/patches/jekyll/site.rb" class="language-ruby highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre><td class="rouge-code"><pre>    <span class="k">def</span> <span class="nf">relative_url_regex</span><span class="p">(</span><span class="n">disabled</span> <span class="o">=</span> <span class="kp">false</span><span class="p">)</span>
      <span class="n">regex</span> <span class="o">=</span> <span class="s1">''</span>
      <span class="k">unless</span> <span class="n">disabled</span>
        <span class="vi">@exclude</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">escaped_x</span> <span class="o">=</span> <span class="no">Regexp</span><span class="p">.</span><span class="nf">escape</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">escaped_x</span><span class="si">}</span><span class="s2">)"</span>
        <span class="k">end</span>
        <span class="vi">@languages</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">escaped_x</span> <span class="o">=</span> <span class="no">Regexp</span><span class="p">.</span><span class="nf">escape</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">escaped_x</span><span class="si">}</span><span class="se">\/</span><span class="s2">)"</span>
        <span class="k">end</span>
      <span class="k">end</span>
      <span class="n">start</span> <span class="o">=</span> <span class="n">disabled</span> <span class="p">?</span> <span class="s1">'ferh'</span> <span class="p">:</span> <span class="s1">'href'</span>
      <span class="sr">%r{</span><span class="si">#{</span><span class="n">start</span><span class="si">}</span><span class="sr">="?</span><span class="si">#{</span><span class="vi">@baseurl</span><span class="si">}</span><span class="sr">/((?:</span><span class="si">#{</span><span class="n">regex</span><span class="si">}</span><span class="sr">[^,'"</span><span class="se">\s</span><span class="sr">/?.]+</span><span class="se">\.</span><span class="sr">?)*(?:/[^</span><span class="se">\]\[</span><span class="sr">)("'</span><span class="se">\s</span><span class="sr">]*)?)"}</span>
    <span class="k">end</span>

    <span class="k">def</span> <span class="nf">absolute_url_regex</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">disabled</span> <span class="o">=</span> <span class="kp">false</span><span class="p">)</span>
      <span class="n">regex</span> <span class="o">=</span> <span class="s1">''</span>
      <span class="k">unless</span> <span class="n">disabled</span>
        <span class="vi">@exclude</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">escaped_x</span> <span class="o">=</span> <span class="no">Regexp</span><span class="p">.</span><span class="nf">escape</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">escaped_x</span><span class="si">}</span><span class="s2">)"</span>
        <span class="k">end</span>
        <span class="vi">@languages</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">x</span><span class="o">|</span>
          <span class="n">escaped_x</span> <span class="o">=</span> <span class="no">Regexp</span><span class="p">.</span><span class="nf">escape</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
          <span class="n">regex</span> <span class="o">+=</span> <span class="s2">"(?!</span><span class="si">#{</span><span class="n">escaped_x</span><span class="si">}</span><span class="se">\/</span><span class="s2">)"</span>
        <span class="k">end</span>
      <span class="k">end</span>
      <span class="n">start</span> <span class="o">=</span> <span class="n">disabled</span> <span class="p">?</span> <span class="s1">'ferh'</span> <span class="p">:</span> <span class="s1">'href'</span>
      <span class="sr">%r{(?&lt;!hreflang="</span><span class="si">#{</span><span class="vi">@default_lang</span><span class="si">}</span><span class="sr">" )</span><span class="si">#{</span><span class="n">start</span><span class="si">}</span><span class="sr">="?</span><span class="si">#{</span><span class="n">url</span><span class="si">}#{</span><span class="vi">@baseurl</span><span class="si">}</span><span class="sr">/((?:</span><span class="si">#{</span><span class="n">regex</span><span class="si">}</span><span class="sr">[^,'"</span><span class="se">\s</span><span class="sr">/?.]+</span><span class="se">\.</span><span class="sr">?)*(?:/[^</span><span class="se">\]\[</span><span class="sr">)("'</span><span class="se">\s</span><span class="sr">]*)?)"}</span>
    <span class="k">end</span>
</pre></div></div><h3 id="2-በchirpy-ገጽታ-_configyml-ቅንብር-ፋይል-ውስጥ-ያሉ-የglobbing-ንድፎችን-በትክክለኛ-የፋይል-ስሞች-መተካት">2. በChirpy ገጽታ ‘_config.yml’ ቅንብር ፋይል ውስጥ ያሉ የglobbing ንድፎችን በትክክለኛ የፋይል ስሞች መተካት</h3><p>በእርግጥ መደበኛና ተስማሚ መንገድ ይህ ፓች በPolyglot ዋና ፕሮጀክት ውስጥ እንዲካተት መሆኑ ነው። ነገር ግን እስከዚያ ድረስ fork የተደረገውን ስሪት መጠቀም ያስፈልጋል፤ ይህ ግን Polyglot upstream በሚዘምን ጊዜ ሁሉ ያን ዝማኔ ሳይቀር መከታተል እና ማካተት አስቸጋሪ ስለሆነ እኔ ሌላ መንገድ ተጠቀምሁ።</p><p>በ<a href="https://github.com/cotes2020/jekyll-theme-chirpy">Chirpy ገጽታ ሪፖዚቶሪ</a> ውስጥ በፕሮጀክት root መንገድ ላይ ያሉ ፋይሎች መካከል <code class="language-plaintext highlighter-rouge">"*.gem"</code>, <code class="language-plaintext highlighter-rouge">"*.gemspec"</code>, <code class="language-plaintext highlighter-rouge">"*.config.js"</code> ንድፎችን የሚመለከቱትን ፋይሎች ብንመለከት በእርግጥ ከታች ያሉት 3 ብቻ ናቸው።</p><ul><li><code class="language-plaintext filepath highlighter-rouge">jekyll-theme-chirpy.gemspec</code><li><code class="language-plaintext filepath highlighter-rouge">purgecss.config.js</code><li><code class="language-plaintext filepath highlighter-rouge">rollup.config.js</code></ul><p>ስለዚህ <code class="language-plaintext filepath highlighter-rouge">_config.yml</code> ፋይል ውስጥ ባለው <code class="language-plaintext highlighter-rouge">exclude</code> ኮድ ከglobbing ንድፎች አስወግደው እንደሚከተለው ቢተኩት Polyglot ያለምንም ችግር ሊያስተናግደው ይችላል።</p><div file="\_config.yml" class="language-yml highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
</pre><td class="rouge-code"><pre><span class="na">exclude</span><span class="pi">:</span> <span class="c1"># የተሻሻለው https://github.com/untra/polyglot/issues/204 ጉዳይን በማጣቀስ ነው።</span>
  <span class="c1"># - "*.gem"</span>
  <span class="pi">-</span> <span class="s">jekyll-theme-chirpy.gemspec</span> <span class="c1"># - "*.gemspec"</span>
  <span class="pi">-</span> <span class="s">tools</span>
  <span class="pi">-</span> <span class="s">README.md</span>
  <span class="pi">-</span> <span class="s">LICENSE</span>
  <span class="pi">-</span> <span class="s">purgecss.config.js</span> <span class="c1"># - "*.config.js"</span>
  <span class="pi">-</span> <span class="s">rollup.config.js</span>
  <span class="pi">-</span> <span class="s">package*.json</span>
</pre></div></div><h2 id="የፍለጋ-ባህሪ-ማስተካከል">የፍለጋ ባህሪ ማስተካከል</h2><p>ከቀደሙት ደረጃዎች በኋላ አብዛኞቹ የጣቢያው ባህሪያት ተፈለገው እንደነበረው በጣም አርኪ ሁኔታ እንደሚሰሩ ታየ። ነገር ግን፣ በChirpy ገጽታ ያለው ገጽ በቀኝ ላይ ከላይ የሚገኘው የፍለጋ አሞሌ ከ<code class="language-plaintext highlighter-rouge">site.default_lang</code>(በዚህ ብሎግ ሁኔታ እንግሊዝኛ) ውጪ ባሉ ቋንቋዎች የተጻፉ ገጾችን መረጃ ማድረግ እንደማይችል፣ እንዲሁም ከእንግሊዝኛ ውጪ ባሉ ቋንቋ ገጾች ላይ ፍለጋ ሲደረግ የፍለጋ ውጤት እንግሊዝኛ ገጽ ማገናኛዎችን እንደሚያሳይ በኋላ ተገነዘብሁ።</p><p>ምክንያቱን ለማወቅ፣ በፍለጋ ባህሪው ውስጥ የሚሳተፉት ፋይሎች ምን እንደሆኑ እና ከእነዚህ መካከል ችግሩ በየት እንደሚፈጠር እንመልከት።</p><h3 id="_layoutsdefaulthtml">‘_layouts/default.html’</h3><p>በብሎጉ ውስጥ ያሉ ሁሉንም ገጾች አወቃቀር የሚያስተናግደው <a href="https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/_layouts/default.html"><code class="language-plaintext filepath highlighter-rouge">_layouts/default.html</code></a> ፋይል ውስጥ፣ በ<code class="language-plaintext highlighter-rouge">&lt;body&gt;</code> ኤለመንት ውስጥ <code class="language-plaintext filepath highlighter-rouge">search-results.html</code> እና <code class="language-plaintext filepath highlighter-rouge">search-loader.html</code> የሚባሉ ፋይሎች ይጫናሉ መሆኑን ማረጋገጥ ይቻላል።</p><div file="\_layouts/default.html" class="language-liquid highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre><td class="rouge-code"><pre>  &lt;body&gt;
    <span class="cp">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>sidebar.html<span class="w"> </span><span class="na">lang</span><span class="o">=</span><span class="nv">lang</span><span class="w"> </span><span class="cp">%}</span>

    &lt;div id="main-wrapper" class="d-flex justify-content-center"&gt;
      &lt;div class="container d-flex flex-column px-xxl-5"&gt;
        
        (...መካከለኛ ክፍል ተዘለለ...)

        <span class="cp">{%</span><span class="w"> </span><span class="nt">include_cached</span><span class="w"> </span><span class="nv">search-results</span><span class="p">.</span><span class="nv">html</span><span class="w"> </span><span class="na">lang</span><span class="o">=</span><span class="nv">lang</span><span class="w"> </span><span class="cp">%}</span>
      &lt;/div&gt;

      &lt;aside aria-label="Scroll to Top"&gt;
        &lt;button id="back-to-top" type="button" class="btn btn-lg btn-box-shadow"&gt;
          &lt;i class="fas fa-angle-up"&gt;&lt;/i&gt;
        &lt;/button&gt;
      &lt;/aside&gt;
    &lt;/div&gt;

    (...መካከለኛ ክፍል ተዘለለ...)

    <span class="cp">{%</span><span class="w"> </span><span class="nt">include_cached</span><span class="w"> </span><span class="nv">search-loader</span><span class="p">.</span><span class="nv">html</span><span class="w"> </span><span class="na">lang</span><span class="o">=</span><span class="nv">lang</span><span class="w"> </span><span class="cp">%}</span>
  &lt;/body&gt;
</pre></div></div><h3 id="_includessearch-resulthtml">‘_includes/search-result.html’</h3><p><a href="https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/_includes/search-results.html"><code class="language-plaintext filepath highlighter-rouge">_includes/search-result.html</code></a> በፍለጋ መስኮቱ ውስጥ ቃል ሲገባ ለዚያ ቁልፍ ቃል የሚዛመዱ የፍለጋ ውጤቶች የሚቀመጡበት <code class="language-plaintext highlighter-rouge">search-results</code> ኮንቴነርን ያዋቅራል።</p><div file="\_includes/search-result.html" class="language-html highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
</pre><td class="rouge-code"><pre><span class="c">&lt;!-- The Search results --&gt;</span>

<span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"search-result-wrapper"</span> <span class="na">class=</span><span class="s">"d-flex justify-content-center d-none"</span><span class="nt">&gt;</span>
  <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"col-11 content"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"search-hints"</span><span class="nt">&gt;</span>
      {% include_cached trending-tags.html %}
    <span class="nt">&lt;/div&gt;</span>
    <span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"search-results"</span> <span class="na">class=</span><span class="s">"d-flex flex-wrap justify-content-center text-muted mt-3"</span><span class="nt">&gt;&lt;/div&gt;</span>
  <span class="nt">&lt;/div&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</pre></div></div><h3 id="_includessearch-loaderhtml">‘_includes/search-loader.html’</h3><p><a href="https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/_includes/search-loader.html"><code class="language-plaintext filepath highlighter-rouge">_includes/search-loader.html</code></a> በትክክል <a href="https://github.com/christian-fei/Simple-Jekyll-Search">Simple-Jekyll-Search</a> ቤተ-መጽሐፍት ላይ የተመሠረተ ፍለጋን የሚተገብረው ዋና ክፍል ነው፣ ይህም <a href="#assetsjsdatasearchjson"><code class="language-plaintext filepath highlighter-rouge">search.json</code></a> የindex ፋይል ውስጥ ካለው ይዘት ጋር የሚዛመዱ የገቡትን ቁልፍ ቃላት ፈልጎ ተዛማጅ የፖስት ማገናኛዎችን እንደ <code class="language-plaintext highlighter-rouge">&lt;article&gt;</code> ኤለመንት የሚመልስ JavaScript በጎብኚው አሳሽ ላይ እንደሚያስኬድ ስለሆነ Client-Side እንደሚሰራ መረዳት ይቻላል።</p><div file="\_includes/search-loader.html" class="language-js highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
</pre><td class="rouge-code"><pre><span class="p">{</span><span class="o">%</span> <span class="nx">capture</span> <span class="nx">result_elem</span> <span class="o">%</span><span class="p">}</span>
  <span class="o">&lt;</span><span class="nx">article</span> <span class="kd">class</span><span class="o">=</span><span class="dl">"</span><span class="s2">px-1 px-sm-2 px-lg-4 px-xl-0</span><span class="dl">"</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="nx">header</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="nx">h2</span><span class="o">&gt;&lt;</span><span class="nx">a</span> <span class="nx">href</span><span class="o">=</span><span class="dl">"</span><span class="s2">{url}</span><span class="dl">"</span><span class="o">&gt;</span><span class="p">{</span><span class="nx">title</span><span class="p">}</span><span class="o">&lt;</span><span class="sr">/a&gt;&lt;/</span><span class="nx">h2</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="nx">div</span> <span class="kd">class</span><span class="o">=</span><span class="dl">"</span><span class="s2">post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1</span><span class="dl">"</span><span class="o">&gt;</span>
        <span class="p">{</span><span class="nx">categories</span><span class="p">}</span>
        <span class="p">{</span><span class="nx">tags</span><span class="p">}</span>
      <span class="o">&lt;</span><span class="sr">/div</span><span class="err">&gt;
</span>    <span class="o">&lt;</span><span class="sr">/header</span><span class="err">&gt;
</span>    <span class="o">&lt;</span><span class="nx">p</span><span class="o">&gt;</span><span class="p">{</span><span class="nx">snippet</span><span class="p">}</span><span class="o">&lt;</span><span class="sr">/p</span><span class="err">&gt;
</span>  <span class="o">&lt;</span><span class="sr">/article</span><span class="err">&gt;
</span><span class="p">{</span><span class="o">%</span> <span class="nx">endcapture</span> <span class="o">%</span><span class="p">}</span>

<span class="p">{</span><span class="o">%</span> <span class="nx">capture</span> <span class="nx">not_found</span> <span class="o">%</span><span class="p">}</span><span class="o">&lt;</span><span class="nx">p</span> <span class="kd">class</span><span class="o">=</span><span class="dl">"</span><span class="s2">mt-5</span><span class="dl">"</span><span class="o">&gt;</span><span class="p">{{</span> <span class="nx">site</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">locales</span><span class="p">[</span><span class="nx">include</span><span class="p">.</span><span class="nx">lang</span><span class="p">].</span><span class="nx">search</span><span class="p">.</span><span class="nx">no_results</span> <span class="p">}}</span><span class="o">&lt;</span><span class="sr">/p&gt;{% endcapture %</span><span class="err">}
</span>
<span class="o">&lt;</span><span class="nx">script</span><span class="o">&gt;</span>
  <span class="p">{</span><span class="o">%</span> <span class="nx">comment</span> <span class="o">%</span><span class="p">}</span> <span class="nl">Note</span><span class="p">:</span> <span class="nx">dependent</span> <span class="nx">library</span> <span class="nx">will</span> <span class="nx">be</span> <span class="nx">loaded</span> <span class="k">in</span> <span class="s2">`js-selector.html`</span> <span class="p">{</span><span class="o">%</span> <span class="nx">endcomment</span> <span class="o">%</span><span class="p">}</span>
  <span class="nb">document</span><span class="p">.</span><span class="nf">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">DOMContentLoaded</span><span class="dl">'</span><span class="p">,</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="p">{</span>
    <span class="nc">SimpleJekyllSearch</span><span class="p">({</span>
      <span class="na">searchInput</span><span class="p">:</span> <span class="nb">document</span><span class="p">.</span><span class="nf">getElementById</span><span class="p">(</span><span class="dl">'</span><span class="s1">search-input</span><span class="dl">'</span><span class="p">),</span>
      <span class="na">resultsContainer</span><span class="p">:</span> <span class="nb">document</span><span class="p">.</span><span class="nf">getElementById</span><span class="p">(</span><span class="dl">'</span><span class="s1">search-results</span><span class="dl">'</span><span class="p">),</span>
      <span class="na">json</span><span class="p">:</span> <span class="dl">'</span><span class="s1">{{ </span><span class="dl">'</span><span class="o">/</span><span class="nx">assets</span><span class="o">/</span><span class="nx">js</span><span class="o">/</span><span class="nx">data</span><span class="o">/</span><span class="nx">search</span><span class="p">.</span><span class="nx">json</span><span class="dl">'</span><span class="s1"> | relative_url }}</span><span class="dl">'</span><span class="p">,</span>
      <span class="na">searchResultTemplate</span><span class="p">:</span> <span class="dl">'</span><span class="s1">{{ result_elem | strip_newlines }}</span><span class="dl">'</span><span class="p">,</span>
      <span class="na">noResultsText</span><span class="p">:</span> <span class="dl">'</span><span class="s1">{{ not_found }}</span><span class="dl">'</span><span class="p">,</span>
      <span class="na">templateMiddleware</span><span class="p">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">template</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">if </span><span class="p">(</span><span class="nx">prop</span> <span class="o">===</span> <span class="dl">'</span><span class="s1">categories</span><span class="dl">'</span><span class="p">)</span> <span class="p">{</span>
          <span class="k">if </span><span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="dl">''</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="s2">`</span><span class="p">${</span><span class="nx">value</span><span class="p">}</span><span class="s2">`</span><span class="p">;</span>
          <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">return</span> <span class="s2">`&lt;div class="me-sm-4"&gt;&lt;i class="far fa-folder fa-fw"&gt;&lt;/i&gt;</span><span class="p">${</span><span class="nx">value</span><span class="p">}</span><span class="s2">&lt;/div&gt;`</span><span class="p">;</span>
          <span class="p">}</span>
        <span class="p">}</span>

        <span class="k">if </span><span class="p">(</span><span class="nx">prop</span> <span class="o">===</span> <span class="dl">'</span><span class="s1">tags</span><span class="dl">'</span><span class="p">)</span> <span class="p">{</span>
          <span class="k">if </span><span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="dl">''</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="s2">`</span><span class="p">${</span><span class="nx">value</span><span class="p">}</span><span class="s2">`</span><span class="p">;</span>
          <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="k">return</span> <span class="s2">`&lt;div&gt;&lt;i class="fa fa-tag fa-fw"&gt;&lt;/i&gt;</span><span class="p">${</span><span class="nx">value</span><span class="p">}</span><span class="s2">&lt;/div&gt;`</span><span class="p">;</span>
          <span class="p">}</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">});</span>
  <span class="p">});</span>
<span class="o">&lt;</span><span class="sr">/script</span><span class="err">&gt;
</span></pre></div></div><h3 id="assetsjsdatasearchjson">‘/assets/js/data/search.json’</h3><div file="/assets/js/data/search.json" class="language-liquid highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre><td class="rouge-code"><pre>---
layout: compress
swcache: true
---

[
  <span class="cp">{%</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="w"> </span><span class="cp">%}</span>
  {
    "title": <span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">jsonify</span><span class="w"> </span><span class="cp">}}</span>,
    "url": <span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">relative_url</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">jsonify</span><span class="w"> </span><span class="cp">}}</span>,
    "categories": <span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">categories</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">join</span><span class="p">:</span><span class="w"> </span><span class="s1">', '</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">jsonify</span><span class="w"> </span><span class="cp">}}</span>,
    "tags": <span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">tags</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">join</span><span class="p">:</span><span class="w"> </span><span class="s1">', '</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">jsonify</span><span class="w"> </span><span class="cp">}}</span>,
    "date": "<span class="cp">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="cp">}}</span>",
    <span class="cp">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>no-linenos.html<span class="w"> </span><span class="na">content</span><span class="o">=</span><span class="nv">post</span><span class="p">.</span><span class="nv">content</span><span class="w"> </span><span class="cp">%}</span>
    <span class="cp">{%</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">_content</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">content</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">strip_html</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">strip_newlines</span><span class="w"> </span><span class="cp">%}</span>
    "snippet": <span class="cp">{{</span><span class="w"> </span><span class="nv">_content</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">truncate</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">jsonify</span><span class="w"> </span><span class="cp">}}</span>,
    "content": <span class="cp">{{</span><span class="w"> </span><span class="nv">_content</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">jsonify</span><span class="w"> </span><span class="cp">}}</span>
  }<span class="cp">{%</span><span class="w"> </span><span class="nt">unless</span><span class="w"> </span><span class="nb">forloop.last</span><span class="w"> </span><span class="cp">%}</span>,<span class="cp">{%</span><span class="w"> </span><span class="nt">endunless</span><span class="w"> </span><span class="cp">%}</span>
  <span class="cp">{%</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="cp">%}</span>
]
</pre></div></div><p>የJekyll Liquid አጻጻፍን በመጠቀም በጣቢያው ውስጥ ያሉ ሁሉንም ፖስቶች ርዕስ፣ URL፣ ካቴጎሪዎችና ታጎች መረጃ፣ የተጻፈበት ቀን፣ ከዋና ጽሁፉ ውስጥ የመጀመሪያ 200 ፊደላት ስኒፔት፣ እና ሙሉ ይዘቱን የያዘ JSON ፋይል ተገልጿል።</p><h3 id="የፍለጋ-ባህሪው-የሚሰራበት-መዋቅር-እና-ችግሩ-የሚፈጠርበትን-ክፍል-መለየት">የፍለጋ ባህሪው የሚሰራበት መዋቅር እና ችግሩ የሚፈጠርበትን ክፍል መለየት</h3><p>ማለትም በአጭሩ እንደምናጠቃልል፣ GitHub Pages ላይ Chirpy ገጽታ እየተስተናገደ ሲሆን የፍለጋ ባህሪው በሚከተለው ሂደት ይሰራል።</p><pre><code class="language-mermaid">stateDiagram
  state "Changes" as CH
  state "Build start" as BLD
  state "Create search.json" as IDX
  state "Static Website" as DEP
  state "In Test" as TST
  state "Search Loader" as SCH
  state "Results" as R
    
  [*] --&gt; CH: Make Changes
  CH --&gt; BLD: Commit &amp; Push origin
  BLD --&gt; IDX: jekyll build
  IDX --&gt; TST: Build Complete
  TST --&gt; CH: Error Detected
  TST --&gt; DEP: Deploy
  DEP --&gt; SCH: Search Input
  SCH --&gt; R: Return Results
  R --&gt; [*]
</code></pre><p>እዚህ <code class="language-plaintext filepath highlighter-rouge">search.json</code> በPolyglot እንደሚከተለው በእያንዳንዱ ቋንቋ እንደሚፈጠር ተረጋግጧል።</p><ul><li><code class="language-plaintext filepath highlighter-rouge">/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/ko/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/ja/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/zh-TW/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/es/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/pt-BR/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/fr/assets/js/data/search.json</code><li><code class="language-plaintext filepath highlighter-rouge">/de/assets/js/data/search.json</code></ul><p>ስለዚህ የችግሩ መንስኤ የሆነው ክፍል “Search Loader” ነው። ከእንግሊዝኛ ውጪ ያሉ ሌሎች ቋንቋ ስሪቶች ገጾች እንዳይፈለጉ የሚያደርገው ችግር፣ <code class="language-plaintext filepath highlighter-rouge">_includes/search-loader.html</code> ውስጥ በአሁኑ ጊዜ የሚታየው ገጽ ቋንቋ ምንም ይሁን ምን የእንግሊዝኛውን የindex ፋይል(<code class="language-plaintext filepath highlighter-rouge">/assets/js/data/search.json</code>) ብቻ በstatic መንገድ ስለሚጫን ነው።</p><blockquote class="prompt-warning"><ul><li>ነገር ግን markdown ወይም html ፋይሎች እንዳሉ አይደለም፤ JSON ፋይሎች ላይ <code class="language-plaintext highlighter-rouge">post.title</code>, <code class="language-plaintext highlighter-rouge">post.content</code> ያሉ በJekyll የሚሰጡ ተለዋዋጮች ላይ የPolyglot wrapper ይሰራል ነገር ግን <a href="https://github.com/untra/polyglot?tab=readme-ov-file#relativized-local-urls">Relativized Local Urls</a> ባህሪ የማይሰራ ይመስላል።<li>እንዲሁም JSON ፋይል template ውስጥ ከJekyll መደበኛ ተለዋዋጮች ውጪ <a href="https://github.com/untra/polyglot?tab=readme-ov-file#features">Polyglot በተጨማሪ የሚሰጣቸው <code class="language-plaintext highlighter-rouge">{{ site.default_lang }}</code>, <code class="language-plaintext highlighter-rouge">{{ site.active_lang }}</code> liquid tags</a> እንደማይደረስባቸው በሙከራ ሂደት ተረጋግጧል።</ul><p>ስለዚህ በindex ፋይሉ ውስጥ ያሉ <code class="language-plaintext highlighter-rouge">title</code>, <code class="language-plaintext highlighter-rouge">snippet</code>, <code class="language-plaintext highlighter-rouge">content</code> ያሉ እሴቶች በቋንቋ መሠረት በተለያዩ መንገዶች ይፈጠራሉ፣ ነገር ግን <code class="language-plaintext highlighter-rouge">url</code> እሴቱ ቋንቋውን ያላገናዘበ መደበኛ መንገድ ይመልሳል፣ እና ለዚህ “Search Loader” ክፍል ውስጥ ተገቢ አስተካክል መጨመር ያስፈልጋል።</p></blockquote><h3 id="ችግሩን-መፍታት">ችግሩን መፍታት</h3><p>ይህን ለመፍታት <code class="language-plaintext filepath highlighter-rouge">_includes/search-loader.html</code> ውስጥ ያለውን ይዘት እንደሚከተለው ማስተካከል ይበቃል።</p><div file="\_includes/search-loader.html" class="language-plaintext highlighter-rouge"><div class="highlight">class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</pre><td class="rouge-code"><pre>{% capture result_elem %}
  &lt;article class="px-1 px-sm-2 px-lg-4 px-xl-0"&gt;
    &lt;header&gt;
      {% if site.active_lang != site.default_lang %}
      &lt;h2&gt;&lt;a {% static_href %}href="/{{ site.active_lang }}{url}"{% endstatic_href %}&gt;{title}&lt;/a&gt;&lt;/h2&gt;
      {% else %}
      &lt;h2&gt;&lt;a href="{url}"&gt;{title}&lt;/a&gt;&lt;/h2&gt;
      {% endif %}

(...መካከለኛ ክፍል ተዘለለ...)

&lt;script&gt;
  {% comment %} Note: dependent library will be loaded in `js-selector.html` {% endcomment %}
  document.addEventListener('DOMContentLoaded', () =&gt; {
    {% assign search_path = '/assets/js/data/search.json' %}
    {% if site.active_lang != site.default_lang %}
      {% assign search_path = '/' | append: site.active_lang | append: search_path %}
    {% endif %}
    
    SimpleJekyllSearch({
      searchInput: document.getElementById('search-input'),
      resultsContainer: document.getElementById('search-results'),
      json: '{{ search_path | relative_url }}',
      searchResultTemplate: '{{ result_elem | strip_newlines }}',

(...የቀረው ተዘለለ)
</pre></div></div><ul><li><code class="language-plaintext highlighter-rouge">site.active_lang</code>(የአሁኑ ገጽ ቋንቋ) እና <code class="language-plaintext highlighter-rouge">site.default_lang</code>(የጣቢያው መደበኛ ቋንቋ) እኩል ካልሆኑ ከJSON ፋይሉ የሚጫነው የፖስት URL በፊት <code class="language-plaintext highlighter-rouge">"/{{ site.active_lang }}"</code> prefix እንዲጨመርበት የ<code class="language-plaintext highlighter-rouge">{% capture result_elem %}</code> ክፍሉ የliquid አጻጻፍ ተሻሽሏል።<li>በተመሳሳይ መንገድ፣ በbuild ሂደት ውስጥ የአሁኑ ገጽ ቋንቋን ከጣቢያው መደበኛ ቋንቋ ጋር እያነጻጸረ እኩል ከሆኑ መደበኛ መንገዱን(<code class="language-plaintext filepath highlighter-rouge">/assets/js/data/search.json</code>)፣ ካልሆኑ ደግሞ ከዚያ ቋንቋ ጋር የሚስማማውን መንገድ(e.g. <code class="language-plaintext filepath highlighter-rouge">/ko/assets/js/data/search.json</code>) <code class="language-plaintext highlighter-rouge">search_path</code> እንዲሆን የ<code class="language-plaintext highlighter-rouge">&lt;script&gt;</code> ክፍሉ ተሻሽሏል።</ul><p>እንዲህ አድርጎ ከማስተካከሉ በኋላ ድረ ገጹን እንደገና build ሲደረግ፣ የፍለጋ ውጤቶቹ በእያንዳንዱ ቋንቋ መሠረት በመደበኛነት እንደሚታዩ ተረጋግጧል።</p><blockquote class="prompt-tip"><p><code class="language-plaintext highlighter-rouge">{url}</code> በኋላ ፍለጋ ሲካሄድ በJS በJSON ፋይሉ ውስጥ ከተነበበው URL እሴት የሚተካበት ቦታ ነው እንጂ በbuild ጊዜ ላይ ትክክለኛ URL አይደለም፣ ስለዚህ Polyglot እንደ localization ዒላማ አይመለከተውም እና በቋንቋ መሠረት በቀጥታ መስተካከል አለበት። ችግሩ ግን እንዲህ ተስተካክሎ የተጻፈው <code class="language-plaintext highlighter-rouge">"/{{ site.active_lang }}{url}"</code> template በbuild ጊዜ relative URL እንደሆነ ይታወቃል፣ እና localization አስቀድሞ ቢጠናቀቅም Polyglot ይህን አያውቅም ስለዚህ እንደገና localization ለማድረግ ይሞክራል(e.g. <code class="language-plaintext filepath highlighter-rouge">"/ko/ko/posts/example-post"</code>)። ይህን ለመከላከል <a href="https://github.com/untra/polyglot?tab=readme-ov-file#disabling-url-relativizing"><code class="language-plaintext highlighter-rouge">{% static_href %}</code> tag</a> በግልጽ ተጠቅመናል።</p></blockquote>]]> </content> </entry> </feed>
