З • • • • • ят е . ол я е е я то т е кое д е е о е К ткое оде е о т е ол о е е т к е к е де е о т пол к о т е е ет е ко о л о т ол е е : п кт е к п е Ду л е л то т е кое д е е п о е т . ол я е е я ол я е е япутё пе е о упе по етод по т ое е е ее д оо о то т : 1. о о о пол о т то одел Недо т тк : 1. е у оё ко т 2. е едко полу е е одел Дл по к опт л о е ет е к е л о т . дл п пол о е ет е к опе , ко ок т.п.) лу е, ко д о о е то о ло одел п е о ло ул т ло оделе у к е те д т т к - еудо оо п о е е дл тет т к е кое де е о • О = − полу т оде т к е ко о л о ул • е т е ует д е п о тет опе о де е е • ёт по о еку т.е. пу к по подде е + + − ^ ∗ о О О т я пол к я по т т я пол к я к я 3 5 + 2 * 6 7 + 8 9 - / ле В В В В В В В е е я 3 5 + 2 * 6 7 + 8 9 - / 3 5 + 2 * 6 7 + 8 9 - / 8 2 * 6 7 + 8 9 - / 16 6 7 + 8 9 - / 16 13 8 9 - / 16 13 -1 / 16 -13 29 п п д о я к я п 2*(3+5) – (6+7)/(8-9) ле е е я 3+5 = 8; 8*2 = 16 6+7 = 13; 8-9 = -1 13/-1 = -13; 16 – (-13) = 29 О о е о т о т о пол ко п : • опе от ут т ует п о тет • е у ко к • е опе п т ед оо о О о е о т от о теко 1. о е е до л т ео е у 2. Опе е ут е е тек по е т е ул т т е у е ет е к е ло е ет е к е л о т – ло т ел е о опт . Кл е е кте т к : • от ол кол е т о поте л е е «попул е » • И пол о е еле о у к дл от о ле о попул • олу е е о ле о попул опе « к е » ко о е « ут » лу е е е п о е о п оде де ло т л оло . ол о е ет е ко о т е о т е е лу о од о попул От о т попул пол о е еле о у к Жел е е ул т т до т ут? Н е ут е ул т т олу е е едо т т попул к е е ут е е о 1. 2. 3. 4. 5. 6. е опе о е т т тек x о е т т тек ло ло е е т е о е е деле е / + )) о еде е тепе ) у о п л е! О дол т ко ект од д ле е ол популя о п о е е . попул . де де е ул т т ! т о пол ко к е т д лу дел т к е е д е по е т е т A B + C D C D / B A а A B + C / C D D + * е ле дое т + * => (A+B)*(C+D) ^ + => (C/D)+B^A B A ^ + => (A+B)/C+B^A => C*(D+D) . е т лу е е е « ут » ко е т опе Фу к яп = по о ле � � − � о т е ол = − о е е + е ул т т е е X [-1.0409] + п о е U- [2.0115] ^ [3.8315] [0.3417] ^ [0.6995] / [0.6995] ^ + е ул т т е е (X – 1.0409)^2.0115 + (3.8315^0.3417/0.6995)^0.6995 = = (X – 1.0409)^2.0115 + 1.7701 т . то т е кое д е е о е е е ле �′ е ≈ � о ол ое +Δ −� Δ у е т : • ет о е д у к п ., допу т етод о теК ло, ек т.п. • о тот Недо т тк : • ок по е о т е у к ео е о е то ое е у е т : • к по е о т Недо т тк : • ло о т • Фу к дол т од е е т е кое И пол о е ду л ел о о о ет к е у е т : • к по е о т • От о тел п о тот • Допу т кл ет ле у к Недо т тк : • екото е о е д у к у л у т • • • • + + + � + � + Фу к е ≠ т кое, то = , о д = + – ду л ое ет = + е к е де т + + = = + � − � = + � − � � = exp � ln я от ду л + − 2− + оо + я �+ �+ + + л – де т тел е л . ло л. dual number) д ду л + + �− �2 �− 2 �2 = л + = = exp � ln + − 2 � + � + = + = � + − 2 �− л � + =� + �′ ⋅ Док тел т о: е е д е ло �′ � ′′ � + =� + + ! ! = +⋯=� + �′ ⋅ то то т е кое д е е о е т е кое д е е о е од т я к ет ке ду л ел. л о т о де я т о п о од о : • Ко т т п ет о т т де т тел л • е е е , по кото о едет д е е о е, е ет � ду л ло : = + т.к. = ). � • е ул т т – ду л ое ло. Де т тел т – т.е. ) – е е п о од о то ке � + = + е ; е е у к = по о . л т е к ёт п о од о = �′ = + = + ; �′ по о . то т е кое д е е о е + = + = + + = = � + �′ , то т е кое д о ео е о тел тек то у к е е я е л од у е т : • окое т оде т е код • е окл о у ку п о о Недо т тк : • А то т е к е е код • к л д о т еде е о е я е ду л т п д ел к к у е т : • о тот л д о т • Фу к ле ко пе едел т у у Недо т тк : • Я к дол е подде т ОО пе е у ку опе то о C++, MATLAB, Python, Ruby, Fortran-90 д . • е е ко о т ет пол о тел ко о т п д о ят е о кл Кл –т пд , о тоя е п о поле пе е е о етодо у к classdef DualNumber % И я а а properties % я а а a b end methods % ( ) а а function obj = DualNumber(a, b) % К obj.a = a; obj.b = b; end ; o1 – я а а function r = log(o1) % r = DualNumber(builtin('log', o1.a), o1.b./o1.a); end а .* function r = times(o1, o2) % r = DualNumber(o1.a.*o2.a, o1.b.*o2.a + o1.a.*o2.b); end % … К УЩ … end end Кл для о д то т е пе е е е ко о д о от >> x=DualNumber.CreateXValue(2) x = 1 x 1 DualNumber matrix (@ means epsilon) 2.0000+1.0000@ >> x.a 2 >> x.b 3 Н о де еп о од о >> 0.5.*(2.*x + 3).^4 1 x 1 DualNumber matrix (@ means epsilon) 1.00e+03 * 1.2005+1.3720@ >> 4*(2*2+3)^3 1372 е! е ует я Octave . е е л о я т >> x=DualNumber.CreateXValue([0.5 1; 1.5 2]) x = 2 x 2 DualNumber matrix (@ means epsilon) 0.5000+1.0000@ 1.0000+1.0000@ 1.5000+1.0000@ 2.0000+1.0000@ >> (2.*x+3).^(3.*x-1) ans = 2 x 2 DualNumber matrix (@ means epsilon) 1.00e+05 * 0.0000+0.0001@ 0.0003+0.0014@ 0.0053+0.0346@ 0.1681+1.2212@ е л MATLAB . е для classdef) Кл для то т е ко о д xv = DualNumber.CreateXValue(-3:0.01:3); f = xv.^3; close all; plot(xv.a, f.b, 'k-', 'LineWidth', 2); hold on; plot(xv.a, f.a, 'r-', 'LineWidth', 2); hold off; legend('f''(x)', 'f(x)'); е е о я