04.02. Finding Exact Solutions: 

04.02. Нахождение точных корней. 

The solve( ) command

Команда solve

We first consider polynomial equations. Algorithms exist for calculating the exact solutions for polynomial equations up to degree 4 . Maple's solve( ) command implements these algorithms.

Рассмотрим вначале рациональные уравнения. Известно, что существуют алгоритмы определения точных корней рациональных корней вплоть до 4-го порядка включительно. В Maple-команду solve и заложены эти алгоритмы.

To find the exact solutions to the polynomial equation 3*x^3-4*x^2-43*x+84 = 0 use the solve( ) command.

Воспользуемся командой solve для нахождения точных корней кубического уравнения 3*x^3-4*x^2-43*x+84 = 0 :

 

 

 

 
 

 

> solve(3*x^3-4*x^2-43*x+84=0,x);

3, -4, 7/3

 

Note that the second argument of the command tells Maple that x is the unknown variable that we are solving for.

Обратите внимание: в команде мы указываем, относительно какой переменной следует решать уравнение. Хотя в нашем конкретном случае это и не обязательно:

 
   
> solve(3*x^3-4*x^2-43*x+84=0);

3, -4, 7/3

 

Here Maple has found all three solutions and listed them for you.

Maple нашел все 3 действительных корня и вывел их ( в неупорядоченном виде ).

Sometimes you will want to select one solution from the list of solutions and use it in another computation. You can do this by first assigning a name (we use the letter N in this case) to the output of the solve( ) command. Then X[1] is the first number in the list, X[2] is the second number and so on. Note the square brackets.

Иногда очень важно выбрать конкретный корень, чтобы потом использовать в дальнейших преобразованиях именно его. Для этого заранее следует присвоить имя результату исполнения команды solve . Назовём его X . Тогда конструкция X[1] будет соответствовать первому корню из списка (подчеркнем: это не обязательно меньший корень! ), X[2] - второму корню, и т.д. ( Скобки - квадратные! ):

 
   
> X:=solve(x^2-5*x+3=0,x);

X := 5/2+1/2*sqrt(13), 5/2-1/2*sqrt(13)

> X[1];

5/2+1/2*sqrt(13)

 

Посмотрите, однако, что будет выведено в результате выполнения похожей команды:

 
   
> x[1]=%;

x[1] = 5/2+1/2*sqrt(13)

 

When working with the solve( ) command it is often convenient to begin by giving a name to the equation.

Ещё раз подчеркнём: практика показывает, что уравнению целесообразно присвоить имя. Традиционно в Maple такое имя начинается с букв eq :

 
   
> eq1:=7*x^3-11*x^2-27*x-9=0;

eq1 := 7*x^3-11*x^2-27*x-9 = 0

 

Note we use " := " to assign the name and just "=" for the equation itself.

(Не путать оператор присваивания " := " со знаком равенства " = " !)

Next we solve the equation using the solve( ) command assigning the name X to the output.

Теперь решим уравнение при помощи команды solve . Множеству корней присвоим имя X :

 
   

> X:=solve(eq1,x);

X := -1, 3, -3/7

 

For practice let's check that each of these values satisfies the equation. This is easy to do using the subs( ) command.

Для убедительности проверим, нет ли среди найденных корней посторонних. Проверку выполним непосредственной подстановкой

 
   

> subs(x=X[1],eq1);

0 = 0

> subs(x=X[2],eq1);

0 = 0

> subs(x=X[3],eq1);

0 = 0

 

С официального разрешения                    © 2002 Waterloo Maple, Inc

 

Hosted by uCoz