Как вычислить производную в maple
Довольно просто написать Maple -процедуру, которая вычисляла бы производную в строгом соответствии с определением. ( Команда unapply применяется для конвертации выражения в функцию. )
> myD := proc(f) unapply(limit((f(x+h)-f(x))/h,h=0), x) end:
Может это и смешно, но встроенная в Maple команда D делает то же самое:
Отметьте, что оператор D дифференцирует функцию , и что производная — опять-таки функция (но, в общем случае, совсем иная, уже не от Армани, а от Версачи). Например, можно вычислить в точке:
Важно, что Maple обладает и другой командой дифференцирования, которая ближе по духу к классической точке зрения на производную (речь идёт о Maple-эквиваленте обозначения .) Команда diff дифференцирует выражение, и выводит на дисплей другое выражение .
Заметьте, что когда Вы используете diff , то следует указать Maple независимую переменную (аргумент функции). Попробуйте предсказать реакцию системы на ввод предлагаемой ниже команды и последующее нажатие клавиши :
Вот и всё, чем располагаем Maple для вычисления производных (если не считать: 1) наличия инертной функции Diff , предназначенной для конструирования выражений в почти классическом виде; 2) различных опций в упомянутых командах.)
Не забывайте, что производная функции — тоже функция (но иная), что производная выражения — тоже выражение (но иное), и что они вычисляются при помощи D и diff соответственно.
Кроме всего прочего, это — милый пример того, как Maple вынуждает Вас ясно мыслить . Различие между функциями и выражениями не было специально надумано Maple -программистами: это отражение реального положения вещей в математике, ответ на тот факт, что для производной не зря используется как обозначение (‘) , так и конструкция , что часто либо не афишируется, либо игнорируется в учебниках.
Алфавит Maple
Кроме чисел Maple содержит целый ряд именованных констант: число л =3. 141592654. — Pi ; мнимая единица V — 1 -I; бесконечность оо — infinity; истина — true; ложь — false и др. Константа Digits задаст число значащих цифр для операций с числами с плавающей точкой, например, Digits:=10.
Переменные, выражения, оператор присваивания
Имя переменной — последовательность букв и цифр, начинающаяся с буквы. Может также использоваться знак подчеркивания. Примеры:
А234, my_name, Су.
В качестве имен переменных запрещено использовать ключевые слова.
Выражение — комбинация имен переменных, чисел и функций, соединенных знаками арифметических операций.
Применяемые в Maple функции приведены в табл.3.1. Эти функции можно вызвать, набрав в меню последовательно View => Palettes => Expression Palette. Латинские буквы можно вызвать набрав в меню последовательно View => Palettes => Symbol Palette.
Если в выражении используется переменная, которой не присвоено никакого численного значения, то такая переменная рассматривается системой Maple как неизвестная величина, а соответствующее выражение называется символьным выражением. Именно для работы с такими выражениями и разрабатывался Maple.
Для работы с символьными выражениями разработано большое количество функций и команд. Например, Maple может вычислить производную по указанной переменной или интеграл от символьного выражения, упростить его и т.д.:
> y=int (sin (х) л 2 ,х) ; # Нажать “Enter”!
Г 1 1 1
sin(x) dx = —cos(x)sin(x)+-A’
Важной операцией в Maple является операция присваивания (:=), она имеет следующий вид:
Каждый оператор должен заканчиваться или точкой с запятой (после нажатия клавиши Enter в следующей строке выводится результат операции), или двоеточием (результат выполнения операции нс выводится).
Maple

Maples (Acer species) are deciduous trees (sometimes shrubs) often grown for the shade they produce and their exceptional autumn color. They may be narrow and columnar, wide spreading and round-headed or low and mounded. Red maple (Acer rubrum), Japanese maple (A. palmatum), southern sugar maple (A. barbatum) and chalkbark maple (A. leucoderme) are adapted to all areas of South Carolina. Generally, sugar maple (A. saccharum), Amur maple (A. ginnala) and paperbark maple (A. griseum) are not suited to the Coastal Plains.
General Information on Maples
Mature Height/Spread: Maples vary in size from a small Japanese maple (8 feet) to a large sugar maple (100 feet).
Growth Rate: Growth rate is varied, depending on the species.
Ornamental Features: Most maples are valued for their spectacular fall leaf colors, which range from muted yellow to bright orange and red. Many are noted for their large size and are used as shade trees, while others are valued for their delicacy and are used as accents. Some species have showy red flowers that appear in late winter before the leaves emerge in the spring. Others are characterized by interesting bark features. The dry, winged fruit is called a samara and is characteristic of all maples. Commonly called a key, it consists of a pair of compressed bony nutlets joined together, each with an elongated, membranous wing. These “whirlybirds” are interesting to watch as they fall to the ground, and are attractive to wildlife.

Maple samaras
Karen Russ, ©HGIC, Clemson Extension
Landscape Use: Maples may be used as lawn specimens, screens, patio trees, hedges, border accents and even container plants. There is such a wide variety of form and size that landscape use is dependent on the species being used.
The ideal soil for most maples is rich, porous and well-drained. Most do well in a fairly wide soil pH range, although many favor slightly acid soil. Red and silver maples thrive in fairly wet soils. Some maples tolerate moderate drought. Most thrive in full sun or partial shade. Some should be protected from the sun to prevent leaf scorch and provided irrigation.
Problems: Maples may be troubled by borers, aphids, scales, leaf spots, tar spot, anthracnose, bacterial leaf scorch, canker and collar rot. Some fast-growing maples (red and silver maples) are soft-wooded (“soft maples”) and prone to breakage in ice storms. Slow-growing maples have hard wood (“hard maples “) and require less maintenance. The bark is thin on most maples, and easily damaged by mechanical impact. Wounds expose the tree to greater susceptibility to disease and insects. Feeding roots on many maples are shallow, preventing good growth of turf beneath the canopy. Provide 3 to 4 inches of mulch beneath the canopy, covering any surface roots exposed. In addition to conserving soil moisture, mulch protects the trunk from mechanical damage and helps keep soil temperatures cool.
Maples “bleed,” and while pruning them in spring when the sap is flowing does not harm them, the sap is messy and pruning at that time is typically avoided. Spring pruning has a greater impact on growth, as leaf area is reduced and less photosynthesis will occur during the growing season. Pruning in late summer and early fall minimizes the impact on growth, as leaves remain on the tree during the entire growing season. To reduce susceptibility to disease and insects, and ensure minimum impact on the growth of the tree, prune twigs and branches early in the growth of the tree. For more information on maple problems, refer to the fact sheet HGIC 2005, Maple Diseases & Insect Pests.
Japanese Maple (Acer palmatum)
Mature Height/Spread: Some varieties of Japanese maple only grow 6 to 8 feet tall, while others may reach 40 to 50 feet in the wild. They may be broader than tall.
Growth Rate: The growth rate is slow (10 to 15 feet in 15 years), although it increases in size somewhat more rapidly in youth than in later years.
Ornamental Features: This tree is valued for many features: its interesting growth habit, fine leaf texture, and spring and fall leaf color. The growth habit varies widely depending on the cultivar. Some are low and wide-spreading, branching to the ground. Others are upright and vase-shaped. They may grow as single-stemmed small trees or multi-stemmed shrubs. The trunks are gray and muscular looking. The horizontal branching is layered, similar to flowering dogwood.
Leaf size, shape and color differ. Varieties are divided into groups based on how finely the leaves are dissected. Some varieties have red to purple-red foliage in the spring as new leaves emerge, change to green in the summer heat and turn red again in the fall. Others emerge green and remain so until fall, when they become a showy copper, orange, red or yellow.

Fall color of Japanese maple (Acer palmatum) leaves.
Joey Williamson, ©2012 HGIC, Clemson Extension
Landscape Use: The Japanese maple is a very versatile plant. It can be used as a small lawn specimen, accent plant, patio tree, container plant or in a shrub border or groupings. It is also a good plant for bonsai. Plant low spreading, globose maple selections in areas large enough to allow branches to droop to the ground. Plant taller selections that can be “limbed up” when sited next to patios or walkways.
Ideal soil for this tree is evenly moist, slightly acidic, high in organic matter and well-drained. Plant in an area protected from high winds and late spring frosts, as leaves tend to emerge early and may be injured. Plant in dappled shade, as direct sunlight may scorch leaves in the heat of summer, especially if irrigation is not provided. Too much shade, however, may cause the tree to grow more slowly and purple leaves become more green. Provide good drainage, never allowing water to stand around the roots. During dry weather provide irrigation, as this tree is sensitive to drought. This is especially important in the lower part of the state. Provide 3 to 4 inches of mulch beneath the canopy.
Branches droop as the tree matures. Prune lower branches of trees located near patios or walkways to allow clearance beneath the canopy. Remove small twigs to enhance the showy trunk and branch structure. Low spreading, globose selections should droop to the ground. Prune only branches or trunks rubbing against each other. Once established, keep pruning to a minimum.
Problems: Japanese maples may be troubled by anthracnose, powdery mildew, leaf spot, leaf scorch, root rot, aphids, scales and borers. Anthracnose causes unsightly brown lesions on leaves.
Varieties & Cultivars:
Non-Dissected Group: (Acer palmatum var. atropurpureum) – The leaves of this tree are dark red-purple in spring and fall, fading to bronze-green with the heat of summer. Seedlings are variable in their leaf color. Plants placed in sun have better red color. Choose a good cultivar to obtain superior foliage color.
- ‘Bloodgood’ – This is a small, round-headed tree (15 to 20 feet tall). Its deep reddish purple leaves retain their color through the summer better than most. Excellent red fall color.
- ‘Burgundy Lace’ – The growth habit of this cultivar is more like a large shrub (10 feet tall and 12 feet wide). Branches droop to the ground. Reddish purple leaves turn purple-bronze-green in summer.
Dissected Group: (Acer palmatum var. dissectum atropurpureum) – This is a mounded, compact, low-growing shrub (8 to 10 feet) that has a twisted branching pattern. The purple-red leaves turn burnt orange in fall.
- ‘Crimson Queen’ – This plant (8 to 10 feet) has handsome cascading branches. Leaves in spring are bright crimson red, becoming bronze-green to red in summer. Fall color is scarlet.
- ‘Waterfall’ – This small plant grows 10 feet tall, 12 feet wide, and has green leaves in spring and summer. Fall color is golden with a hint of red.
- ‘Inaba Shidare’ – This small tree grows 8 to 10 feet tall and has good red-purple color. It holds color well during summer.

