Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 46 47 48 49 50 51 52 53 54 ... 125
Перейти на страницу:

Рис. 4.27. Окно Maplet-инструмента для иллюстрации построения касательной к заданной точке

4.7.5. Построение касательной к заданной точке кривой и секущих линий

В некоторых случаях, например при реализации метода Ньютона решения нелинейных уравнений, помимо построения касательной к заданной точке кривой f(x) нужно строить секущие линии и определять их точки пересечения с f(x).

Для этого служит Maplet-инструмент Tangent and Secant. Его окно (рис. 4.28) открывается исполнением команды Tools→Tutors Calculus-Single Variables→Tangent and Secant…. Работа с окном вполне очевидна. На графике строится кривая функции и касательная к заданной точке х. Дополнительно строится ряд секущих. Возможно построение с применением анимации.

Рис. 4.28. Окно Maplet-инструмента для иллюстрации построения касательной к заданной точке и секущих линий

4.7.6. Вычисление поверхности вращения кривой

Пусть отрезок кривой f(х), при х в интервале [а,b] вращается вокруг оси 0х. Тогда площадь полученной фигуры вращения равна:

Для вычисления этой площади служит Maplet-инструмент Surface of Revolution. Его окно (рис. 4.29) открывается исполнением команды Tools Tutors→Calculus-Single Variables→Surface of Revolution…. Работа с окном вполне очевидна. На графике строится кривая функции и поверхность вращения этой кривой в 3D прямоугольной системе координат. Вычисляется значение площади. Вычисления возможны и при вращении отрезка кривой вокруг оси 0у.

Рис. 4.29. Окно Maplet-инструмента для иллюстрации вычисления площади фигуры, полученной вращением отрезка кривой

4.7.7. Вычисление объема фигуры, полученной вращением отрезка кривой

Пусть отрезок кривой f(х), при х в интервале [a, b], вращается вокруг оси 0х. Тогда объем полученной фигуры вращения равен:

Для вычисления этого объема служит Maplet-инструмент Volume of Revolution. Его окно (рис. 4.30) открывается исполнением команды Tools→Tutors→Calculus-Single Variables→Volume of Revolution…. Работа с окном вполне очевидна. На графике строится кривая функции и поверхность вращения этой кривой в 3D прямоугольной системе координат. Вычисляется значение объема полученной фигуры. Вычисления возможны и при вращении отрезка кривой вокруг оси 0у.

Рис. 4.30. Окно Maplet-инструмента для иллюстрации вычисления объема фигуры, полученной вращением отрезка кривой

4.8. Решение уравнений и неравенств

4.8.1. Основная функция solve

Одиночное нелинейное уравнение, например трансцендентное, можно задать в одной из двух форм:

F(x) = 0 или f(x) = expr,

expr — выражение. Второе уравнение всегда можно представить в виде F(x)=f(x)-expr=0, то есть в форме первого уравнения.

При наличии аналитического решения оно находится путем поиска в ядре необходимых формул, описывающих такое решение. Но далеко не всегда нелинейные уравнения имеют аналитическое решение. В этом случае решение возможно численными методами.

Maple 9.5 имеет мощные средства для решение линейных и нелинейных уравнений и неравенств. Так, для решения линейных и нелинейных уравнений в аналитическом виде используется достаточно универсальная и гибкая функция

solve(eqn, var)

или

solve({eqn1,eqn2,...},{var1,var2,...})

где eqn — уравнение, содержащее функцию ряда переменных, var — переменная, по которой ищется решение. Если при записи eqn не используются знак равенства или знаки отношения, считается, что solve ищет корни уравнения eqn=0. Если eqn полином, то solve вычисляет все корни полинома — как действительные, так и комплексные.

Характер решений можно изменить с помощью глобальных системных переменных:

_EnvExplicit — при значении true выдает решение без применения конструкции RootOf;

_EnvAllSolutions — при значении true задает выдачу всех решений;

_SolutionsMayBeLost — при значении true дает решение, которое при обычном применении функции solve возвращает значения NULL;

_MaxSols — задает максимальное число решений;

_EnvTryHard — при значении true может дать компактное решение, но это может потребовать увеличения времени вычислений.

В решениях могут встречаться следующие обозначения:

_NN — указывает на неотрицательные решения;

_В — указывает на решения в бинарной форме;

_Z — указывает на то, что решение содержит целые числа;

