Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Maple, Стребуляев

.pdf
Скачиваний:
297
Добавлен:
27.03.2015
Размер:
1.24 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования

«Нижегородский государственный университет им. Н.И. Лобачевского»

С.Н. Стребуляев, Д.Ю. Васин

ИСПОЛЬЗОВАНИЕ СИСТЕМЫ АНАЛИТИЧЕСКИХ ВЫЧИСЛЕНИЙ MAPLE ДЛЯ РЕШЕНИЯ ЗАДАЧ

ПРИКЛАДНОЙ МАТЕМАТИКИ

Рекомендовано методической комиссией факультета вычислительной математики и кибернетики

для студентов высших учебных заведений, обучающихся по направлению подготовки

010501, 010500.62 «Прикладная математика и информатика»

Нижний Новгород 2007

1

УДК 519. (075) ББК В19 С-84

С-84 Стребуляев С.Н., Васин Д.Ю. Использование системы анали-

тических вычислений Maple для решения задач прикладной математики: Учебное пособие. – Нижний Новгород: Издательство Нижегородского госуниверситета, 2007. с.

Рецензент: доктор физ.-мат. наук, профессор Ю.Л. Кетков

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

УДК 519. (075) ББК В19

© Нижегородский государственный университет им. Н.И. Лобачевского, 2007

2

ОГЛАВЛЕНИЕ

Введение .................................................................................................................

1. Основные пакеты, операторы и функции системы аналитических

вычислений Maple ..............................................................................................

1.1. Пакеты функций .....................................................................................

1.2. Способы задания функций и построения их графиков .....................

1.3. Вычисление пределов ..........................................................................

1.4. Вычисление производных ...................................................................

1.5. Вычисление интегралов .......................................................................

1.6. Операции с рядами ...............................................................................

1.7. Решение уравнений, неравенств и их систем ....................................

1.8. Анализ функций ...................................................................................

1.9. Решение дифференциальных уравнений и их систем ......................

1.10. Операции с векторами и матрицами .................................................

1.11. Преобразование комплексных чисел, аналитических выра-

жений и функций комплексного переменного .................................

2. Примеры использования САВ Maple для решения прикладных задач

..........................................................................................................................

2.1. Расчет показателей динамического качества системы электро-

привода ................................................................................................

2.2. Расчет собственных и вынужденных колебаний легкового ав-

томобиля ..............................................................................................

2.3. Изучение фазового портрета математического маятника. Ис-

следование явления резонанса ..........................................................

3. Контрольные задания для выполнения лабораторной работы на

ЭВМ .................................................................................................................

Список использованных источников ................................................................

Приложение .........................................................................................................

3

ВВЕДЕНИЕ

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

Динамика роста вычислительных возможностей современных компьютеров достаточно высока и позволяет надеяться на успешное решение все более сложных задач. Наряду с языками программирования, появились и системы аналитических вычислений (САВ): Maple, Mathematica, Matlab и другие. Использование САВ (систем компьютерной алгебры с расширенными возможностями в области символьных вычислений) еще в большей степени, чем языки программирования, позволяет автоматизировать процесс написания программ.

Особое место среди САВ занимает система Maple /1/. Системы компьютерной математики класса Maple были созданы корпорацией Waterlo Maple, Inc. (Канада) как системы компьютерной алгебры с расширенными возможностями в области символьных вычислений. Maple — типичная интегрированная система. Она объединяет в себе:

мощный язык программирования;

редактор для подготовки и редактирования документов и программ;

современный многооконный пользовательский интерфейс с возможностями работы в диалоговом режиме;

мощную справочную систему со многими тысячами примеров;

ядро алгоритмов и правил преобразования математических выражений;

численный и символьный процессоры;

систему диагностики;

библиотеки встроенных и дополнительных функций;

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

При рассмотрении большого числа публикаций, посвященных описанию САВ Maple, часто употребляется термин «…мощный язык, справочная

4

система…» и другие, что на самом деле соответствует действительности. Опыт работы авторов настоящего пособия подтверждает это. Например, при решении ряда сложных задач динамики систем, связанных с преобразованием громоздких выражений, пришлось отказаться от использования языка программирования Fortran в пользу системы аналитических вычислений Maple.

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

5

1.ОСНОВНЫЕ ПАКЕТЫ, ОПЕРАТОРЫ И ФУНКЦИИ СИСТЕМЫ АНАЛИТИЧЕСКИХ ВЫЧИСЛЕНИЙ MAPLE

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

1.1. Пакеты функций

Основой для работы с символьными преобразованиями в Maple является ядро системы. Оно содержит сотни базовых функций и алгоритмов символьных преобразований. Объем ядра достигает 6–7 Мбайт. Имеется также основная библиотека операторов, команд и функций. Многие встроенные в нее функции, как и функции ядра, могут использоваться без какого-либо объявления, другие нуждаются в объявлении. Множество функций, в том числе применяемых довольно редко и в вычислениях специальных видов, реализовано в проблемно-ориентированных, подключаемых пакетах расширения (packages). Подключение пакета осуществляется с помощью команды: with(название пакета).

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

Ниже приведено обращение к пакету графики и перечень функций включенных в этот пакет.

>restart:

>with(plots);

6

[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, display, display3d, fieldplot, fieldplot3d, gradplot, gradplot3d, graphplot3d, implicitplot, implicitplot3d, inequal, interactive, interactiveparams, listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d,

loglogplot, logplot, matrixplot, multiple, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, replot, rootlocus, semilogplot, setoptions, setoptions3d, spacecurve, sparsematrixplot, sphereplot, surfdata, textplot, textplot3d, tubeplot]

Уникальной возможностью системы Maple является возможность решения задач линейной алгебры в символьном виде.

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

> with(linalg);

[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldim, colspace, colspan, companion, concat, cond, copyinto, crossprod , curl, definite, delcols, delrows, det, diag, diverge, dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects, entermatrix, equal, exponential,

extend, ffgausselim, fibonacci, forwardsub, frobenius, gausselim, gaussjord, geneqns, genmatrix, grad, hadamard, hermite, hessian, hilbert, htranspose, ihermite, indexfunc, innerprod, intbasis, inverse, ismith, issimilar, iszero, jacobian, jordan, kernel, laplacian, leastsqrs, linsolve, matadd, matrix, minor, minpoly, mulcol, mulrow, multiply, norm, normalize, nullspace, orthog, permanent, pivot, potential, randmatrix,

randvector, rank, ratform, row, rowdim, rowspace, rowspan, rref, scalarmul, singularvals, smith, stackmatrix, submatrix, subvector, sumbasis, swapcol, swaprow, sylvester, toeplitz, trace, transpose, vandermonde, vecpotent, vectdim, vector, wronskian]

В новых реализациях системы была сделана ставка на использование быстрых алгоритмов линейной алгебры. Их применение обеспечивает эффективное использование систем символьной математики в решении задач, сво-

7

дящихся к задачам линейной алгебры. Указанные программные средства реализованы в пакете LinearAlgebra. Для загрузки этого пакета используется команда:

> with(LinearAlgebra);

[&x, Add, Adjoint, BackwardSubstitute, BandMatrix, Basis, BezoutMatrix,

BidiagonalForm, BilinearForm, CharacteristicMatrix, CharacteristicPolynomial,

Column, ColumnDimension, ColumnOperation, ColumnSpace, CompanionMatrix,

ConditionNumber, ConstantMatrix, ConstantVector, Copy, CreatePermutation,

CrossProduct, DeleteColumn, DeleteRow, Determinant, Diagonal, DiagonalMatrix,

Dimension, Dimensions, DotProduct, EigenConditionNumbers, Eigenvalues,

Eigenvectors, Equal, ForwardSubstitute, FrobeniusForm, GaussianElimination,

GenerateEquations, GenerateMatrix, GetResultDataType, GetResultShape,

GivensRotationMatrix, GramSchmidt, HankelMatrix, HermiteForm,

HermitianTranspose, HessenbergForm, HilbertMatrix, HouseholderMatrix,

IdentityMatrix, IntersectionBasis, IsDefinite, IsOrthogonal, IsSimilar, IsUnitary,

JordanBlockMatrix, JordanForm, LA_Main, LUDecomposition, LeastSquares,

LinearSolve, Map, Map2, MatrixAdd, MatrixExponential, MatrixFunction,

MatrixInverse, MatrixMatrixMultiply, MatrixNorm, MatrixPower,

MatrixScalarMultiply, MatrixVectorMultiply, MinimalPolynomial, Minor, Modular,

Multiply, NoUserValue, Norm, Normalize, NullSpace, OuterProductMatrix,

Permanent, Pivot, PopovForm, QRDecomposition, RandomMatrix, RandomVector,

Rank, RationalCanonicalForm, ReducedRowEchelonFormRow, , RowDimension,

RowOperation, RowSpace, ScalarMatrix, ScalarMultiply, ScalarVector, SchurForm,

SingularValues, SmithForm, SubMatrix, SubVector, SumBasis, SylvesterMatrix,

ToeplitzMatrix, Trace, Transpose, TridiagonalForm, UnitVector,

VandermondeMatrix, VectorAdd, VectorAngle, VectorMatrixMultiply, VectorNorm,

VectorScalarMultiply, ZeroMatrix, ZeroVector, Zip ]

Пакет CurveFitting осуществляет процедуру приближения кривых. Он содержит ряд функций:

with(CurveFitting);

[BSpline, BSplineCurve, Interactive, InteractiveChangeSlider, LeastSquares,

PolynomialInterpolation, RationalInterpolation, Spline, ThieleInterpolation]

К числу этих функций относятся: функция для вычисления В-сплайно- вых кривых, полиномиальная и сплайновая аппроксимация, метод наименьших квадратов, функции рациональной аппроксимации и аппроксимации непрерывными дробями, аппроксимация рядом Тейлора и полиномиальная, полиномами Чебышева и аппроксимация Чебышева-Паде.

Для расширенной поддержки интегральных преобразований служит пакет inttrans. Этот пакет вызывается командой:

8

with(inttrans);

[addtable, fourier, fouriercos, fouriersin, hankel, hilbert, invfourier, invhilbert, invlaplace, invmellin, laplace, mellin, savetable]

и содержит набор функций, охватывающий такие практически важные области математики, как ряды Фурье, прямые и обратные преобразования Фурье, Лапласа и Гильберта, интегральные преобразования Ханкеля и Меллина.

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

with(student);

[D, Diff, Doubleint, Int, Limit, Lineint, Product, Sum, Tripleint, changevar, completesquare, distance, equate, integrand, intercept, intparts, leftbox, leftsum, makeproc, middlebox, middlesum, midpoint, powsubs, rightbox, rightsum, showtangent, simpson, slope, summand, trapezoid ]

Ортогональные полиномы находят самое широкое применение в различных математических расчетах при составлении алгоритмов интерполяции, экстраполяции различных функциональных зависимостей, где свойство ортогональности обеспечивает высокую оценку погрешности. В пакете orthopoly содержатся следующие ортогональные полиномы: Гегенбауэра, Эрмита, Лагера, Лежандра, Якоби и Чебышева. Пакет вызывается командой:

> with(orthopoly);

[G, H, L, P, T, U]

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

with(VectorCalculus);

9

[&x, *, +, -, ., <,>, <|>, AddCoordinates, ArcLength, BasisFormat, Binormal, CrossProd ,

CrossProduct, Curl, Curvature, D, Del, DirectionalDiff, Divergence, DotProd,

DotProduct, Flux, GetCoordinateParameters, GetCoordinates, Gradient, Hessian, Jacobian, Laplacian, LineInt, MapToBasis, Nabla, Norm, Normalize, PathInt,

PrincipalNormal, RadiusOfCurvature, ScalarPotential, SetCoordinateParameters,

SetCoordinates, SurfaceInt, TNBFrame, Tangent, TangentLine, TangentPlane,

TangentVector , Torsion, Vector, VectorField, VectorPotential, Wronskian, diff, evalVF, int, limit, series]

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

Для выполнения ряда специальных операций с полиномами или создания полиномов с заданными свойствами служит пакет Polynomial Tools. Этот пакет имеет небольшое число функций:

with(PolynomialTools);

Впакет входят функции расщепления, сортировки и преобразования полиномов и другие.

Решение дифференциальных уравнений самых различных типов — одно из достоинств системы аналитических вычислений Maple. Пакет DEtools предоставляет ряд полезных функций для решения дифференциальных уравнений и систем уравнений:

with(DEtools);

[AreSimilar, DEnormal, DEplot, DEplot3d, DEplot_polygon, DFactor, DFactorLCLM,

DFactorsols, Dchangevar, FunctionDecomposition, GCRD, Gosper, Heunsols,

Homomorphisms, IsHyperexponential, LCLM, MeijerGsols,

MultiplicativeDecomposition, PDEchangecoords, PolynomialNormalForm,

RationalCanonicalForm, ReduceHyperexp, RiemannPsols, Xchange, Xcommutator,

Xgauge, Zeilberger, abelsol, adjoint, autonomous, bernoullisol, buildsol, buildsym, canoni, caseplot, casesplit, checkrank, chinisol, clairautsol, constcoeffsols, convertAlg, convertsys, dalembertsol, dcoeffs, de2diffop, dfieldplot, diff_table, diffop2de, dperiodic_sols, dpolyform, dsubs, eigenring, endomorphism_charpoly, equinv, eta_k, eulersols, exactsol, expsols, exterior_power, firint, firtest, formal_sol, gen_exp,

10