Fullmoon maple (Acer japonicum) fall color.
Joey Williamson, ©HGIC, Clemson Extension
Related Species:
- Fullmoon Maple (Acer japonicum) ─ This maple grows 20 to 30 feet tall with similar or wider spread. The leaves are striking, wider and larger than those of Japanese maple. Like Japanese maples, it is known for spectacular fall color. The most common cultivar is ‘Aconitifolium’, with more deeply lobed leaves than the species.
Red Maple (Acer rubrum)
Mature Height/Spread: Red maple grows 40 to 60 feet tall, 25 to 35 feet wide. They occasionally grow 100 to 120 feet in the wild.

Red maple (Acer rubrum) leaves with intense red fall color.
Joey Williamson, ©2012 HGIC, Clemson Extension
Growth Rate: This tree grows at a medium to fast rate (10 to 12 feet in five to seven years). It has a moderate life span in urban areas; it is longer-lived in wet areas.
Ornamental Features: The most outstanding feature of the red maple is its red, orange or yellow fall color lasting several weeks. One tree may have a combination of these colors. Trees vary in color and intensity, however, and some selections may only have a disappointing greenish-yellow fall leaf color. Seedling trees do not always have brilliant color; cultivars are more consistently colored. Leaf color of red maple changes earlier than most.
The common name of the tree does not come from the leaf color, but from the flowers and fruit. In late winter/early spring (January-March) before leaves emerge, dense clusters of showy red flowers appear on twigs and branches. These flowers produce red to brownish fruit (samara.). The fruit are attractive to wildlife and cause no significant litter after they fall.

Red maple (Acer rubrum) with bright yellow fall color. The leaf petioles still exhibit the red color typical of red maples.
Joey Williamson, ©2012 HGIC, Clemson Extension
Landscape Use: The red maple is a valuable shade tree. It is an excellent specimen for lawn or street. Roots can raise sidewalks, but are not so aggressive to prevent use as street trees. Irrigation is necessary for street plantings, however, if not placed in wet soils.
As feeding roots are close to the surface, red maple should be placed where turf is not desired beneath the canopy. Turf in this area would struggle to survive, and could not be mowed without possible damage to roots protruding from the soil.
Ideal soil for red maple is moist, slightly acidic and fertile. Nutrient deficiency may occur in alkaline soils (above 7.0 soil pH). It grows best in wet areas but tolerates occasional moderate drought. Although naturally suited to partial shade, they also thrive in full sun. Fertilize established plants in spring.
Branches droop as the tree matures. Prune at the earliest age possible to create clearance beneath the canopy. Prune to a single trunk. Prune branches growing at sharp, upright angles to the trunk, keeping branches growing at right angles to the trunk.
Problems: Flathead borers attack young stressed red maples. Leafhoppers and twig borers cause problems on leaves and twigs. Bacterial leaf scorch can cause damage to leaves.
Designated a “soft maple,” wood is somewhat brittle, and branches are rather weak and subject to storm damage. Bark is thin and easily damaged by mechanical impact. Surface roots protruding from the soil are damaged by lawnmowers. Most red maples are not resistant to decay and begin to decline when damaged. Roots occasionally girdle (encircle) the trunk or root ball. Cut any circling roots, especially if located at the top of the root ball or close to the trunk.
Cultivars:
- ‘October Glory’ – This selection has a good oval rounded form and grows 40 to 50 feet tall by 30 to 40 feet wide. Fall color is brilliant orange to red. Leaves may turn later than other maples and could be impaired by an early freeze.
- ‘Autumn Flame’ – This is one of the best cultivars. It has a pyramidal to rounded outline, and grows 40 to 60 feet tall by 30 to 50 feet wide. Fall color is an excellent orange to red. Very early fall color.
- ‘Red Sunset’ – This is also an exceptionally good cultivar, with early and intense red fall color. Grows to 40 to 50 feet tall by 30 to 40 feet wide.
- ‘Brandywine’ – This is a seedless male selection with a symmetrically oval shape and long lasting fall color that begins red and turns purple-red. Grows 35 to 50 feet tall by 25 to 40 feet wide.
- ‘Sun Valley’ – This is a seedless male selection with a symmetrically ovate crown and long lasting brilliant red fall color. Grows 20 to 35 feet tall by 15 to 25 feet wide.
Silver Maple (Acer saccharinum)
This is the fastest growing of all American maple species (10 to 12 feet in four to five years). It grows 50 to 70 feet tall and 35 to 50 feet wide. It tolerates a wide variety of soils but prefers moist soils in deep woods and along stream banks. This tree has a very vigorous root system and will buckle sidewalks and clog drain tiles. Due to its rapid growth, the wood is weak and prone to storm damage. It is susceptible to many diseases and insect pests, particularly the wooly alder aphid.
In spite of these problems, silver maple is a very popular tree and planted often, mainly because of its rapid growth and ease of culture. The bright green leaves are silvery underneath, and especially attractive when fluttering in the wind. The fall leaf color is greenish-yellow.
Freeman Maple (Acer x freemanii)
- ‘Autumn Blaze’ – This is a hybrid cross of red maple and silver maple. It has excellent orange-red fall color that persists later than many others, and is extremely fast-growing to 40 to 50 feet tall and 30 to 40 feet wide.
Sugar Maple (Acer saccharum)
Mature Height/Spread: Sugar maple is a large tree that grows 50 to 80 feet tall and 35 to 50 feet wide. In open areas the shape becomes dense and upright oval to rounded. In dense shade this selection grows tall and slender.
Growth Rate: It is a slow grower (1 foot per year), growing slightly faster when young. It is long-lived.
Ornamental Features: The most notable feature of this tree is the spectacular display of its leaves in the fall. The colors range from yellow to orange and red. The attractive pale yellow flowers appear before leaves emerge in the spring. The winged fruit mature in the fall, providing food for birds and squirrels.
Landscape Use: Sugar maple is an excellent shade and lawn tree. The dense canopy creates heavy shade, preventing turf from growing under the canopy unless lower limbs are removed. It does not thrive in crowded or polluted areas.
Ideal soil for sugar maple is fertile, moist, slightly acidic and well-drained. It thrives in both sun and shade. It is somewhat tolerant of drought in open areas where roots are allowed to expand; less so in restricted areas, where leaf scorch may be a problem.
Problems: Roots of sugar maples are often shallow. These roots and shade cast by the dense canopy prevent grass from growing beneath the tree.
Excessive drought can cause leaf scorch and can affect the overall vigor of the tree, making it susceptible to insect and disease problems. Irrigation should be provided during long, dry periods.
Branches droop slightly as the tree matures, and may require pruning for clearance beneath the canopy. Branches are attached at a strong angle and are not as susceptible to damage as red or silver maple.
Cultivars:
- ‘Green Mountain’ – This is a vigorous, fast-growing tree with yellow-orange-red fall color.

Southern sugar maple (Acer barbatum) foliage.
David J. Moorhead, University of Georgia, www.ipmimages.org
Southern Sugar (or Florida) Maple (Acer barbatum)
This tree may be used as a substitute for the sugar maple in the south. Although it can grow to 80 feet, it typically grows 20 to 25 feet. Fall color is yellow, orange and red. It is adapted to the entire state.
Chalkbark Maple (Acer leucoderme)
This is another southern variation of sugar maple. It is similar to Florida maple. Fall color varies from yellow-orange to deep red. This species tolerates dry soils. It is adapted to all of South Carolina.
Amur Maple (Acer ginnala)

Amur maple (Acer ginnala) leaves.
Paul Wray, Iowa State University, www.ipmimages.org
This is an excellent low-growing tree for patios and small yards. It grows 15 to 20 feet tall with an even greater spread. It is valued most for its brilliant red foliage in the fall and fruit that has either pink or red wings. It is more drought-tolerant than most maples, especially if located in the shade. Although it is adapted to all of South Carolina except along the southern coast, it prefers cooler climates.
Trident Maple (A. buergerianum)

Exfoliating bark of trident maple (Acer buergeranum).
Joey Williamson, ©2012 HGIC, Clemson Extension
This is a handsome lawn, patio or street tree with a pleasing form and small size. It makes a good bonsai specimen. It tends to grow with multiple trunks and low branching, but can be trained to a single trunk and pruned to make it branch higher. The bark becomes an attractive orange-brown with age. Fall color is yellow, orange or red.
Paperbark Maple (Acer griseum)

Exfoliating bark of paperbark maple (Acer griseum).
Karen Russ, ©HGIC, Clemson Extension
This excellent small tree has handsome bronze, papery bark that begins peeling at a young age. Slow growing, it will grow to about 20 to 30 feet tall and l5 to 25 feet wide. Although it is adaptable to all of South Carolina except along the southern coast, it prefers cooler climates. It does not tolerate drought or environmental stresses.
Note: Chemical control of diseases and insects on large trees is usually not feasible since adequate coverage of the foliage with a pesticide cannot be achieved.
Originally published 06/99
If this document didn’t answer your questions, please contact HGIC at hgic@clemson.edu or 1-888-656-9988.
Original Author(s)
Debbie Shaughnessy, Former HGIC Information Specialist, Clemson University
Robert F. Polomski, PhD, Associate Extension Specialist—Environmental Horticulture/Arboriculture, Clemson University
Revisions by:
Joey Williamson, PhD, HGIC Horticulture Extension Agent, Clemson University
This information is supplied with the understanding that no discrimination is intended and no endorsement of brand names or registered trademarks by the Clemson University Cooperative Extension Service is implied, nor is any discrimination intended by the exclusion of products or manufacturers not named. All recommendations are for South Carolina conditions and may not apply to other areas. Use pesticides only according to the directions on the label. All recommendations for pesticide use are for South Carolina only and were legal at the time of publication, but the status of registration and use patterns are subject to change by action of state and federal regulatory agencies. Follow all directions, precautions and restrictions that are listed.
Как вычислить производную в maple
б) переменная, по которой эту производную следует брать. Результатом выполнения процедуры является выражение, задающее искомую производную. Кроме того, существует неактивная форма процедуры вычисления производной – Diff () . В отличие от активной формы (той, что начинается со строчной буквы), неактивная используется не для непосредственного вычисления производной, а для символьной записи самой операции.
В дальнейшем выражение для производной может быть вычислено с помощью процедуры value() , если результат выполнения процедуры Diff () указать в качестве ее параметра.
Совет
Команда value() используется для вычисления значения не только упомянутой процедурыDiff (), но и других процедур в неактивной форме .
Кроме того, для вычисления производных в Maple может использоваться оператор D . Однако в отличие от процедуры diff() , которая вычисляет производную от символьного выражения, оператор D используется для вычисления производной от оператора. Например, производную от синуса можно вычислить следующим образом.

С помощью оператора D это делается несколько иначе.

Допустим и такой синтаксис вызова оператора D .

В последнем случае в первых скобках после оператора D указывается оператор (функция), на который действует D , а в следующих скобках – аргумент для полученного в результате оператора (в данном случае оператора D(sin)=cos ).
На заметку
С точки зрения Maple функция и оператор – практически одно и то же. Под функцией будем, ради удобства, понимать результат действия оператора на аргумент. Иногда, если это не приводит к недоразумениям, функцией будем также называть и соответствующий оператор .
Далее имеет смысл остановиться более детально на решении конкретных задач.
В последнем случае в первых скобках после оператора D указывается оператор (функция), на который действует D , а в следующих скобках – аргумент для полученного в результате оператора (в данном случае оператора D(sin)=cos ).
На заметку
С точки зрения Maple функция и оператор – практически одно и то же. Под функцией будем, ради удобства, понимать результат действия оператора на аргумент. Иногда, если это не приводит к недоразумениям, функцией будем также называть и соответствующий оператор .
Далее имеет смысл остановиться более детально на решении конкретных задач.
Задача 4.1
Найти производную функции .y:=x->(x*sin(a)+cos(a))*(x*cos(a)-sin(a))
В первую очередь определим саму функцию, от которой следует брать производную. Сделать это можно следующим образом.

Здесь у – функция (ее название), которой в качестве значения присваивается оператор. Оператор задается так: сначала указывается аргумент (или несколько аргументов), потом отображается стрелка ( › ), а после стрелки задается математическое выражение, определяющее действие оператора на аргумент. После того как функция задана, ее можно дифференцировать.

Если воспользоваться оператором D , то получим несколько иной результат.

Другими словами, результат такой операции – оператор. Приведенная выше запись значит, что аргументу х в результате действия на него оператора D(y) в соответствие ставится выражение, которое указано после стрелки.
Очень часто выражения, выводимые Maple в качестве результата выполнения той или иной операции, громоздки. Поэтому их приходится упрощать. В этом случае полезнапроцедура simplify() . В качестве ее аргумента указывается выражение, которое следует упрощать. В данном случае это переменная среды % . Переменная возвращает в качестве своего значения результат выполнения последней команды, причем не обязательно в текущем рабочем листе (в рассматриваемом случае переменная возвращает вычисленное выше выражение для производной).

Но даже после упрощения выражения его вид может не соответствовать представлениям пользователя о простоте и элегантности. На этот случай в Maple предусмотрен ряд полезных утилит, позволяющих привести выражения к приемлемому для пользователя виду. Среди них имеется такая процедура, как combine () .
Задача 4.2
Найти производную функции у(х) =х+х^х+х^(х^х).
В этом случае переменной у присвоим значение х+х^х+х^(х^х) (но теперь у – это уже не функция от х, а выражение!).

На заметку
Операция возведения в степень (^ или **) является бинарной. Это значит, что запись видаа^b^с некорректна. Следует использовать скобки: (а^b)^с .
При дифференцировании в качестве первого аргумента процедуры diff () указывается выражение у (зависящее от х, но хочется еще раз подчеркнуть, это не функциональная зависимость) >diff(y,x) ;

В отличие от предыдущей задачи, зависимость выражения у от х явно не указывается (здесь как раз и проявляется то, что зависимость не является функциональной). В предыдущей задаче переменная у объявлялась как оператор, поэтому при ее вызове необходимо было указать, на какой аргумент она действует. В данном же случае у – это просто название выражения.
Однако самый незатейливый способ вычисления производной представлен ниже.

В качестве первого параметра в ней использована уже упоминавшаяся переменная среды ( % ), а вторым параметром указана опция trig . Это инструкция для вычислительного ядра Maple использовать встроенные алгоритмы преобразования тригонометрических выражений: в частности, произведения тригонометрических функций заменяются, где это возможно, тригонометрическими функциями от суммы (разности) аргументов.
На заметку
Доступ к справочной информации о процедуре combine (), как и о прочих процедурах и командах, можно получить, разместив в рабочем листе курсор на вызове этой процедуры и нажав F1. Там можно найти полезную информацию об используемых при преобразовании выражений алгоритмах, а также об опциях, которые позволяют использовать те или иные алгоритмы .
Задача 4.3
Найти производную функции у(х)=х^(1/х).
В качестве параметра процедуры diff () можно сразу указать дифференцируемое выражение.

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

Переменная среды % , указанная в качестве первого параметра процедуры collect() , определяет выражение, которое нужно преобразовать, а второй параметр указывает на то, что в выражении слагаемые следует группировать по степеням 1/х.
На заметку
Если при вызове процедуры collect() вторым параметром указать не 1/х, а х, результат не изменится. Причина в том, что 1/х – это х в степени -1 .
Вычислительное ядро Maple достаточно эффективно работает не только с непрерывными функциями, но и с такими, которые имеют точки (или области) разрывов.
Задача 4.4
Найти производную функции .


При этом целая часть числа х возвращается функцией Maple floor() .
На заметку
ВMaple есть функция trune(), действие которой во многом аналогично действию функции floor(). Однако функция trunc() выделяет целую часть аргумента «в направлении О», в то время как функция floor () выделяет ближайшее целое число, не превышающее данное, указанное как аргумент. Для положительных чисел действия обеих функций эквивалентны, а для отрицательных чисел результаты отличаются на единицу .
Дальше процедура вычисления производной уже знакома.

Последнее выражение содержит функцию floor() , у которой указано два аргумента. В этом случае первый аргумент определяет порядок производной, второй – непосредственно аргумент. Другими словами, floor(1,x) – это первая производная от функции floor(x) , которая во всех точках равна нулю, кроме целочисленных значений аргумента – в этих точках производная не определена (поскольку floor(х) в этих точках имеет неустранимый разрыв).
Полученное выражение, при желании, можно упростить.

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

В качестве первого аргумента процедуры plot() , используемой для отображения двухмерных графиков, указывается выражение, график которого следует построить. В данном случае это выражение определяется значением переменной среды % . Второй аргумент является равенством, где указывается переменная, относительно которой следует строить график (левая часть равенства), а после знака равенства – диапазон ее изменения.
На заметку
Если диапазон изменения не указать, то по умолчанию график строится на интервале -10..10 .
Следующие параметры являются необязательными. В приведенном примере это заголовок (опция title ) и шрифт для этого заголовка (опция title-font ). Значения этих опций указываются после знака равенства: заголовок (его значение) заключается в двойные кавычки, а шрифт – это список (в квадратных скобках через запятую указываются тип шрифта, его стиль и размер). Подробнее об опциях процедуры plot() можно узнать из приложения в конце книги. Там же имеется и информация о возможных значениях этих опций.
На заметку
Списком в Maple называется последовательность разделенных через запятую элементов (самого разного характера), заключенная в квадратные скобки. В списке имеет значение порядок следования элементов – при изменении очередности элементов по определению полагают, что список изменился. Последовательность Maple – это группа (в обычном, не математическом значении этого слова) выражений, разделенных запятыми. Пример последовательности: x,sin(t),5.3*6. Пример списка: [x,sin(t),5.3*6].
Если последовательность заключить в фигурные скобки, получится множество. От списка множество отличается тем, что не имеет значения ни порядок следования, ни количество совпадающих элементов .
Внимание!
Некоторые параметры графиков можно изменять уже после их отображения в области вывода непосредственно с помощью кнопок контекстной панели двухмерной графики u команд раскрывающегося меню. Описание контекстной панели для двухмерных и трехмерных графиков приведено в главе 1, а описание опций можно найти в приложении.
Следует также иметь в виду, что внешний вид графиков, которые пользователь увидит на экране, если введет предложенные команды, может не соответствовать тому, что показано в книге. В этом случае желаемого результата можно добиться с помощью уже упомянутой контекстной панели или раскрывающегося меню. Как будет показано далее, внешний вид графиков можно задавать непосредственно с помощью опций процедурыplot(). Однако на данном этапе это не является первостепенной задачей .
Дифференцирование
Для вычисления производных в Maple имеются две команды:
1) прямого исполнения — diff(f,x), где f — функция, которую следует продифференцировать, x — имя переменной, по которой производится дифференцирование.

