Решение уравнений (Презентации)
Описание файла
Файл "Решение уравнений" внутри архива находится в папке "Презентации". PDF-файл из архива "Презентации", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
Ðåøåíèå óðàâíåíèéÇàìå÷àíèå×èñëåííîìó ðåøåíèþ óðàâíåíèÿ f (x) = 0 äîëæíî áûòü ïðåäøåñòâîâàòü õîòÿ áû ãðóáîå èññëåäîâàíèå âîïðîñîâ ñóùåñòâîâàíèÿ, ïîëîæåíèÿ êîðíåé èèõ îöåíêè. Óäîáíûì èíñòðóìåíòîì äëÿ ýòîãî ÿâëÿåòñÿ ïðîãðàììà Maxima.Ìåòîä äèõîòîìèèÌåòîä ïðåäíàçíà÷åí äëÿ íàõîæäåíèÿ êîðíÿ óðàâíåíèÿ f (x) = 0, ãäå f (x) íåïðåðûâíàÿ íà îòðåçêå[a, b] ôóíêöèÿ, óäîâëåòâîðÿþùàÿ óñëîâèþf (a) · f (b) < 0.Äëÿ íàõîæäåíèÿ êîðíÿ îòðåçîê [a, b] äåëèòñÿ ïîïîëàì è âûáèðàåòñÿ òîò ïîëóèíòåðâàë, íà êîíöàõêîòîðîãî çíàêè f (x) ðàçíûå. Çàòåì ïðîöåññ äåëåíèÿ ïîâòîðÿåòñÿ äî òåõ ïîð, ïîêà äëèíà èíòåðâàëàíå ñòàíåò äîñòàòî÷íî ìàëà.Ïðîâåðêà ïðèìåíèìîñòè ìåòîäàÅñëè íà÷àëüíîå óñëîâèå f (a) · f (b) < 0 íå âûïîëíåíî, òî ïðîãðàììà äîëæíà ïðåêðàùàòü ðàáîòóè ïå÷àòàòü ñîîáùåíèå î íåâîçìîæíîñòè íàõîæäåíèÿ êîðíÿ äàííûì ìåòîäîì.Ìîäåëüc=a+b2Åñëè çíàê f (c) ñîâïàäàåò ñî çíàêîì f (a),òî èçìåíÿåòñÿ çíà÷åíèå a, â ïðîòèâíîìñëó÷àå, èçìåíÿåòñÿ b.Îñíîâíîé öèêëÏåðåìåííàÿ epsçàäàåòòî÷íîñòüðåøåíèÿ: ïðîãðàììàäîëæíà ïðåêðàòèòüðàáîòó, åñëè äëèíàîòðåçêà [a, b] ñòàíåòìåíüøå eps.while ( b-a > eps )c = (a+b)/2if f(a)*f(c)> 0a = celseb = cendendÇàìå÷àíèå î òî÷íîñòè×òîáû áûòü óâåðåííûìè â äâóõ çíàêàõ ïîñëå çàïÿòîé, äëèíà èíòåðâàëà, íà êîòîðîì èøåòñÿ êîðåíü,íå äîëæíà ïðåâûøàòü 0,001.
Íàïðèìåð, ïóñòü â ìîìåíò îêîí÷àíèÿ ðàáîòû ïðîãðàììû a = 2.713; b= 2,714, òîãäà b-a <= 0.001. Ìû ìîæåì íàïå÷àòàòü êàê a, òàê è b ëþáîå èç ýòèõ çíà÷åíèé äàñòíàì äâà âåðíûõ çíàêà.Ïðîãðàììàdef f(x) return Math.exp(x)-2 enda, b, eps = 0.0, 10.0, 0.001if f(a)*f(b)>0 thenputs "Ìåòîä íåïðèìåíèì"exitendwhile (b-a > eps)c = (a+b)/2f(a)*f(b) > 0 ? a = c : b = cendputs "x=#{c}"Ìåòîä ñåêóùèõ (õîðä)Åñëè íà èíòåðâàëå [a, b] íåïðåðûâíàÿ ôóíêöèÿf (x) óäîâëåòâîðÿåò óñëîâèþ f (a) · f (b) < 0, òî êîðåíü óðàâíåíèÿ f (x) = 0 ìîæåò áûòü íàéäåí ìåòîäîì ñåêóùèõ: ïðîâîäèòñÿ ¾õîðäà¿, ñîåäèíÿþùàÿòî÷êè (a; f (a)) è (b; f (b)).
Òî÷êà ïåðåñå÷åíèÿ ýòîãî îòðåçêà ñ îñüþ Ox áåðåòñÿ â êà÷åñòâå ïåðâîãîïðèáëèæåíèÿ c0. Ñëåäóþùàÿ ñåêóùàÿ ïðîâîäèòñÿ÷åðåç íîâóþ òî÷êó è îäíó èç ñòàðûõ.ÌîäåëüÈç ïîäîáèÿ òðåóãîëüíèêîâ ïîëó÷àåì bf −(b)c0=−f (a)c0 − af (b) · (c0 − a) + f (a) · (b − c0 ) = 0c0 =a · f (b) − b · f (a)= a−f (a)·(a−b)/(f (a)−f (b)).f (b) − f (a)Îñíîâíîé öèêëÒî÷íîñòü ðåøåíèÿ îïðåäåëÿåòñÿïåðåìåííîé eps:ïðîãðàììà äîëæíà ïðåêðàòèòüðàáîòó, åñëè ðàññòîÿíèå ìåæäóäâóìÿ ïðèáëèæåíèÿìè ìåíüøåeps.c_old, c = a, bwhile (c-c_old).abs>epsc_old = cc=a-(f(a)*(a-b))/(f(a)-f(b))f(a)*f(c)> 0 ? a=c : b=cendÏðîãðàììàdef f(x) return Math.exp(x)-2 enda, b, eps = 0.0, 1.0, 0.0001c_old, c = a, bwhile (c-c_old).abs > epsc_old = cc = a-f(a)*(a-b)/(f(a)-f(b))f(a)*f(c)>0 ? a = c : b = cendputs "x=#{c}"Ìåòîä Íüþòîíà (êàñàòåëüíûõ)Åñëè íà èíòåðâàëå [a, b] ôóíêöèÿ f (x) íåïðåðûâíà è äèôôåðåíöèðóåìà, òî êîðåíü óðàâíåíèÿf (x) = 0 ìîæåò áûòü íàéäåí ìåòîäîì Íüþòîíà:ïðîâîäèòñÿ êàñàòåëüíàÿ ê ôóíêöèè â îäíîì èç êîíöîâ îòðåçêà è èùåòñÿ åå ïåðåñå÷åíèå ñ îñüþ Ox ,êîòîðîå áåðåòñÿ â êà÷åñòâå ïåðâîãî ïðèáëèæåíèÿx0 .
Ìåòîä òðåáóåò ïðåäâàðèòåëüíîãî âû÷èñëåíèÿôóíêöèè f 0(x).ÌîäåëüÓðàâíåíèå êàñàòåëüíîé êôóíêöèè f (x) â òî÷êå x0èìååò âèäy1 = f 0 (x0 )(x − x0 ) + f (x0 ).Ðåøèâ óðàâíåíèå y1 = 0íàéäåì òî÷êó ïåðåñå÷åíèÿêàñàòåëüíîé ñ îñüþ 0x :f (x0 )x = x0 − 0.f (x )0Îñíîâíîé öèêëÄî âõîäà â öèêëîïðåäåëÿåì ïåðâîåïðèáëèæåíèå: êàñàòåëüíàÿ ïðîâîäèòñÿ÷åðåç òî÷êó a èëè÷åðåç òî÷êó b.x_old = ax = a - f(a)/df(a)if x >= bx_old = bx = b - f(b)/df(b)endwhile (x-x_old).abs>epsx_old = xx = x - f(x)/df(x)endÏðîãðàììàdef f(x) return Math.exp(x)-2 enddef df(x) return Math.exp(x) enda, b, eps = 0.0, 2.0, 0.00001x_old, x = a, a-f(a)/df(a)if x>=b thenx_old, x = b, b-f(b)/df(b)endwhile (x-x_old).abs > epsx_old, x = x, x-f(x)/df(x)endputs "x=#{x}"Âîçìîæíûå óñîâåðøåíñòâîâàíèÿ1. Ââîä ôóíêöèè ïðè çàïóñêå ïðîãðàììû2.
Îêðóãëåíèå îòâåòà äî óêàçàííîãî ÷èñëà çíàêîâ3. Èñïîëüçîâàíèå çíà÷åíèé ïî óìîë÷àíèþÎêðóãëåíèå ÷èñåëÔóíêöèÿ round îêðóãëÿåò ñâîé àðãóìåíò äî öåëîãî ÷èñëà. Åñëè òðåáóåòñÿ îêðóãëèòü äî íåêîòîðîãî ÷èñëà çíàêîâ ïîñëå çàïÿòîé, ñíà÷àëà ñëåäóåòóìíîæèòü ÷èñëî íà 10 â ñòåïåíè ðàâíîé ÷èñëó çíàêîâ ïîñëå çàïÿòîé, îêðóãëèòü, à çàòåì ïîäåëèòü íàòó æå ñòåïåíü 10.Îêðóãëåíèå ÷èñåëdef round_f(n, dig)k = 10**digreturn (n*k).round/k.to_fendn = Math.sin(1.3)puts n# 0.963558185417193puts n.round# 1puts round_f(n,3) # 0.964Çàäà÷àÍàïèñàòü ïðîãðàììó äëÿ âû÷èñëåíèÿ ïëîùàäèçàäàííîé ôèãóðû. x0 íàèìåíüøèé ïîëîæèòåëüíûéêîðåíü óðàâíåíèÿ sin 2x = sin xS=Rx0Rπ(sin 2x − sin x)dx + (sin x − sin 2x)dx0x0ÐåøåíèåÑíà÷àëà íàéäåì êîðåíü óðàâíåíèÿ sin 2x −sin x =0 íà îòðåçêå [0.1; 3.0] îäíèì èç ðàçîáðàííûõ ìåòîäîâ (íàïðèìåð, ìåòîäîì äèõîòîìèè), à çàòåì âû÷èñëèì äâà èíòåãðàëà îäíèì èç ìåòîäîâ ïðÿìîóãîëüíèêîâ, â êîòîðîì ïîëîæèì ∆ ðàâíûì òî÷íîñòè, èñïîëüçóåìîé ïðè ïîèñêå êîðíÿ.
Òî÷íîñòüáóäåì çàäàâàòü â êà÷åñòâå ïàðàìåòðà êîìàíäíîéñòðîêè.Ïðîãðàììà 4 (1)# çàäàåì ôóíêöèè è# îïðåäåëÿåì òî÷íîñòü âû÷èñëåíèéinclude Mathdef f1(x) return sin(2*x)-sin(x) enddef f2(x) return sin(x)-sin(2*x) endeps = 0.0001Ïðîãðàììà 4 (2)# èùåì x0a, b = 0.1, 3.0while b-a > epsc = (a+b)/2f1(a)*f1(c)> 0 ? a = c : b = cendputs "x0= #{c} (ñðàâíèòå ñ PI/3 = #{PI/3})"Ïðîãðàììà 4 (3)# ïåðâûé èíòåãðàës, x, delta = 0, 0, epswhile x <= cs += f1(x)*deltax += deltaendÏðîãðàììà 4 (4)# âòîðîé èíòåãðàëwhile x <= PIs += f2(x)*deltax += deltaendputs s.