Есептеу әдістері - таным үрдісіндегі есептеу математикасының қажетті бөлімі.
Есептеу математикасының пайда болуындағы сандық әдістердің рөлі.
Есептеу математикасының әртүрлі халық шаруашылық аймағында практикалық қолданылуының болашақтылығы.
Әдебиеттер: [1], 6-13 б., [2] -[4], 13-16 б., [6], 8-13 б.
Дәріс №2 Алгебралық және трансценденттік теңдеулерді шешудің сандық әдістері
2. 1 Теңдеулерді шешу есебінің қойылымы
Теңдеуді шешу - оның түбірлері болатынын, егер бар болатын болса нешеу екенін және оларды белгілі дәлдікпен мәндерін анықтау.
\[F(x)=0\]
түріндегі сызықтық емес теңдеулердің түбірлерін табу есебі әртүрлі ғылыми зерттеулерде кездеседі (мұндағы
\[F(x)\]
- анықталған және шектеулі немесе шектеусіз
\[[a,b]\]
аралығында үздіксіз функция) . Сызықтық емес теңдеулерді екі класқа бөлуге болады: алгебралық және трансценденттік.
Алгебралық
теңдеулер деп тек алгебралық функцияларды ғана (бүтін, рационал, иррационал) қамтитын теңдеулерді айтады. Дербес жағдайда, көпмүше бүтін алгебралық теңдеу болып табылады. Басқадай функцияларды (тригонометриялық, көрсеткіштік, логарифмдік, және т. б. ) қамтитын теңдеулерді
трансценденттік
деп атайды.
Сызықтық емес теңдеулерді шешудің әдістері тура және итерациялық болып бөлінеді. Тура әдістер түбірлерді шекті қатынас (формула) түрінде жазуға мүмкіндік береді. Мектеп курсынан тригонометриялық, логарифмдік, көрсеткіштік, сонымен қатар қарапайым алгебралық теңдеулерді шешу үшін әдістер белгілі. Бірақ та тәжірибеде теңдеулердің мұндай әдістермен шешілмейтіндері де кездеседі. Оларды шешу үшін итерациялық әдістер пайдаланады, яғни тізбектелген жуықтау әдістері (сандық әдістер) .
Теңдеудің түбірлерін сандық әдіспен табу есебі екі кезеңнен тұрады: түбірлерді айыру, яғни түбірдің бір ғана мәнін қамтитын жеткілікті аз (сығылған) аймақтарды табу және түбірлерді анықтау, яғни қандайда бір аймақтағы түбірді белгілі дәлдікпен есептеу.
2. 2 Алгебралық және трансценденттік теңдеулердің түбірлерін айыру
Айталық бізге
\[F(x)=0\]
түріндегі теңдеу берілсін. Мұндағы
\[F({\boldsymbol{x}})\]
- алгебралық немесе трансценденттік функция. Егер біз
\[F(x)\]
функциясының графигін пайдалансақ, онда теңдеудің түбірлері жуықтап алғанда, абсцисса осімен қиылысу нүктелері болмақ. Есепті ықшамдау арқылы, берілген теңдеуді оған мәндес
\[f_{1}(x)=f_{2}(x)\]
теңдеуімен алмастыруға болады. Мұндай жағдайда
\[f_{!}(x)\]
және
\[f_{2}\left(x\right)\]
функцияларының графиктері салынып, Ох осіндегі осы графиктердің қиылысу нүктелерін көрсететін кесінділері белгіленеді.
Мысал 1.
\[\sin2x-\ln x=0\]
теңдеуінің түбірлерін айыру керек.
Түбірлерін графикалық түрде айыру үшін, оны оған мәндес
Түбірлерді айыру туралы есептерді шешу барысында келесі жайттардың пайдасы бар:
Егеркесіндісінде үздіксізфункциясы, оның шеткі нүктелерінде әртүрлі таңбалы мәндер қабылдаса (яғни) , онда берілген теңдеудің осы кесіндіде кем дегенде бір түбірі бар болады.
Егерфункциясы монотонды (кемімелі немесе өспелі) болса, кесіндісіндегі түбір жалғыз ғана болады.
Қарапайым жағдайда, түбірлерді графикалық айыруды қолмен еептеуге болады, кейде күрделі жағдайларда теңдеудің түбірі берілген кесіндіде болуын (санын) анықтауда компьютердің қолданбалы бағдарламасын пайдалануға немесе программалау тілінде программа құрастыруға болады.
Айталық
\[F(x)=0\]
теңдеуінің барлық түбірлері
\[\left[A;C\right]\]
кесіндісіне тиісті болсын, яғни
\[F(A)\chi F(C)<0\]
. Бізге теңдеудің түбірлерін айыру керек, яғни бір түбірден жататын барлық
\[\left[a;b\right]\subset\left[A;\,C\right]\]
кесінділерді көрсету керек.
\[F(x)\]
-тің мәнін
\[x=A\]
нүктесінен бастап оң жаққа қарай қандайда бір
\[{\mathcal{J}}_{\bar{\boldsymbol{I}}}\]
қадаммен қозғала отырып есептейміз.
\[F({\boldsymbol{x}})\]
-тің көршілес екі әртүрлі таңбалы мәндері пайда болған кезде, алынған кесіндіге түбір тиісті болатынын аламыз.
Теңдеудің шешімін программалау тілі көмегімен қарастырайық. Осыған сәйкес келетін алгоритмнің жалпы схемасын көрсетейік. Қойылған есептің нәтижесі экранда көрсетілген
\[\textstyle{X_{1}}\]
және
\[X_{2}\]
параметрлерінің мәндері (белгіленген кесіндінің шеткі нүктелері) болады.
мүмкін қателігі беріледі. Түбірлерді анықтау үрдісінде олардың
қателігінен үлкен емес жуық мәндерін табуды талап етеді.
Айталық теңдеудің
\[[a,b]\]
кесіндісінде бір түбірі бар болсын, яғни
\[F(x)\]
функциясы осы кесіндіде үздіксіз.
\[[a,b]\]
кесіндісін
\[{\tilde{n}}={\frac{a+b}{2}}\]
нүктесімен жартылай бөлеміз.
\[F({\boldsymbol{x}})\]
функциясының
\[[a,c]\]
және
\[\textstyle\left[{\widetilde{l}},\ J\right]\]
кесінділерінің шеткі нүктелеріндегі мәндерін зерттейміз, яғни
\[a,\,c,\,b\]
нүктелерінде. Егер
\[F(c)\neq0\]
болса, онда екі жағдай болуы мүмкін:
\[F(x)\]
функциясы
\[[a,c]\]
кесіндісінде немесе
\[\textstyle\left[{\widetilde{l}},\ J\right]\]
кесіндісінде таңбасын ауыстырады (2. 6-сурет) .
Функцияның таңбасы ауыспайтын кесіндіні алып тастап, таңбасы ауысатын кесіндіні таңдап алып (өйткені, ол аралықта ізделінді түбір жатыр), оны жаңа кесінді ретінде қарастырамыз. Жартылай бөлу үрдісін жалғастыра отырып, теңдеудің түбірі тиісті болатын ең кіші кесіндіге келеміз.
Айталық анықтық үшін
\[F(a)<0,\,F(b)>0\]
болсын.
Бастапқы жуық түбір ретінде
\[\tilde{n}_{0}=\frac{a+b}{2}\]
аламыз. Қарастырылған жағдайда
\[F({\bar{n}}_{0})<0\]
, онда
\[\tilde{\cal H}_{0}\;<\tilde{n}<\mathcal{I}\]
және
\[\left[{\widetilde{n}}_{0},\,b\right]\]
кесіндісін ғана қарастырамыз. Келесі жуықтау:
\[{\tilde{n}}_{1}={\frac{c_{0}+b}{2}}\]
. Мұнда
\[\textstyle\left[{\tilde{n}}_{1}\,,\,b\right]\]
кесіндісін алып тастаймыз, өйткені
\[F({\bar{n}}_{1})>0\]
және
\[F(b)>0\]
, яғни
\[{\tilde{n}}_{0}\prec{\tilde{n}}
. Осыған ұқсас басқа жуықтауларды табамыз:
\[\tilde{n}_{2}=\frac{c_{0}+c_{1}}{2}\]
және т. б.
Жуықтау үрдісін
\[F({\boldsymbol{x}})\]
функциясының модульімен алынған мәні берілген
ең аз санынан аз болғанша жалғастырамыз, яғни
\[|F({\bar{n}}_{n})|<\varepsilon\]
.
Төмендегі суретте теңдеудің түбірін кесіндіні жартылай бөлу әдісімен табудағы итерациялық үрдістің блок-схемасын ұсынамыз. Мұнда кесіндіні сығу
\[{\mathcal Q}\,\]
және
\[\mathit{\mathcal{I}}\]
шектерін ағымдық
\[{\boldsymbol{C}}\]
түбіріне ауыстырумен жүргізіледі.
Сонымен қатар алынған кесіндінің ұзындығын бағалауға болады: егер ол
мүмкін қателігінен кіші болса, есептеу тоқтатылады, яғни
\[b-a<\varepsilon\]
.
Төмендегі суретте теңдеудің түбірін кесіндіні жартылай бөлу әдісімен табудағы итерациялық үрдістің блок-схемасын ұсынамыз. Мұнда кесіндіні сығу
\[{\mathcal Q}\,\]
және
\[\mathit{\mathcal{J}}\]
шектерін ағымдық
\[{\boldsymbol{C}}\]
түбіріне ауыстырумен жүргізіледі.
Мысал 3.
\[\sin2x-\ln x=0\]
теңдеуінің
\[\left[1,3;1,5\right]\]
кесіндісінде бір түбірі бар. Осы теңдеуді
\[1\cdot10^{-4}\]
дәлдігіне дейін жартылай бөлу әдісімен компьютердің программасы көмегімен шешейік.
Алгоритмнің блок-схемасына сәйкес Turbo Pascal тілінде программа мынадай болады:
Программаның орындалу нәтижесі:
Тапсырма 2.
Жартылай бөлу әдісімен берілген теңдеудің бір түбірін 10
-3
дәлдікпен есепте:
а) Есептеме кестенің көмегімен;
б) Прграммалау тілінің көмегімен.
Есептің берілгендерін 1-тапсырмадан алыңыз.
2. 4 Ньютон әдістері
Жартылай бөлу әдісімен қатар күрделі және тиімді итерациялық әдістер бар. Бұл әдістерге Ньютон есімімен байланысқан әдістердің тобы қатысады. Олардың екеуін қарастырайық: жанама әдісі және хорда (қиюшы) әдісі. Бл әдістердің екеуі де мынадай тәсілге негізделген.
\[F(x)=0\]
теңдеуінің
\[\left[a;\,b\right]\]
кесіндісінде жалғыз түбірі бар болсын. Оны оған мәндес теңдеуге түрлендіреміз:
кесіндісін қарастырмаймыз. Келесі итерация
АВ
1
хордасымен абсцисса осінің қиылысу нүктесі болатын жаңа
\[{\mathcal{C}}_{1}\]
жуықтауын анықтаудан тұрады және т. с. с. Итерациялық үрдіс
шарты орындалғанша жалғастырылады.
Хорда әдісінің блок-схемасы
Тапсырма 3.
Берілген теңдеудің бір түбірін 10
-6
дәлдікпен Ньютон әдістерінің бірін пайдаланып, программалау тілінің көмегімен есепте. Есептің берілгендерін 1-тапсырмадан алыңыз.
Дәріс №3 Сызықтық теңдеулер жүйесін шешудің сандық әдістері
3. 1 Сызықтық жүйелер
Көптеген қолданбалы және таза математикалық есептер жиыны сызықтық алгебралық жүйелерді шешудің қажеттілігіне әкеледі. Сызықтық теңдеулер жүйесін шешу есептеу математикасының қажетті есептерінің бірі болып табылады.