2) отложенного исполнения — Diff(f,x), где параметры команды такие же, как и в предыдущей. Действие этой команды сводится к аналитической записи производной в виде . После выполнения дифференцирования, полученное выражение желательно упростить. Для этого следует использовать команды simplify factor или expand, в зависимости от того, в каком виде вам нужен результат.

Для вычисления производных старших порядков следует указать в параметрах x$n, где n — порядок производной; например:

Полученное выражение можно упростить двумя способами:
Дифференциальный оператор
Для определения дифференциального оператора используется команда D(f) — f-функция. Например:
Реферат: Дифференцирование, интегрирование, вычисление пределов, сумм, рядов функций и математических выражений в системе Maple
· уметь применять указанные команды для решения математических задач.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1. Дифференцирование выражений
Команды diff ( ) и Diff ( ) предназначены для вычисления обыкновенных и частных производных аналитического выражения по одной или нескольким переменным. Вторая команда является отложенной командой, которая не вычисляет производную от выражения, а просто отображает математическую запись взятия производной. Результат действия отложенной команды можно присвоить переменной Maple, а в дальнейшем при помощи команды value ( ) вычислить результат этой отложенной команды. Отложенная форма команды удобна, когда необходимо видеть, какие операции были сделаны для получения нужного выражения. Кроме этой команды еще целый ряд команд имеют отложенную форму, информацию о которых можно получить в Справке.
Синтаксис команды дифференцирования следующий:
diff (выражение, переменная_1, переменная_2, . переменная_n);
diff (выражение, [переменная_1, переменная_2, . переменная_n]);
В результате выполнения любой из приведенных команд будет вычислена частная производная n-гo порядка от заданного первым параметром выражения по заданным n переменным.
При вычислении производных высокого порядка можно использовать оператор последовательности $, который позволяет проще и нагляднее задать производную. Например, для вычисления третьей производной функции f (х) по переменной х можно использовать команду diff (f (х), х, х, х), в которой три раза указано дифференцирование по переменной х, или применить в команде дифференцирования оператор последовательности х$3, что упрощает и делает более наглядным задание третьей производной: diff (f (х), х$3).
Пример 1. Вычисление производных.
Последние три команды показывают использование отложенной формы команды дифференцирования.
2. Интегрирование выражений
Команда int( ) имеет отложенную форму Int( ) и осуществляет интегрирование выражений по заданной переменной. Эта команда вычисляет неопределенный интеграл от выражения (при этом, правда, в ответе не будет никакой постоянной интегрирования) используя следующий синтаксис:
int (выражение, переменная);
Определенный интеграл вычисляется при следующем синтаксисе команды:
int (выражение, переменная = a..b);
где a и b являются пределами интегрирования, причем эти пределы могут быть и аналитическими выражениями.
Пример 2. Интегрирование функций.
Для символьного вычисления определенного интеграла существуют две опции, управляющие обработкой разрывов подынтегральной функции. Эти опции задаются третьим параметром в командах int( ) и Int( ).
По умолчанию команда интегрирования проверяет выражение на непрерывность в области интегрирования и вычисляет интеграл как сумму отдельных определенных интегралов на промежутках непрерывности функции. Опция `continuous` отключает этот режим и вычисляет интеграл как разность значений первообразной подынтегральной функции в точке начала и конца промежутка интегрирования. Еще одна опция `CauchyPrincipalValue` вычисляет несобственные интегралы первого и второго рода в смысле главного значения Коши.
Если Maple не находит замкнутую форму выражения для определенного интеграла, то команда интегрирования возвращает вызов самой себя (в области вывода печатается математическая запись вычисления интеграла, как при обращении к отложенной команде интегрирования). В таких случаях можно вычислить значение определенного интеграла численным способом с помощью команды evalf ( ). Синтаксис при этом следующий:
evalf( int (f,x=a. .b) ) ;
evalf ( Int (f,x=a. .b) ) ;
evalf (Int (f ,x=a. .b), digits, flag);
Параметр digits позволяет задать число значащих цифр при вычислениях приближенного значения интеграла (по умолчанию это число равно числу значащих цифр, определенных значением системной константы Digits).
При численном интегрировании по умолчанию используется квадратурная формула Кленшо-Куртиса (Clenshaw-Curtis). Если в подынтегральном выражении встречается сингулярность, то применяется специальная методика символьного анализа для ее разрешения. Для задач с неустранимыми сингулярностями используется адаптивный метод двойных экспоненциальных квадратур. Параметр flag позволяет явно задать метод численного интегрирования. Он может принимать значения, представленные в табл. 1.
Таблица 1. Значения параметра flag при численном интегрировании.
| Значение | Смысл |
| _Ccquad | Применяется только квадратура Кленшо-Куртиса без вызова процедуры обработки сингулярности |
| _Dexp | Применяется адаптивный метод двойных экспоненциальных квадратур |
| _Ncrule | Применяется метод квадратурной формулы Ньютона-Котеса, являющийся методом фиксированного порядка, и не эффективен для высоких точностей (Digits > 15) |
Пример 3 помогает освоиться с использованием вышеприведенной методики.
Пример 3. Численное интегрирование функций.
Первый интеграл примера 3 вычисляется в аналитическом виде, но представляется через значение специальной функции интегральный косинус. Для получения ответа в виде десятичного числа применяется алгоритм численного интегрирования. Здесь же показано использование отложенной формы команды интегрирования для более удобного представления ответа.
Численное интегрирование даже функций, внешний вид которых представляется не достаточно сложным, может потребовать значительного времени. Если будет казаться, что Maple завис (а такое случается), то надо следить за изменением времени в правой части строки состояния. Если оно изменяется, то просто следует дождаться завершения интегрирования.
В системе Maple имеется набор команд для полного исследования функций: limit ( ) – для отыскания предела функции, sum ( ) – для нахождения всевозможных конечных сумм, series ( ) – для разложения функций в ряды Тейлора, Маклорена и Лорана, extrema ( ) – для исследования экстремумов функций как одной, так многих переменных, minimize ( ) и maximize ( ) – для поиска минимума и максимума функции на заданном промежутке. Описание всех этих и других команд можно, естественно, найти в Справке Maple.
Для нахождения предела выражения или функции в Mapleиспользуется команда limit (параметр 1, параметр 2). Первый параметр – выражение, второй параметр — имя переменной, приравненное значению переменной в точке предела. Необязательный третий параметр – направление предела. Если направление не задано, вычисляется стандартный двусторонний предел. Если предел не существует, в качестве ответа возвращается сообщение «undefined». Если Mapleне способен вычислить предел (однако он может существовать), возвращается невыполненная команда.
В большом количестве случаев выражение, которое не имеет двустороннего предела, имеет односторонний предел:
В команде limit ( )может присутствовать также необязательная опция complex или realв качестве третьего параметра аргумента. Эта опция определяет, в комплексной или действительной области вычисляется предел.
Математический анализ
Применение систем символьной математики особенно эффективно при решении задач математического анализа. Maple 7 обладает богатейшей базой данных по формулам математического анализа и может полноценно заменять тома книг со справочными данными. При этом важно, что Maple не только «знает» многие формулы, но и может успешно использовать их при решении достаточно сложных задач в аналитическом (символьном) виде.
Начнем рассмотрение таких операций с вычисления сумм последовательностей. Вычисление суммы членов некоторой последовательности f(k) при изменении целочисленного индекса k от значения m до значения n с шагом +1, то есть выражения:

является достаточно распространенной операцией математического анализа. Для вычисляемой и инертной форм сумм последовательностей служат следующие функции:
Здесь f — функция, задающая члены суммируемого ряда, k — индекс суммирования, тип — целочисленные пределы изменения k, alpha — RootOf- выражение. Значение n может быть равно бесконечности. В этом случае для n используется обозначение ? или infinity .
Допустимо (а зачастую рекомендуется с целью исключения преждевременной оценки суммы) заключение f и k в прямые кавычки, например sum(‘f’, ‘k’=m. .n). Это сделано во всех примерах справочной системы Maple 7, относящихся к функции sum . Мы, однако, отказываемся от этого в тех случаях, когда результат идентичен при заключении f и k в кавычки и без такового. Во избежание путаницы, связанной с этой тонкостью синтаксиса функции sum , рекомендуется все примеры проверять после команды restart , убирающей предыдущие определения f и k.
Последовательности с заданным числом членов
Простейшими являются суммы последовательностей с фиксированным числом членов. Ниже даны примеры применения этих функций:

Обратите внимание, что во втором примере система отказалась от вычисления, а в третьем даже выдала сообщение об ошибке, связанной с тем, что переменной k перед вычислением сумм было присвоено численное значение 2. После заключения выражения и переменной индекса k в прямые кавычки ошибка исчезла, поскольку такая операция означает, что переменной придается неопределенное значение.
Суммы с заданным пределом
Особый класс образуют последовательности, у которых предел задается в общем виде значением переменной. Ниже представлен ряд последовательностей, у которых предел задается как 0.. n или 1.. n:

Такого рода последовательности, как видно из приведенных примеров, нередко имеют аналитические выражения для своего значения. Его вычисление намного проще, чем формирование заданной последовательности с прямым суммированием ее членов. Некоторые из таких сумм выражаются через специальные математические функции.
Суммы бесконечных последовательностей
Многие суммы бесконечных последовательностей сходятся к определенным численным или символьным значениям, и система Maple 7 способна их вычислять. Это поясняют следующие примеры:

Сумма от перемены мест слагаемых меняется!
Даже школьники хорошо знают, что от перестановки слагаемых сумма не изменяется. Однако Maple 7 (кстати, как и большинство других систем компьютерной математики) при вычислении сумм, увы, этому правилу не следует. Приведенные ниже примеры наглядно показывают этот просчет системы:

При вычислении сумм последовательностей надо строго соблюдать прямой (нарастающий) порядок задания значений индексной переменной суммы. Нарушение этого порядка чревато грубыми ошибками.
Могут встречаться множественные суммы по типу «сумма в сумме». Ограничимся приведением примера двойной суммы, имеющей аналитическое значение:

При конкретном значении N такую сумму нетрудно вычислить подстановкой:
Как видно из приведенных примеров, средства вычисления сумм последовательностей Maple 7 позволяют получать как численные, так и аналитические значения сумм, в том числе представляемые специальными математическими функциями.
Вычисление произведений членов последовательностей
Основные формулы для произведения членов последовательностей
Аналогичным образом для произведений членов f(i) некоторой последовательности, например вида:

используются следующие функции:
product(f,k); product(f,k=m..n): product (f,k=alpha):
Product(f,k); Product(f,k=m..n): Product(f,k=alpha).
Обозначения параметров этих функций и их назначение соответствуют приведенным для функций вычисления сумм. Это относится, в частности, и к применению одиночных кавычек для f и k.
Примеры вычисления произведений членов последовательностей
Примеры применения функций вычисления произведений даны ниже:

Как и в случае вычисления сумм, вычисление произведений возможно как в численной, так и в аналитической форме — разумеется, если таковая существует. Это показывает следующий пример:

Нетрудно понять, что при i, стремящемся к бесконечности, перемножаемые члены последовательности стремятся к нулю, а потому к нулю стремится и их произведение. Вопросы доказательства подобных утверждений находятся за рамками данного учебного курса, ибо он посвящен не математике как таковой, а конкретной программе для математики — Maple 7.
От перемены места сомножителей произведение меняется!
Хотя произведение не зависит от порядка расположения сомножителей, их перестановка в Maple 7 недопустима. Это иллюстрируют следующие примеры:

При вычислении произведений надо строго соблюдать прямой (нарастающий) поря-— док задания значений индексной переменной произведения. Нарушение этого порядка чревато грубыми ошибками.
Функции дифференцирования выражений diff и Diff
Вычисление производных функций f n (x) = df n (x)/dx n n -го порядка — одна из самых распространенных задач математического анализа. Для ее реализации Maple 7 имеет следующие основные функции:
diff(a., xl, х2, . xn) diff(a, [xl, х2, . хn])
Diff(a, xl, x2, . xn) Diff(a, [xl, x2, . хn])
Здесь а — дифференцируемое алгебраическое выражение, властности функция f(xl. x2, . хn) ряда переменных, по которым производится дифференцирование. Функция Diff является инертной формой вычисляемой функции diff и может использоваться для естественного воспроизведения производных в документах. Первая из этих функций (в вычисляемой и в инертной форме) вычисляет частные производные для выражения а по переменным xl, х2, . .хn . В простейшем случае diff(f(x),x) вычисляет первую производную функции f(x) по переменной х . При n, большем 1, вычисления производных выполняются рекурсивно, например diff (f (х), х, у) эквивалентно diff(diff (f(x), х), у). Оператор $ можно использовать для вычисления производных высокого порядка. Для этого после имени соответствующей переменной ставится этот оператор и указывается порядок производной. Например, выражение diff (f(x) ,x$4) вычисляет производную 4-го порядка и эквивалентно записи diff (f (х) ,х,х,х.х). A diff (g(x,y) ,x$2,y$3) эквивалентно diff(g(x,y),x,x.y,y,y) ;
Примеры вычисления производных:

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


Получаемые в результате дифференцирования выражения могут входить в другие выражения. Можно задавать их как функции пользователя и строить графики производных.
Дифференциальный оператор D
Для создания функций с производными может также использоваться дифференциальный оператор D . Порою он позволяет создавать более компактные выражения, чем функции diff и Diff . Дифференциальный оператор можно записывать в следующих формах: D(f) или D[i](f), где параметр f — выражение или имя функции, i — положительное целое число, выражение или последовательность. Оператор D(f) просто вычисляет имя производной от f, поскольку в этой форме он эквивалентен unnaplyCdiff (f (х) ,х) ,х) . В форм е D(f) (х) этот оператор подобен diff (f (x) ,x).
Приведем примеры дифференцирования функций, заданных только именами, и функций с одним параметром:

Следующий пример показывает дифференцирование функции пользователя fun с применением дифференциального оператора D и функции diff :

Дифференциальный оператор можно применять и для дифференцирования функций нескольких переменных по заданной переменной:


Пример применения дифференциального оператора для функции f, заданной программным объектом-процедурой, представлен ниже:

Этот пример показывает реализацию схемы Горнера для полинома b степени n от переменной х. При этом применение оператора дифференцирования возвращает процедуру. Ряд интересных возможностей по вычислению производных предоставляет пакет расширения student .
Вычисление неопределенных интегралов
Вычисление неопределенного интеграла обычно заключается в нахождении первообразной функции. Это одна из широко распространенных операций математического анализа.
Для вычисления неопределенных и определенных интегралов Maple V предоставляет следующие функции:
Здесь f — подынтегральная функция, х — переменная, по которой выполняются вычисления, а и b — нижний и верхний пределы интегрирования, continuous — необязательное дополнительное условие.
Maple 7 старается найти аналитическое значение интеграла с заданной подынтегральной функцией, Если это не удается (например, для «не берущихся» интегралов), то возвращается исходная запись интеграла. Для вычисления определенного интеграла надо использовать функцию evalf(int(f ,х=а. .b)). Ниже приведены примеры вычисления интегралов:

Обратите внимание, что в аналитическом представлении неопределенных интегралов отсутствует произвольная постоянная С. Не следует забывать о ее существовании. Для вычисления кратных интегралов (двойных, тройных и т. д.) следует применять функцию int (или Int ) внутри такой же функции, делая это столько раз, сколько нужно. В отличие от функции дифференцирования для функции интегрирования нельзя задавать подынтегральные функции в виде списка или множества. Возможно вычисление сумм интегралов и интегралов сумм, а также интегралов от полиномов:


Maple 7 успешно берет большинство справочных интегралов. Но не всегда форма представления интеграла совпадает с приведенной в справочнике. Иногда требуется доводка ее до нужной формы, а иногда Maple 7 упорно дает иное выражение (в большинстве случаев правильное). Тем не менее следует помнить, что всегда может найтись интеграл, который окажется «не по зубам» и Maple 7.
Конвертирование и преобразование интегралов
В некоторых случаях Maple 7 не может вычислить интеграл. Тогда она просто повторяет его. С помощью функций taylor и convert можно попытаться получить аналитическое решение в виде полинома умеренной степени, что демонстрирует следующий характерный пример:

Естественно, что в этом случае решение является приближенным, но оно все же есть и с ним можно работать, например построить график функции, представляющей данный интеграл.
Система Maple непрерывно совершенствуется. Например, в Maple V R4 интеграл с подынтегральной функцией ехр(x^4) не брался, а система Maple 7 с легкостью берет его:

Хотя полученный результат, выраженный через гамма- функцию, нельзя назвать очень простым, но он существует и с ним также можно работать. Например, можно попытаться несколько упростить его, используя функцию simplify :

Разумеется, существует также множество иных возможностей и приемов для выполнения операции интегрирования. В дальнейшем мы неоднократно будем рассматривать и другие, более специфические функции для осуществления интегрирования и вычисления интегральных преобразований. В частности, ряд средств вычисления интегралов реализован в пакете student .
Вычисление определенных интегралов
Другой важной операцией является нахождение в аналитической или численной форме определенного интеграла:

Определенный интеграл удобно трактовать как площадь, ограниченную кривой f(x), осью абсцисс и вертикалями с координатами, равными а и b . При этом площадь ниже оси абсцисс считается отрицательной. Таким образом, значение определенного интеграла — это число или вычисляемое выражение.
Для вычисления определенных интегралов используются те же функции int и Int, в которых надо указать пределы интегрирования, например х=а.. b, если интегрируется функция переменной х. Это поясняется приведенными ниже примерами:


Как видно из этих примеров, среди значений пределов может быть бесконечность, обозначаемая как infinity .
Каверзные интегралы и визуализация результатов интегрирования
Выше мы уже сталкивались с примерами вычисления «каверзных» интегралов. Немного продолжим эту важную тему и заодно рассмотрим приемы визуализации вычислений, облегчающие понимание их сущности.
В Соросовском образовательном журнале (№ 6, 2000, с. 110) приводятся не совсем удачные примеры вычислений определенного интеграла с применением системы Mathematica, при которых якобы встречаются настолько большие трудности, что они не под силу любому калькулятору или компьютеру. При некоторых попытках вычисления этого интеграла он давал нулевое значение. Но Maple 7 (кстати, как и Mathematica 4) с легкостью берет этот интеграл и позволяет сразу и без какой-либо настройки вычислить для него как точное, так и приближенное значение:

Хотя первое из решений является самым кратким и, скорее всего, единственным точным решением, оно может и должно насторожить опытного пользователя. Дело в том, что в полученном выражении фигурируют большие числа, и потому для правильного приближенного решения (в виде вещественного числа в научной нотации) нужно заведомо использовать аппарат точной арифметики и ни в коем случае не полагаться на погрешность, заданную по умолчанию, — вот в чем основная ошибка в упомянутой статье.
Именно поэтому левая и правая части приближенного решения (выполненного с точностью до 30 цифр) заметно различаются. Знак равенства между ними вызывает чувство протеста у истинных математиков. На самом деле, не надо забывать, что знак равенства здесь был введен просто как текстовый комментарий, — вы можете попробовать сами заменить его на более приемлемый здесь знак приближенного равенства. Любопытно, что предшествующая версия Maple 6 при задании погрешности по умолчанию вычисляла значение этого интеграла также как 0, тогда как Maple 7 «поумнела» уже настолько, что дает значение 0.01835046770 даже в этом случае.
При таких условиях многие читатели могут сомневаться в корректности конечного результата. Между тем Maple 7 позволяет наглядно проиллюстрировать характер промежуточных вычислений подобных интегралов. Например, для этого можно вычислить неопределенный интеграл подобного вида:

Нетрудно заметить, что решение распадается на множество слагаемых, соответствующих общеизвестному интегрированию по частям. В каждом слагаемом имеются большие числа, и потому принципиально необходимо применение арифметики высокой точности (или разрядности). Maple 7 такими средствами, причем превосходными, обладает.
Продолжим изучение данного «каверзного» интеграла. Опробуем силы Maple 7 на интеграле более общего вида, где конкретный показатель степени заменен на обобщенный —п. Здесь нас ожидает приятный сюрприз — Maple 7 с легкостью выдает аналитическое решение для данного определенного интеграла:


Однако радоваться несколько преждевременно. Многие ли математики знают, что это за специальная функция — WhittakerM? Студенты, любящие подшучивать над своим профессором, могут попробовать спросить у него об этом. Скорее всего, профессор стушуется, а потом будет долго копаться в литературе, прежде чем найдет ее определение и сможет разъяснить, что это такое. Но хуже другое — Maple 7 при конкретном n = 20 дает грубо неверное решение — 0 (почему — уже объяснялось). Забавно, что при этом сама по себе функция WhittakerM вычисляется для n = 20 без проблем:
А теперь присмотритесь к новому результату вычисления злополучного интеграла. Оказывается, он уже не содержит больших чисел, свойственных прямому решению! Зная значение WhittakerM с погрешностью по умолчанию, можно уверенно вычислить приближенное численное значение интеграла с тойже погрешностью, уже не прибегая к арифметике высокой точности:
Итак, мы вычислили нужный интеграл несколькими разными способами. В этом и проявляется могущество современной математики, достойно представленной такими системами, как Maple 7. Заинтересованный читатель может попытаться найти еще ряд методов решения данного интеграла и преуспеть в этом! Мы же как торжество Maple 7 приведем график зависимости значений данного интеграла от показателя степени n при его изменении от 0 до 50 (рис. 8.1). Надо ли говорить о том, что полученный результат имеет куда более важное значение, чем вычисление нашего злополучного интеграла при конкретном n = 20? А плавный ход графика показывает, что в вычислении данного интеграла нет никаких признаков неустойчивости решения при изменении n , если соблюдать правило выбора погрешности вычислений.
Наличие у функции особых (сингулярных) точек нередко затрудняет выполнение с ней ряда операций, таких как численное интегрирование. В этом случае могут помочь соответствующие параметры. Например, вычисление следующего интеграла дает явно неудобное выражение в виде набора значений, разных для разных интервалов измененияа:


Рис. 8.1. Значение интеграла от х^n*ехр(-х) как функция n
Увы, попытка вычислить по этому выражению значение интеграла не всегда дает корректный результат. Например, при х от -2 до 0 получаются бесконечные значения. Да и график зависимости значения интеграла от параметра a имеет подозрительный вид (рис. 8.2). Это как раз тот случай, когда с ходу доверяться результатам Maple 7 рискованно.
В данном случае приходится констатировать давно известный факт — системы компьютерной математики (и Maple 7 в их числе) не всесильны и всегда можно найти интегралы даже с обманчиво простым внешним видом, которые поставят систему в тупик или дадут неверные результаты в той или иной области изменения аргументов. Особенно, опасны интегралы от кусочных функций с разрывами и интегралы, представляемые такими функциями. Именно к ним и относится обсуждаемый сейчас интеграл. Не меньше проблем вызывают интегралы от функций, области определения которых заданы некорректно или просто не изучены.
Между тем ситуация вовсе не является безнадежной. Надо просто знать, что предпринять, чтобы подсказать системе правильный путь решения. Например, в нашем случае, применив параметр continuous (в апострофах), можно получить куда более простое выражение:


Рис. 8.2. Построение графика зависимости значений интеграла с подынтегральной функцией 1/(х+а)^2 от параметра а
Рисунок 8.3 показывает это решение с двумя важными дополнениями — оно представляется функцией пользователя, а ее график строится при изменении а от -10 до 10.
Приведем еще один пример «каверзного» интеграла довольно простого вида:
Этот интеграл вообще не берется функцией int без указания параметров (в строке вывода сообщается об этом). Но введение параметра CauchyPrinci pal Value позволяет получить значение интеграла:

Возьмем еще один наглядный пример — вычисление интеграла от синусоидальной функции при произвольно больших пределах, но кратных 2я! Очевидно, что при этом (учитывая равность площадей положительной и отрицательной полуволн синусоиды) значение интеграла будет равно 0. Например:

Рис. 8.3. Зависимость значения интеграла с подынтегральной функцией 1/(х+а)^2 и пределами от 0 до 2 от параметра а
Однако распространение этого правила на бесконечные пределы интегрирования является грубейшей ошибкой. Интеграл такого рода уже не берется (или говорят, что он не сходится), и Maple 7 дает соответствующий результат:
Во многих областях техники часто употребляются выражения «затухающая синусоида» или «нарастающая синусоида». Иногда говорят и о «синусоиде с уменьшающейся или возрастающей амплитудой». Бесполезно утверждать, что эти названия принципиально ошибочны — в рамках допущений, принятых в технических расчетах, такие утверждения весьма наглядны и эта, в частных случаях вполне оправданная, наглядность с позиций математики идет в ущерб точности фундаментальных определений.
Возьмем, к примеру, широко распространенную функцию: y(t) = exp(-t)sin(2*Pi*t) . Построим ее график и вычислим определенный интеграл от этой функции с пределами от 0 до oo (рис. 8.4).
С первого взгляда на график видно, что Каждая положительная полуволна функции (затухающей «синусоиды») явно больше последующей отрицательной полуволны. К тому же осцилляции функции быстро затухают и через десяток-другой периодов значение функции становится исчезающе малым. Вот почему Maple 7 уверенно вычисляет интеграл с такой подынтегральной функцией. Ее свойство — неопределенность при t->oo исчезает.

Рис. 8.4. График «затухающей синусоиды» и интеграл от нее с пределами от 0 до oo
Однако называть такую функцию «затухающей синусоидой», безусловно, неточно. Умножение sin(2pt) на множитель, зависящий от времени t , лишает функцию главного свойства синусоиды — ее строгой симметрии. Так что exp(-t)sin(2pt) — это совсем новая функция со своими отличительными свойствами. Главные из них — несимметрия при малых t и исчезающе малые значения при больших t . Ни тем, ни другим свойством обычная синусоида не обладает. А теперь возьмем антипод этой функции — «синусоиду с экспоненциально нарастающей до стационарного значения 1 амплитудой». Такая функция записывается следующим образом:
Ее график и попытки вычисления интеграла с такой подынтегральной функцией приведены на рис. 8.5.
Обратите внимание на то, что здесь прямое вычисление интеграла к успеху не привело, хотя из графика функции видно, что каждая положительная полуволна в близкой к t = 0 области явно больше по амплитуде, чем последующая отрицательная полуволна. Однако в отличие от предыдущей функции при больших значениях аргумента данная функция вырождается в обычную синусоиду с неизменной (и равной 1) амплитудой. Вот почему трудяга Maple 7 честно отказывается вычислять интеграл от такой коварной функции.

Рис. 8.5. График «экспоненциально нарастающей синусоиды» и интеграл от нее с пределами от 0 до oo
На этом примере очень четко отслеживается разница в мышлении инженера и математика. Инженер скажет, что интеграл с такой функций должен быть, поскольку вначале положительные площади явно меньше отрицательных, а в дальней области они выравниваются, и потому площадь каждого «периода» функции становится примерно нулевой. По-своему инженер прав — если его не интересует точное определение подынтегральной области в заоблачных высотах бесконечности, то мы должны получить то же значение интеграла, что в предшествующем примере, но со знаком «минус». И в самом деле (см. рис. 8.5), интегрируя в пределах от 0 до100п, мы получаем именно это значение (опять-таки в пределах погрешности по умолчанию).
И все же прав здесь математик — переход от интегрирования с конечным (да еще и кратным 2тс) пределом к интегрированию с бесконечным пределом — далеко не простая операция. Она требует учета поведения функции при значении аргумента, стремящегося к бесконечности, а тут говорить о нулевой алгебраической площади синусоиды некорректно, ибо никакой кратности величине 2л у бесконечности нет! Остается лишь радоваться тому, что система Maple 7 может примирить математиков и инженеров, дав им в руки средства, позволяющие решать подобные задачи с приближениями, приемлемыми для тех или иных категорий пользователей.
Мы подробно рассмотрели этот класс задач потому, что многие важные интегральные преобразования (например, преобразование Фурье) оперируют с подобными подынтегральными функциями и надо тщательно разбираться в областях их применения.
Приведенные выше примеры показывают, что интегрирование является гораздо более тонким делом, чем это кажется на первый взгляд. Тут уместно напомнить, что и студент вуза, и профессор математики университета должны очень внимательно исследовать возможности вычисления интегралов того или иного типа разными математическими системами. Иными словами, применять системы компьютерной математики должны только пользователи, обладающие не столько учеными званиями и степенями, сколько культурой выполнения математических вычислений.
Интегралы с переменными пределами интегрирования
К интересному классу интегралов относятся определенные интегралы с переменными пределами интегрирования. Если обычный определенный интеграл представлен числом (или площадью в геометрической интерпретации), то интегралы с переменными пределами являются функциями этих пределов.
На рис. 8.6 показано два примера задания простых определенных интегралов с переменным верхним пределом (сверху) и обоими пределами интегрирования (снизу).

Рис.8.6. Примеры интегралов с переменными пределами интегрирования
На этом рисунке построены также графики подынтегральной функции (это наклонная прямая) и функции, которую задает интеграл.
Вычисление кратных интегралов
Функции int и Int могут использоваться для вычисления кратных интегралов, например двойных и тройных. Для этого функции записываются многократно:

Обратите внимание на нечеткую работу функции evalf в последнем примере. Эта функция уверенно выдает значение evalf (Pi) в форме вещественного числа с плавающей точкой, но отказывается вычислить значение интеграла, в которое входит число Pi. Этот пример говорит о том, что отдельные недостатки у Maple 7 все же есть, как и поводы для ее дальнейшего совершенствования.
Описанная возможность вычисления кратных интегралов функциями Int и int не является вполне законной. В пакете расширения student имеются дополнительные функции интегрирования, которые дополняют уже описанные возможности. В частности, в этом пакете есть функции для вычисления двойных и тройных интегралов.
Вычисление пределов функций
Для вычисления пределов функции f в точке х =а используются следующие функции:
Здесь f — алгебраическое выражение, х — имя переменной, dir — параметр, указывающий на направление поиска предела ( left — слева, right — справа, real — в области вещественных значений, complex — в области комплексных значений). Значением а может быть бесконечность (как положительная, так и отрицательная). Примеры применения этих функций для вычисления пределов в точке приведены ниже:

Обратите внимание на то, что в первом примере фактически дано обозначение предела в самом общем виде. Рисунок 8.7 показывает вычисление пределов функции tan(x) в точке х=n/2 , а также слева и справа от нее. Для указания направления используются опции right (справа) и left (слева). Видно, что в самой точке предел не определен (значение undefined ), а пределы справа и слева уходят в бесконечность.

Рис. 8.7. Пример вычисления пределов функции tan(x) и построение ее графика
Показанный на рис. 8.7 график функции tan(x) наглядно подтверждает существование пределов справа и слева от точки х = П/2 и отсутствие их в самой этой точке, где функция испытывает разрыв от значения +oo до -oo .
Разложение функций в ряды
Разложение в степенной ряд
Огромное разнообразие функций давно заставляло математиков задумываться над возможностями их приближенного, но единообразного представления. К таким представлениям относятся различные ряды, сходящиеся к значениям функций в окрестности заданной точки. Для разложения функции или выражения ехрr в обычный степенной ряд служат функции series(ехрr, eqn) и series(expr, eqn, n). Здесь ехрr — разлагаемое выражение, eqn — условие (например, в виде х=а ) или имя переменной (например, х) и n — необязательное и неотрицательное целое число, задающее число членов ряда (при его отсутствии оно по умолчанию берется равным 6, но может переустанавливаться системной переменной Order ). Если в качестве eqn задано имя переменной, то это соответствует разложению по этой переменной в области точки с ее нулевым значением. Задав eqn в виде х=х0 , можно получить разложение по переменной х в окрестности точки х = х 0 .
Разложение получается в форме степенного многочлена, коэффициенты которого задаются рациональными числами. Остаточная погрешность задается членом вида 0(х)^n. При точном разложении этот член отсутствует. В общем случае для его удаления можно использовать функцию convert . Ниже представлены примеры разложения различных выражений в ряд:

Здесь видно, что член, обозначающий погрешность, отсутствует в тех разложениях, которые точны, например, в разложениях степенных многочленов. Для визуализации приближения рядами заданных аналитических зависимостей очень полезно построить на одном графике кривые аналитической зависимости и разложения в ряд. Мы это покажем чуть позже на примере ряда Тейлора.
Разложение в ряды Тейлора и Маклорена
Для разложения в ряд Тейлора используется функция taylor(expr, eq/nm, n) . Здесь ехрr — разлагаемое в ряд выражение, eq/nm — равенство (в виде х=а ) или имя переменной (например, х), n — необязательный параметр, указывающий на порядок разложения и представленный целым положительным числом (при отсутствии указания порядка он по умолчанию принимается равным 6). При задании eq/nm в виде х=а разложение производится относительно точки х =а . При указании eq/nm в виде просто имени переменной разложение ищется в окрестности нулевой точки, то есть фактически вычисляется ряд Маклорена.
Ниже представлены примеры применения функции taylor :