%N — при текстовом формате вывода задает общие члены решения и обеспечивает более компактную форму его представления.

В форме solve[subtopic] возможны параметры subtopic функции solve следующих типов:

floats  functions identity ineq linear

radical scalar    series   system

При решении систем уравнений они и список переменных задаются как множества, то есть в фигурных скобках. При этом и результат решения получается в виде множества. Чтобы преобразовать его к обычному решению, нужно использовать функцию assign, которая обеспечивает присваивание переменным значений, взятых из множества.

Функция solve старается дать решение в аналитическом виде. Это не означает, что ее нельзя использовать для получения корней уравнений в численном виде. Просто для этого придется использовать функции evalf или convert. Если результат решения представлен через функцию RootOf, то зачастую можно получить все корни с помощью функции allvalues.

4.8.2. Решение одиночных нелинейных уравнений

Решение одиночных нелинейных уравнений вида f(х)=0 легко обеспечивается функций solve(f(x),x). Это демонстрируют следующие примеры (файл solve):

> solve(х^3-2*х+1,х);

> solve(х^(3/2)=3,х);

3(2/3)

> evalf(%);

2.080083823

> solve(sqrt(ln(х))=2,х);

e4

> evalf(%);

54.59815003

Если уравнение записывается без правой части, то это означает, что она равна нулю. Часто бывает удобно представлять уравнение и его решение в виде отдельных объектов, отождествленных с определенной переменной (файл solve):

> eq:=(2*х^2+х+3=0);

eq := 2x²+x+3 = 0

> s: = [solve(eq,x)];

В частности, это позволяет легко проверить решение (даже если оно не одно, как в приведенном примере) подстановкой (subs):

> subs(x=s[1],eq);

> subs(x=s[2],eq);

> evalf(%);

0. + 0.I = 0.

Сводящиеся к одному уравнению равенства вида f1(х)=f2(x) также решаются функцией solve(f1(x)=f2(x),x):

> solve(х^4=-х-1,х);

RootOf(_ Z4 + _Z + 1, index = 1), RootOf (_Z4 + _Z + 1, index = 2), RootOf(_Z4 + _Z + 1, index = 3), RootOf(_ Z4 +_Z + 1, index = 4)

> evalf(%);

.7271360845 + .9340992895 I, -.72711360845 + .4300142883 I, -.7271360845 - .4300142883 I, .7271360845 - .9340992895 I

> solve({exp(x)=sin(x)},x);

{x = RootOf(_ Z-ln(sin(_Z)))}

> evalf(%);

{x = .3627020561 - 1.133745919I}

> solve(x^4=2*x,x);

> evalf(%);

0., 1.259921050, -.6299605250 + 1.091123636 I, -.6299605250 - 1.091123636 I

Обратите внимание в этих примерах на эффективность применения функции evalf, позволяющей получить решения, выраженные через функцию RootOf, в явном виде.

Некоторые даже с виду простые уравнения могут дать неожиданные для многих пользователей результаты. Пример такого рода приведен ниже (файл solve):

> restart;eq:=ехр(-х)=х;sol:=solve(exp(-х)=х,х);

eq := е(-х) = х sol = LambertW(1)

> evalf(sol);

0.5671432904

В данном случае решение получено через значение специальной функции Ламберта. Впрочем, с помощью функции evalf его можно представить в численном виде.

4.8.3. Решение тригонометрических уравнений

Функция solve может использоваться для решения тригонометрических уравнений:

> solve (sin (х) =.2, х);

.2013579208

> solve(sin(х)-1/2,х);

> solve(cos(х)=.5, х);

1.047197551

Однако из приведенных примеров видно, что при этом найдено только одно (главное) решение. Оно ищется в интервале [-π, π]. Периодичность тригонометрических функций и связанная с этим множественность решений оказались проигнорированы. Однако можно попытаться найти все периодические решения, выполнив следующую команду:

> _EnvAllSolutions:=true;

_EnvAllSoIutions := true

Указанная в ней системная переменная отвечает за поиск всех периодических решений, когда ее значение равно true, и дает поиск только главных решений при значении false, принятом по умолчанию. Так что теперь можно получить следующее:

> solve(sin(х)=1/2,х);

Здесь вспомогательные переменные _ВI~ и _ZI~ могут иметь только целочисленные значения (знак ~ означает, что на них наложено ограничение — в нашем случае в виде целочисленности возможных значений).

1 ... 46 47 48 49 50 51 52 53 54 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии