Решение физических и математических задач с Maxima
Доступная литература и сеть Интернет в качестве "электронного помощника" студентов и школьников обычно позиционирует пакет MathCad, изредка — Maple или Mathematica. Материал данной главы содержит ряд разнородных задач, которые решались разными авторами вручную или при помощи MathCad.
7.1 Операции с полиномами и рациональными функциями
Рассмотрим решение с помощью Maxima нескольких задач из классического сборника под редакцией М.И. Сканави. В Maxima "пошаговое" упрощение выражений с последовательным использованием стандартного набора примитивов (формул суммы или разности кубов, формул возведения суммы или разности в степень и т.п.) выполнить сложно, поэтому результат являются фактически справочным, на который следует ориентироваться при решении вручную, при помощи ручки и бумаги.
7.1.1 Упрощение алгебраических выражений
Пример:
Упростить выражение и вычислить его, если даны числовые значения параметров:
(%i1) g:(1/a-1/(b+c))/(1/a+1/(b+c))*(1+(b^2+c^2-a^2)/2/b/c)/((a-b-c)/a/b/c);
![(\%o1)\quad \frac{a\,b\,c\,\left( \frac{1}{a}-\frac{1}{c+b}\right) \,\left( \frac{{c}^{2}+{b}^{2}-{a}^{2}}{2\,b\,c}+1\right) }{\left( -c-b+a\right) \,\left( \frac{1}{c+b}+\frac{1}{a}\right) }$](/sites/default/files/tex_cache/29942948029691e3814f883642491cfc.png)
(%i2) ratsimp(%);
![(\%o2)\quad -\frac{a\,c+a\,b-{a}^{2}}{2}](/sites/default/files/tex_cache/ddf05c2bea11a08978fa2f89c6e275d2.png)
(%i3) %,a=0.02,b=-11.05,c=1.07;
![(\%o3)\quad 0.1](/sites/default/files/tex_cache/293692b946450a914d26ba069cc73a87.png)
Пример: Упростить выражение и вычислить его, если даны числовые значения параметров:
(%i1) (sqrt(x)+1)/(x*sqrt(x)+x+sqrt(x))/(1/(x^2-sqrt(x)));
![(\%o1)\quad \frac{\left( \sqrt{x}+1\right) \,\left( {x}^{2}-\sqrt{x}\right) }{{x}^{\frac{3}{2}}+x+\sqrt{x}}](/sites/default/files/tex_cache/8211b25e9d3dbdf8e808160454c9dd0b.png)
(%i2) ratsimp(%);
![(\%o2)\quad x-1](/sites/default/files/tex_cache/3eb44ed319aac4ef16b6ae909a6266c1.png)
Пример: Сделать указанную подстановку и результат упростить:
(%i3) expr:(x^3-a^(-2/3)*b^(-1)*(a^2+b^2)*x+b^(1/2))/(b^(3/2)*x^2);
![(\%o3)\quad \frac{{x}^{3}-\frac{\left( {b}^{2}+{a}^{2}\right) \,x}{{a}^{\frac{2}{3}}\,b}+\sqrt{b}}{{b}^{\frac{3}{2}}\,{x}^{2}}](/sites/default/files/tex_cache/98ebb4f5cec5619554f079e52879bd93.png)
(%i4) ratsimp(%);
![(\%o4)\quad \frac{{a}^{\frac{2}{3}}\,b\,{x}^{3}+\left( -{b}^{2}-{a}^{2}\right) \,x+{a}^{\frac{2}{3}}\,{b}^{\frac{3}{2}}}{{a}^{\frac{2}{3}}\,{b}^{\frac{5}{2}}\,{x}^{2}}](/sites/default/files/tex_cache/0b5e6e75c2af108e66acbf49adba1c42.png)
(%i5) radcan(%);
![(\%o5)\quad \frac{{a}^{\frac{2}{3}}\,b\,{x}^{3}+\left( -{b}^{2}-{a}^{2}\right) \,x+{a}^{\frac{2}{3}}\,{b}^{\frac{3}{2}}}{{a}^{\frac{2}{3}}\,{b}^{\frac{5}{2}}\,{x}^{2}}](/sites/default/files/tex_cache/2d8f0417d3ac8f6a86e0e3e1b94b1e2c.png)
Без указанной подстановки упрощение посредством комбинации функций и
не удаётся.
(%i6) %,x=a^(2/3)*b^(-1/2);
![(\%o6)\quad \frac{\frac{{a}^{\frac{2}{3}}\,\left( -{b}^{2}-{a}^{2}\right) }{\sqrt{b}}+{a}^{\frac{2}{3}}\,{b}^{\frac{3}{2}}+\frac{{a}^{\frac{8}{3}}}{\sqrt{b}}}{{a}^{2}\,{b}^{\frac{3}{2}}}](/sites/default/files/tex_cache/c9476e4e1aeb780eb21731d276936862.png)
(%i7) ratsimp(%);
Конечный результат оказывается простым
![(\%o7)\quad 0](/sites/default/files/tex_cache/fcefe9a29f39ecc2b649a559cf95f615.png)
7.1.2 Разложение полиномов и рациональных выражений на множители
7.1.2.1 Решение алгебраических уравнений
Maxima (как и любой другой пакет символьной математики) не всегда способен получить окончательное решение. Однако полученный результат может оказаться всё же проще, чем исходная задача.
Пример (также из сборника под ред. М.И. Сканави): Решить уравнение :
(%i1) solve([sqrt(x-2)=x-4],[x]);
![(\%o1)\quad [x=\sqrt{x-2}+4]](/sites/default/files/tex_cache/efd50866891b76c3e4eef2b5770ef37e.png)
Уравнение имеет одно решение: , однако для отыскания его с помощью Maxima придётся прибегнуть к замене исходного уравнения его следствием:
(%i3) solve([(x-2)=(x-4)^2],[x]);
![(\%o3)\quad [x=6,x=3]](/sites/default/files/tex_cache/442f6ce99658d10bc46ce355b7616aa9.png)
Решения для дальнейшего использования можно извлечь из списка функцией :
(%i1) sol:solve([x-2=(x-4)^2],[x]);
![(\%o1)\quad [x=6,x=3]](/sites/default/files/tex_cache/adb6b918ffb743d2ba2f2466aa3db03d.png)
(%i2) ev(x,sol[1]);
![(\%o2)\quad 6](/sites/default/files/tex_cache/dbbcf1e8274188e8be70bc92ca8ca993.png)
(%i3) ev(x,sol[2]);
![(\%o3)\quad 3](/sites/default/files/tex_cache/fcba7bafe0fe98103711d24d42c0b9fc.png)
Ещё два примера решения алгебраических уравнений:
(%i1) eq:7*(x+1/x)-2*(x^2+1/x^2)=9;
![(\%o1)\quad 7\,\left( x+\frac{1}{x}\right) -2\,\left( {x}^{2}+\frac{1}{{x}^{2}}\right) =9](/sites/default/files/tex_cache/2e870c6eacd9a067dd826f1278faf7a1.png)
(%i2) sol:solve([eq],[x]);
![(\%o2)\quad [x=2,x=\frac{1}{2},x=-\frac{\sqrt{3}\,i-1}{2},x=\frac{\sqrt{3}\,i+1}{2}]](/sites/default/files/tex_cache/1f3395b793c02968c32f0d6fe8a1025f.png)
(%i3) x1:ev(x,sol[1]); x2:ev(x,sol[2]); /*комплексные корни не рассматриваем*/
![(\%o4)\quad 2\frac{1}{2}](/sites/default/files/tex_cache/55447b895717aed1f7c55fb1711df1cc.png)
Уравнения с радикалами перед решением в Maxima приходится преобразовывать к степенной форме (для выделения левой и правой части выражения используют функции и
соответственно):
(%i1) eq:sqrt(x+1)+sqrt(4*x+13)=sqrt(3*x+12);
![(\%o1)\quad \sqrt{4\,x+13}+\sqrt{x+1}=\sqrt{3\,x+12}](/sites/default/files/tex_cache/811843029d85003f8722efaa424fedf2.png)
(%i2) eq1:lhs(eq)^2=rhs(eq)^2;
![(\%o2)\quad {\left( \sqrt{4\,x+13}+\sqrt{x+1}\right) }^{2}=3\,x+12](/sites/default/files/tex_cache/33a11099c49118de25cb5e5a5c9ff346.png)
(%i3) solve([eq1],[x]);
![(\%o3)\quad [x=-\sqrt{x+1}\,\sqrt{4\,x+13}-1]](/sites/default/files/tex_cache/37db5f0d0bb2e28e1c2236e9423af1d0.png)
(%i4) eq2:x+1=rhs(%[1])+1;
![(\%o4)\quad x+1=-\sqrt{x+1}\,\sqrt{4\,x+13}](/sites/default/files/tex_cache/c4bb59b8c0341d23c86a1dbd441a21cb.png)
(%i5) eq3:lhs(eq2)^2=rhs(eq2)^2;
![(\%o5)\quad {\left( x+1\right) }^{2}=\left( x+1\right) \,\left( 4\,x+13\right)](/sites/default/files/tex_cache/b1caa927b8c5f2e081c24c9b11f0d5bb.png)
Последняя команда позволила получить степенное уравнение, разрешимое аналитически в Maxima (для этого потребовалось дважды возвести в квадрат исходное уравнение).
(%i6) solve([eq3],[x]);
![(\%o6)\quad [x=-4,x=-1]](/sites/default/files/tex_cache/c353248482aa0a9eda260cd31a5e2b93.png)
Проверку решения выполняем при помощи функции .
Решение не удовлетворяет исходному уравнению.
(%i7) ev(eq,%[1]);
![(\%o7)\quad 2\,\sqrt{3}\,i=0](/sites/default/files/tex_cache/cb7d1c098bbe5df043d7512b896339aa.png)
Решение превращает исходное уравнение в верное равенство:
(%i8) ev(eq,%o6[2]);
![(\%o8)\quad 3=3](/sites/default/files/tex_cache/c2d4a65f88f84405eb3b7aa06212d5cd.png)
Рассмотрим ещё один пример, иллюстрирующий замену и подстановку при решении алгебраических уравнений:
(%i1) eq:sqrt(x+3-4*sqrt(x-1))+sqrt(x+8-6*sqrt(x-1))=1;
Исходное уравнение:
![(\%o1)\quad \sqrt{x-4\,\sqrt{x-1}+3}+\sqrt{x-6\,\sqrt{x-1}+8}=1](/sites/default/files/tex_cache/61ab8632bbad539b592b84eca6dcccfe.png)
Выполним замену
(%i2) eq1:subst(z,sqrt(x-1),eq);
![(\%o2)\quad \sqrt{-4\,z+x+3}+\sqrt{-6\,z+x+8}=1](/sites/default/files/tex_cache/91a4b181d41fe40fa4b6c59973453645.png)
(%i3) eq2:subst(z^2+1,x,eq1);
![(\%o3)\quad \sqrt{{z}^{2}-4\,z+4}+\sqrt{{z}^{2}-6\,z+9}=1](/sites/default/files/tex_cache/4365a712060e1777482d1d327336b330.png)
Упрощаем полученный результат:
(%i4) radcan(%);
![(\%o4)\quad 2\,z-5=1](/sites/default/files/tex_cache/8455adad7168195c1a71f8983a175452.png)
(%i5) solve([%],z);
![(\%o5)\quad [z=3]](/sites/default/files/tex_cache/1e07f0a263cfb75ff796f8b11a267f91.png)
(%i6) solve([sqrt(x-1)=3],[x]);
![(\%o6)\quad [x=10]](/sites/default/files/tex_cache/1d0e69b1cef353d5baea6627830496fb.png)
Выполним проверку
(%i7) ev(eq,%[1]);
![(\%o7)\quad 1=1](/sites/default/files/tex_cache/0de373f0975d01e2a7bc22e71c5da52f.png)
Значительная часть тригонометрических уравнений школьного курса также разрешимы в Maxima, но непосредственное решение удаётся получить далеко не всегда.
Примеры:
(%i1) solve([sin(%pi/6-x)=sqrt(3)/2],[x]); solve: using arc-trig functions to get a solution. Some solutions will be lost.
![(\%o1)\quad [x=-\frac{\pi }{6}]](/sites/default/files/tex_cache/7e65df6f80213b45e5b241f356d2ca8c.png)
Большинство тригонометрических уравнений в Maxima (кроме простейших) приходится решать приведением их к алгебраическим.
Логарифмические и показательные уравнения также решаются в Maxima путём замены переменных и сведения к алгебраическим (см. выше специфические функции для упрощения логарифмических выражений).