︠d8889f29-2031-493c-a8c4-9131e2d35d38i︠ %html

УРОК 4.1

Тема. SAGE: перетворення виразів.
Мета: засвоїти особливості застосування функцій SAGE для перетворення виразів.

1. Зведення подібних членів у виразі.
2. Розкриття дужок у виразі.
3. Розкладання многочлена на множники.

Для виконання основних операцій перетворення виразів, а саме зведення подібних членів, розкриття дужок та розкладання на множники, у SAGE передбачено такі функції simplify(), expand() та factor() відповідно.

1. Зведення подібних членів у виразі. Для виконання дії зведення подібних членів у виразі у середовищі SAGE може бути застосована функція simplify(). При цьому, вираз, що підлягає спрощенню, вказується як параметр даної функції: ︡c9769048-b9cb-4e5f-a626-dbf90d039f45︡{"html": "\r\n

\r\n

\r\n \u0423\u0420\u041e\u041a 4.1\r\n

\r\n\r\n

\r\n\r\n\u0422\u0435\u043c\u0430. SAGE: \u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432\u0438\u0440\u0430\u0437\u0456\u0432.
\r\n\u041c\u0435\u0442\u0430: \u0437\u0430\u0441\u0432\u043e\u0457\u0442\u0438 \u043e\u0441\u043e\u0431\u043b\u0438\u0432\u043e\u0441\u0442\u0456 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u043d\u043d\u044f \u0444\u0443\u043d\u043a\u0446\u0456\u0439 SAGE \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432\u0438\u0440\u0430\u0437\u0456\u0432.\r\n \r\n

\r\n1. \u0417\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043f\u043e\u0434\u0456\u0431\u043d\u0438\u0445 \u0447\u043b\u0435\u043d\u0456\u0432 \u0443 \u0432\u0438\u0440\u0430\u0437\u0456.
\r\n2. \u0420\u043e\u0437\u043a\u0440\u0438\u0442\u0442\u044f \u0434\u0443\u0436\u043e\u043a \u0443 \u0432\u0438\u0440\u0430\u0437\u0456.
\r\n3. \u0420\u043e\u0437\u043a\u043b\u0430\u0434\u0430\u043d\u043d\u044f \u043c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d\u0430 \u043d\u0430 \u043c\u043d\u043e\u0436\u043d\u0438\u043a\u0438.
\r\n

\r\n\u0414\u043b\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u0439 \u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432\u0438\u0440\u0430\u0437\u0456\u0432, \u0430 \u0441\u0430\u043c\u0435 \u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043f\u043e\u0434\u0456\u0431\u043d\u0438\u0445 \u0447\u043b\u0435\u043d\u0456\u0432, \u0440\u043e\u0437\u043a\u0440\u0438\u0442\u0442\u044f \u0434\u0443\u0436\u043e\u043a \u0442\u0430 \u0440\u043e\u0437\u043a\u043b\u0430\u0434\u0430\u043d\u043d\u044f \u043d\u0430 \u043c\u043d\u043e\u0436\u043d\u0438\u043a\u0438, \u0443 SAGE \u043f\u0435\u0440\u0435\u0434\u0431\u0430\u0447\u0435\u043d\u043e \u0442\u0430\u043a\u0456 \u0444\u0443\u043d\u043a\u0446\u0456\u0457 simplify(), expand() \u0442\u0430 factor() \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u043d\u043e.

\r\n\r\n1. \u0417\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043f\u043e\u0434\u0456\u0431\u043d\u0438\u0445 \u0447\u043b\u0435\u043d\u0456\u0432 \u0443 \u0432\u0438\u0440\u0430\u0437\u0456. \u0414\u043b\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f \u0434\u0456\u0457 \u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043f\u043e\u0434\u0456\u0431\u043d\u0438\u0445 \u0447\u043b\u0435\u043d\u0456\u0432 \u0443 \u0432\u0438\u0440\u0430\u0437\u0456 \u0443 \u0441\u0435\u0440\u0435\u0434\u043e\u0432\u0438\u0449\u0456 SAGE \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0437\u0430\u0441\u0442\u043e\u0441\u043e\u0432\u0430\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f simplify(). \u041f\u0440\u0438 \u0446\u044c\u043e\u043c\u0443, \u0432\u0438\u0440\u0430\u0437, \u0449\u043e \u043f\u0456\u0434\u043b\u044f\u0433\u0430\u0454 \u0441\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044e, \u0432\u043a\u0430\u0437\u0443\u0454\u0442\u044c\u0441\u044f \u044f\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u0430\u043d\u043e\u0457 \u0444\u0443\u043d\u043a\u0446\u0456\u0457:"}︡ ︠83e587ea-641e-4cdb-9bff-9c21426a9d82︠ simplify(2*x^2-3*x+11*x^3-9*x^2+7*x^4) ︡74a281f9-5f52-48de-afa9-2a27454a98d7︡{"stdout": "7*x^4 + 11*x^3 - 7*x^2 - 3*x"}︡ ︠d0e98b12-7162-433a-888c-5f30a46cb00f︠ var('x,y') simplify(2*x^2*y-3*y+11*x^3-9*x^2*y+7*x^4) ︡98b61315-3e21-4890-a8d1-0787e1251147︡{"html": "{{-7 {x}^{2} } y} - {3 y} + {7 {x}^{4} } + {11 {x}^{3} }"}︡ ︠32797788-6971-4dd9-a8aa-1c7d720e1e52i︠ %html

Наведені приклади демонструють лише один із способів застосування функції simplify(), а саме: вираз, який підлягає спрощенню, вказується як параметр функції simplify(). Даний спосіб є загальновизнаним, оскільки має місце і в ряді інших систем комп'ютерної математики.
Розробники SAGE передбачили інший спосіб звернення до функцій, у тому числі і до функції simplify(): ︡02429a9e-bc7b-40e6-8d26-97a44a85d4e7︡{"html": "\r\n

\r\n\u041d\u0430\u0432\u0435\u0434\u0435\u043d\u0456 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u0438 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0443\u044e\u0442\u044c \u043b\u0438\u0448\u0435 \u043e\u0434\u0438\u043d \u0456\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u0456\u0432 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u043d\u043d\u044f \u0444\u0443\u043d\u043a\u0446\u0456\u0457 simplify(), \u0430 \u0441\u0430\u043c\u0435: \u0432\u0438\u0440\u0430\u0437, \u044f\u043a\u0438\u0439 \u043f\u0456\u0434\u043b\u044f\u0433\u0430\u0454 \u0441\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044e, \u0432\u043a\u0430\u0437\u0443\u0454\u0442\u044c\u0441\u044f \u044f\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0444\u0443\u043d\u043a\u0446\u0456\u0457 simplify(). \u0414\u0430\u043d\u0438\u0439 \u0441\u043f\u043e\u0441\u0456\u0431 \u0454 \u0437\u0430\u0433\u0430\u043b\u044c\u043d\u043e\u0432\u0438\u0437\u043d\u0430\u043d\u0438\u043c, \u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u043c\u0430\u0454 \u043c\u0456\u0441\u0446\u0435 \u0456 \u0432 \u0440\u044f\u0434\u0456 \u0456\u043d\u0448\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043c\u043f'\u044e\u0442\u0435\u0440\u043d\u043e\u0457 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438.
\r\n\u0420\u043e\u0437\u0440\u043e\u0431\u043d\u0438\u043a\u0438 SAGE \u043f\u0435\u0440\u0435\u0434\u0431\u0430\u0447\u0438\u043b\u0438 \u0456\u043d\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u0456\u0431 \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0456\u0439, \u0443 \u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0456 \u0456 \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0456\u0457 simplify():"}︡ ︠38e298e7-2bd2-43bd-b3fb-ff933997a91e︠ u=2*x^5-4*x*x^2*x^2-7*x^3*x^2 ︡0a328995-86a6-4d80-8471-9318540b2abf︡︡ ︠4304aa68-3902-47b4-adbe-c0d0f89f9674︠ u.simplify() ︡4c9acd1a-617c-44fc-b915-81df0f5d6eca︡{"html": "{-9 {x}^{5} }"}︡ ︠f9037e53-de8d-4a37-b670-3ec63c249e3d︠ v=2*x^5*y^2-4*x*x^2*x^2*y*y-7*x^3*y*x^2*y ︡3fe7c9f2-b099-421b-8ee5-78ecb7833422︡︡ ︠58244d3b-1ec9-4709-b5c6-fcc42751848b︠ v.simplify() ︡6a6a315b-e1e5-4959-9236-0c534e14a4da︡{"html": "{{-9 {x}^{5} } {y}^{2} }"}︡ ︠54e1759f-310e-4f22-b881-4eaebcc04457i︠ %html

В даному випадку вираз розглядається як об'єкт певної природи, а функція виступає в ролі допустимої операції, яку можна виконати над об'єктом. Такий спосіб звернення до функції в подальшому будемо називати об'єктним зверненням.
Об'єктний спосіб звернення до функцій є більш зручним у застосуванні через властивість середовища SAGE автодоповнювати ввод.

2. Розкриття дужок у виразі. Для виконання зазначеної дії у SAGE передбачена функція expand(): ︡8ef20b63-240e-46d8-b33a-47ebba562a48︡{"html": "\r\n

\r\n\u0412 \u0434\u0430\u043d\u043e\u043c\u0443 \u0432\u0438\u043f\u0430\u0434\u043a\u0443 \u0432\u0438\u0440\u0430\u0437 \u0440\u043e\u0437\u0433\u043b\u044f\u0434\u0430\u0454\u0442\u044c\u0441\u044f \u044f\u043a \u043e\u0431'\u0454\u043a\u0442 \u043f\u0435\u0432\u043d\u043e\u0457 \u043f\u0440\u0438\u0440\u043e\u0434\u0438, \u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f \u0432\u0438\u0441\u0442\u0443\u043f\u0430\u0454 \u0432 \u0440\u043e\u043b\u0456 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0457 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u0457, \u044f\u043a\u0443 \u043c\u043e\u0436\u043d\u0430 \u0432\u0438\u043a\u043e\u043d\u0430\u0442\u0438 \u043d\u0430\u0434 \u043e\u0431'\u0454\u043a\u0442\u043e\u043c. \u0422\u0430\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u0456\u0431 \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0456\u0457 \u0432 \u043f\u043e\u0434\u0430\u043b\u044c\u0448\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c\u043e \u043d\u0430\u0437\u0438\u0432\u0430\u0442\u0438 \u043e\u0431'\u0454\u043a\u0442\u043d\u0438\u043c \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f\u043c.
\r\n\u041e\u0431'\u0454\u043a\u0442\u043d\u0438\u0439 \u0441\u043f\u043e\u0441\u0456\u0431 \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0456\u0439 \u0454 \u0431\u0456\u043b\u044c\u0448 \u0437\u0440\u0443\u0447\u043d\u0438\u043c \u0443 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u043d\u043d\u0456 \u0447\u0435\u0440\u0435\u0437 \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c \u0441\u0435\u0440\u0435\u0434\u043e\u0432\u0438\u0449\u0430 SAGE \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u0432\u043d\u044e\u0432\u0430\u0442\u0438 \u0432\u0432\u043e\u0434.\r\n\r\n

\r\n\r\n2. \u0420\u043e\u0437\u043a\u0440\u0438\u0442\u0442\u044f \u0434\u0443\u0436\u043e\u043a \u0443 \u0432\u0438\u0440\u0430\u0437\u0456. \u0414\u043b\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f \u0437\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e\u0457 \u0434\u0456\u0457 \u0443 SAGE \u043f\u0435\u0440\u0435\u0434\u0431\u0430\u0447\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f expand():"}︡ ︠c5724dcb-e48b-4496-b894-862d6d257e6a︠ expand((x-1)^7) ︡b5eebea7-8a14-40b2-a72f-a860f041a8a4︡{"html": "{x}^{7} - {7 {x}^{6} } + {21 {x}^{5} } - {35 {x}^{4} } + {35 {x}^{3} } - {21 {x}^{2} } + {7 x} - 1"}︡ ︠f960fa64-bfb7-4f8a-8d97-dd39faea7312︠ expand((x-1)*(x+1)*(2*x+3)) ︡bcc88919-e773-4d68-a131-98d4c99215e4︡{"html": "{2 {x}^{3} } + {3 {x}^{2} } - {2 x} - 3"}︡ ︠392c00a1-0259-40e5-a98b-62adc41a1538︠ var('a,b') expand((a+b)^4) ︡89e9b389-663b-4e59-888e-9bdbbe3081ee︡{"html": "{b}^{4} + {{4 a} {b}^{3} } + {{6 {a}^{2} } {b}^{2} } + {{4 {a}^{3} } b} + {a}^{4} "}︡ ︠efb3724b-11c7-4931-aa6a-e893817c75dfi︠ %html

До функції expand() допускається об'єктне звернення: ︡9de95a21-1eee-417c-b3d3-d8a3097615e1︡{"html": "\r\n

\r\n\u0414\u043e \u0444\u0443\u043d\u043a\u0446\u0456\u0457 expand() \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0454\u0442\u044c\u0441\u044f \u043e\u0431'\u0454\u043a\u0442\u043d\u0435 \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f:"}︡ ︠8a5959c1-72fe-4021-9069-88eab0e2fe8b︠ var('m,n') q=(m^(1/3)-n^(1/3))*(m^(2/3)+m^(1/3)*n^(1/3)+n^(2/3));show(q) ︡6417dd79-9a9b-457f-acff-3e348c5de725︡{"html": "

{\\left( {m}^{\\frac{1}{3}} - {n}^{\\frac{1}{3}} \\right) \\left( {n}^{\\frac{2}{3}} + {{m}^{\\frac{1}{3}} {n}^{\\frac{1}{3}} } + {m}^{\\frac{2}{3}} \\right)}
"}︡ ︠761287a6-f6bc-4a46-9e58-b05d5838fe7e︠ q.expand() ︡e0653d73-7a93-4be6-baa9-cca7e411c2e6︡{"stdout": "m - n"}︡ ︠313d7db4-a793-406f-a753-2afd752be8c1i︠ %html 3. Розкладання многочлена на множники. Для виконання операції розкладання на множники (факторізації) у SAGE передбачена функція factor(). ︡3ee52232-0854-44d0-9256-f37e916e332c︡{"html": "\r\n\r\n3. \u0420\u043e\u0437\u043a\u043b\u0430\u0434\u0430\u043d\u043d\u044f \u043c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d\u0430 \u043d\u0430 \u043c\u043d\u043e\u0436\u043d\u0438\u043a\u0438. \u0414\u043b\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u0457 \u0440\u043e\u0437\u043a\u043b\u0430\u0434\u0430\u043d\u043d\u044f \u043d\u0430 \u043c\u043d\u043e\u0436\u043d\u0438\u043a\u0438 (\u0444\u0430\u043a\u0442\u043e\u0440\u0456\u0437\u0430\u0446\u0456\u0457) \u0443 SAGE \u043f\u0435\u0440\u0435\u0434\u0431\u0430\u0447\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f factor()."}︡ ︠f0a07df1-f9e8-4d3a-bc73-025c589a54c4︠ factor(a^2-a*b-4*a+4*b) ︡27e00390-fa1f-4e34-94ad-cd355cfc6e27︡{"html": "{\\left( a - 4 \\right) \\left( a - b \\right)}"}︡ ︠6dc8392d-608f-4ad9-addb-18312c4bd6e6︠ factor(x^6-y^6) ︡be3c116d-55cd-4686-9abc-be3bf62f0659︡{"html": "{{{\\left( x - y \\right) \\left( y + x \\right)} \\left( {y}^{2} - {x y} + {x}^{2} \\right)} \\left( {y}^{2} + {x y} + {x}^{2} \\right)}"}︡ ︠78d10e51-c793-4e2f-b26c-5c433186e90ai︠ %html

І для функції factor() об'єктне звернення також є допустимим: ︡d983d74f-2cfd-47d5-aceb-866e15cefab4︡{"html": "

\r\n\r\n\u0406 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0456\u0457 factor() \u043e\u0431'\u0454\u043a\u0442\u043d\u0435 \u0437\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u0442\u0430\u043a\u043e\u0436 \u0454 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0438\u043c:"}︡ ︠3acab7a2-7869-410c-aa0b-38496dc50233︠ g=x^3-3*x^2+4*x-2; show(g) ︡7bed9c73-234a-4fe4-b9f9-6b3f0b996dbb︡{"html": "

{x}^{3} - {3 {x}^{2} } + {4 x} - 2
"}︡ ︠f923b19c-6956-464c-89d1-b42becf8806d︠ g.factor() ︡1ca94cae-d86a-4e85-be7c-272bbc2625b2︡{"html": "{\\left( x - 1 \\right) \\left( {x}^{2} - {2 x} + 2 \\right)}"}︡