Не все выражения (функции) имеют разложение в ряд Тейлора. Ниже дан пример такого рода:
> taylor(l/x+x^2,x,5):
Error, does not have a taylor expansion, try seriesQ
> series(l/x+x^2,x,10);
je-4*2
> taylor(l/x+x*2,x=l,5);
2 +x — 1 + 2(x — 1f — (x — 1 )3 +(x — 1 )4 +O((x- 1 )5)
Здесь Maple 7 отказалась от вычисления ряда Тейлора в окрестности точки х = 0 (по умолчанию) и предложил воспользоваться функцией series . Однако эта функция просто повторяет исходное разложение. В то же время в окрестности точки х = 1 ряд Тейлора вычисляется.
Для разложения в ряд Тейлора функций нескольких переменных используется библиотечная функция mtaylor :
Здесь f — алгебраическое выражение, v — список имен или равенств, n — необязательное число, задающее порядок разложения, w — необязательный список целых чисел, задающих «вес» каждой из переменных списка v. Эта функция должна вызываться из библиотеки Maple 7 с помощью команды readlib :

Для получения только коэффициента при k=м члене ряда Тейлора можно использовать функцию coeftayl (expr,var,k) . Если ехрr — функция нескольких переменных, то k должен задаваться списком порядков коэффициентов.
Пример документа — разложение синуса в ряд
Полезно сочетать разложение выражений (функций) в ряд Тейлора с графической визуализацией такого разложения. Рассмотрим документ, в котором наглядно показаны возможности представления функции рядами Тейлора и Маклорена. На рис. 8.8 показана первая часть документа. Она дает пример разложения в ряд Тейлора функции sin(x) с построением ее графика и графика по разложению в ряд. Поскольку выбрано разложение относительно точки х = 0 , то полученный ряд является рядом Маклорена. Это хороший пример визуализации результатов математических вычислений — здесь наглядно видно, что при малых значениях х график ряда практически повторяет разлагаемую функцию, но затем начинает сильно от нее отходить.
Обратите внимание, несмотря на то что мы задали шестой порядок ряда, последний член имеет только пятый порядок. Это связано со спецификой данного разложения — в нем просто отсутствуют члены четного порядка. Можно буквально в считанные секунды попробовать изменить число членов ряда или диапазон изменения переменной х , что и показано на рис. 8.9 (вторая часть документа). При этом легко убедиться в том, что при больших х поведение ряда не имеет ничего общего с поведением разлагаемой в ряд функции, в частности нет и намека на периодичность разложения, которая присуща тригонометрической функции sin(x).
В заключительной (третьей) части этого документа (рис. 8.10) представлено уже истинное разложение синуса в ряд Тейлора в окрестности смещенной от нуля точки х = 1. При смещении точки, относительно которой ведется разложение, выражение для ряда Тейлора существенно изменяется. В нем, во-первых, появляются члены четных степеней, а во-вторых, фигурирует аргумент вида (х- 1)n . Нетрудно заметить, что даже при представлении такой «простой» функции, как sin(x) , приемлемая погрешность представления одного периода достигается при числе членов ряда Тейлора порядка 10 и более. Однако существенное повышение порядка ряда нецелесообразно из-за резкого возрастания вычислительных погрешностей. Кроме того, серьезным недостатком аппроксимации рядом Тейлора является непредсказуемое поведение полинома вдали от точки, относительно которой задается представление. Это хорошо видно на всех трех приведенных примерах.

Рис. 8.8. Разложение функции sin(x) в ряд Маклорена 6-го порядка и построение ее графика

Рис. 8.9. Разложение функции sin(x) в ряд Маклорена 12-го порядка и построение ее графика

Рис. 8.10 . Разложение функции sin(x) в ряд Тейлора 12-го порядка относительно точки х = 1 и построение ее графика
Помимо указанных выше разложений в ряд Maple 7 имеет множество функций для иных разложений. Например, в пакете numapprox имеется функция laurent(expr,var,n) , позволяющая получить разложение в ряд Лорана, функция chebyshev(expr, eq/nm, eps) дает разложение в форме полиномов Чебышева и т. д.
Решение уравнений и неравенств
Основная функция solve
Решение линейных и нелинейных уравнений и неравенств — еще одна важная область математического анализа. Maple 7 имеет мощные средства для такого решения. Так, для решения линейных и нелинейных уравнений в аналитическом виде используется достаточно универсальная и гибкая функция solve(eqn, var) или so1ve( . ), где eqn — уравнение, содержащее функцию ряда переменных, var — переменная, по которой ищется решение, Если при записи eqn не используются знак равенства или знаки отношения, считается, что solve ищет корни уравнения eqn=0.
Характер решений можно изменить с помощью глобальных переменных:
В решениях могут встречаться следующие обозначения:
В форме solve[subtopic] возможны параметры subtopic функции solve следующих типов:
f loats functions identity ineq linear
radical scalar series system
При решении систем уравнений они и список переменных задаются как множества, то есть в фигурных скобках. При этом и результат решения получается в виде множества. Чтобы преобразовать его к обычному решению, нужно использовать функцию assign , которая обеспечивает присваивание переменным значений, взятых из множества.
Функция so l ve старается дать решение в аналитическом виде. Это не означает, что ее нельзя использовать для получения корней уравнений в численном виде. Просто для этого придется использовать функции evalf или convert . Если результат решения представлен через функцию RootOf , то зачастую можно получить все корни с помощью функции all values.
Решение одиночных нелинейных уравнений
Решение одиночных нелинейных уравнений вида f(x) = 0 легко обеспечивается функций solve(f,(x),x) . Это демонстрируют следующие примеры:

Часто бывает удобно представлять уравнение и его решение в виде отдельных объектов, отождествленных с определенной переменной:

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

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

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

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

На рис. 8.11 показан более сложный случай решения нелинейного уравнения вида f 1 (x)=f 2 (x). где f1(х) = sin(x) и f2(x) = cos(x) — 1. Решение дано в графическом виде и в аналитическом для двух случаев — нахождения главных значений корней и нахождения всех корней.
В решениях встречаются переменные _В1- и _Z1
, означающие ряд натуральных чисел. Благодаря этому через них можно представить периодически повторяющиеся решения.
Примеры решения уравнений с обратными тригонометрическими функциями показаны ниже:


Рис. 8.11 . Пример решения уравнения, имеющего периодические решения

Решение систем линейных уравнений
Для решения систем линейных уравнений созданы мощные матричные методы, которые будут описаны отдельно. Однако функция solve также может с успехом решать системы линейных уравнений. Такое решение в силу простоты записи функции может быть предпочтительным. Для решения система уравнений и перечень неизвестных задаются в виде множеств (см. приведенные ниже примеры).
Рисунок 8.12 дает два примера решения систем из двух линейных уравнений. В первом примере функция solve возвращает решение в виде значений неизвестных х и у, а во втором отказывается это делать.
В чем дело? Оказывается, в том, что во втором случае система просто не имеет решения. Импликативная графика пакета расширения plots дает прекрасную возможность проиллюстрировать решение. Так, нетрудно заметить, что в первом случае геометрическая трактовка решения сводится к нахождению точки пересечения двух прямых, отображающих два уравнения. При этом имеется единственное решение, дающее значения х и у.

Рис. 8.12 . Примеры решения системы из двух линейных уравнений с графической иллюстрацией
Во втором случае решения и впрямь нет, ибо уравнения задают параллельно расположенные прямые, которые никогда не пересекаются. Рекомендуем читателю самостоятельно проверить и третий случай — бесконечного множества решений. Он имеет место, если оба уравнения описывают одну и ту же зависимость и их графики сливаются в одну прямую.
Решение систем из трех линейных уравнений также имеет наглядную геометрическую интерпретацию — в виде точки, в которой пересекаются три плоскости, каждая из которых описывается функцией двух переменных. Для наглядности желательно представить и линии пересечения плоскостей. Это позволяет сделать функция импликативной трехмерной графики tmplicitplotSd , что и показано на рис. 8.13. Для объединения графиков площадей использована функция display .
Некоторые проблемы с решением систем из трех линейных уравнений иллюстрируют примеры, приведенные на рис. 8.14, В первом примере решения вообще нет. График показывает, в чем дело, — линии пересечения плоскостей идут параллельно и нигде не пересекаются. Во втором примере все три плоскости пересекаются по одной линии.

Рис. 8.13. Пример решения системы из трех линейных уравнений с графической иллюстрацией решения

Рис. 8.14. Графическая иллюстрация особых случаев решения системы из трех линейных уравнений
Следующий пример показывает решение системы из четырех линейных уравнений:

Эта система имеет решение, но его простая графическая иллюстрация уже невозможна.
Случай решения неполной системы уравнений (уравнений — 3, а неизвестных — 4) иллюстрирует следующий пример:

Как видно из приведенных примеров, функция solve неплохо справляется с решением систем линейных уравнений.
Решение систем нелинейных и трансцендентных уравнений
Функция solve может использоваться для решения систем нелинейных и трансцендентных уравнений. Для этого система уравнений и перечень неизвестных задаются в виде множеств. Ниже приведены примеры решения уравнений:

В этих примерах хорошо видна техника работы с функциями solve и assign . В конце примеров показано восстановление неопределенного статуса переменных х и у с помощью функции unassign и снятие определения переменных с помощью заключения их в прямые апострофы.
В решениях уравнений нередко появляется функция RootOf , означающая, что корни нельзя выразить в радикалах. Эта функция применяется и самостоятельно в виде RootOf(ехрr) или RootOf(ехрr, х) , где ехрr — алгебраическое выражение или равенство, х — имя переменной, относительно которой ищется решение. Если х не указана, ищется универсальное решение по переменной _Z. Когда ехрr задано не в виде равенства, решается уравнение ехрr=0 . Для получения решений вида RootOf в явном виде может использоваться функция all values . Примеры применения функции RootOf :

Итак, функция RootOf является эффективным способом представления решения в компактном виде. Как уже отмечалось, наряду с самостоятельным применением она часто встречается в составе результатов решения нелинейных уравнений.
Решение уравнений со специальными функциями
К важным достоинствам Maple 7 относится возможность решения уравнений, содержащих специальные функции как в записи исходных выражений, так и в результатах решения. Приведем несколько примеров такого рода:

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


Рис. 8.15 . Примеры, иллюстрирующие решение неравенств


В последних примерах показано решение систем неравенств.» При этом выдаются области определения нескольких переменных.
Решение функциональных уравнений
Решение функционального уравнения, содержащего в составе равенства некоторую функцию f(x) , заключается в нахождении этой функции. Для этого можно использовать функцию solve , что демонстрируют приведенные ниже примеры:

Решение уравнений с линейными операторами
Maple 7 позволяет решать уравнения с линейными операторами, например с операторами суммирования рядов и дифференцирования. Ограничимся одним примером такого рода:


Решение в численном виде — функция fsolve
Для получения численного решения нелинейного уравнения или системы нелинейных уравнений в форме вещественных чисел удобно использовать функцию:
Эта функция может быть использована со следующими параметрами:
Функция fsolve дает решения сразу в форме вещественных или комплексных чисел, что и показывают следующие примеры:

Заметим, что локализация поиска корней в заданном интервале позволяет отыскивать такие решения, которые не удается получить с помощью функций solve и fsolve в обычном применении. В последнем из приведенных примеров дается решение системы нелинейных уравнений, представленных уравнениями f и д.
Чтобы еще раз показать различие между функциями solve и fsolve , рассмотрим пример решения с их помощью одного и того же уравнения erf(x) = 1/2:
Функция solve в этом случае находит нетривиальное решение в комплексной форме через функцию RootOf , тогда как функция fsolve находит обычное приближенное решение.
Решение рекуррентных уравнений — rsolve
Функция solve имеет ряд родственных функций. Одну из таких функций — fsolve — мы рассмотрели выше. В справочной системе Maple 7 можно найти ряд и других функций, например rsolve для решения рекуррентных уравнений, isolve для решения целочисленных уравнений, msolve для решения по модулю m и т. д. Здесь мы рассмотрим решение уравнений важного класса — рекуррентных. Напомним, что это такие уравнения, у которых заданный шаг решения находится по одному или нескольким предшествующим шагам.
Для решения рекуррентных уравнений используется функция rsolve :
rsolve(eqns, fens) ,
rsolve(eqris. fens, ‘genfunc'(z))
rsolve(eqns, fens, ‘makeproc’)
Здесь eqns — одиночное уравнение или система уравнений, fens — функция, имя функции или множество имен функций, z — имя, генерирующее функциональную переменную.
Ниже представлены примеры применения функции rsolve :

А теперь приведем результат вычисления функцией rsolve n-го числа Фибоначчи. Оно задается следующим выражением:
В нем задана рекуррентная формула для числа Фибоначчи — каждое новое число равно сумме двух предыдущих чисел, причем нулевое и первое числа равны 1. С помощью функции rsolve можно получить поистине ошеломляющий результат:

Числа Фибоначчи — целые числа. Поэтому представленный результат выглядит как весьма сомнительный. Но на самом деле он точный и с его помощью можно получить числа Фибоначчи. Ниже показан процесс получения чисел Фибоначчи для n = 5, 7, 10 и 20:
> [normal(subs(n=5,al).expanded).normal(subs(n-7.al).expanded).
normal(subs(n=10,al),expanded),normal(subs(n=20.al),expanded)];
[8,21,89,10946]
Решение уравнений в целочисленном виде — isolve
Иногда бывает нужен результат в форме только целых чисел. Для этого используется функция isolve(eqns, vans), дающая решение в виде целых чисел. Приведем примеры ее применения:
Во втором из приведенных примеров в выводе появилась вспомогательная переменная %1, которая упрощает запись результата при текстовом формате его вывода (Character Notation). Напоминаем, что в стандартной математической нотации вспомогательная переменная вида %N не формируется. В этом случае упомянутый пример будет выглядеть следующим образом:

Результат вычислений одинаков при любом формате вывода, но иногда вывод в текстовом формате с выделением вспомогательных переменных имеет преимущество, поскольку выглядит более компактным.
Функция msolve(eqns,vars.m) или msolve(eqns,m) обеспечивает решение вида Z mod m (то есть при подстановке решения левая часть4 при делении нат дает остаток, равный правой части уравнения). При отсутствии решения возвращается объект NULL (пустой список).
Ниже даны примеры использования функции msolve :
На этом мы завершаем рассмотрение функций для решения уравнений, неравенств и систем с ними.
Похожие публикации:
- Как пользоваться movie maker для windows 7
- Как попасть в приватный канал telegram
- Как поставить систему в mathcad
- Как построить график заданный таблично mathcad
