Académique Documents
Professionnel Documents
Culture Documents
5
Maple 9.5 includes the following language and system changes. Polymorphism Using overload Option More Overloadable Operators New Polynomial Data Structure Object Constructors Package Management
Object Constructors
Module exports with the name ModuleApply , ModulePrint , ModuleLoad , and ModuleUnload now have special meaning. Modules are now "applyable" in that the command M(a,b,c) invokes M:-ModuleApply(a,b,c) if M is a module and has a local or export named ModuleApply . Modules can now control the way they are displayed. If a module has an export or local named ModulePrint , the result of the ModulePrint() command is displayed instead of the module. If a ModuleLoad local or export is present, then this procedure is called when the module is read from the Maple repository in which it is found. If a ModuleUnload local or export is present, then this procedure is called when the module is destroyed (when it is no longer accessible and is garbage collected, or when Maple exits).
Manajemen Paket
The unwith command allows you to reverse the effects of the with command. Because of the side effects caused by using table- or procedure-based packages, it is effective only in a Maple session that uses module-based packages exclusively. > with( StringTools ): > Reverse( "abcde" );
> with( StringTools ): > with( context ): unwith( StringTools ); Error, (in unwith) the procedure `unwith' is currently disabled due to the presence of table-based packages
Lihat Juga
NUMERIC
Optimasi
The new Optimization package provides commands for numerically solving optimization problems. For a summary of the package's main features, see New Packages in Maple 9.5 .
RootFinding
The RootFinding package enhances Maple's ability to compute and locate roots numerically. For more information, see New Packages in Maple 9.5
Lihat Juga
Indeks New Maple 9.5 Fitur
Paket Ikhtisar
Baru
Cache Package
The Cache package is a set of functions for manipulating the new Cache data structure. A Cache can be used like a table ; however, a Cache stores two types of elements, permanent and temporary. Permanent elements are like those of a table, once inserted they remain in the table until removed. Temporary elements are stored as long as the Cache has space to store them. When a new temporary element is inserted, an older one may be removed. Caches are primarily intended to be used as remember tables. Elements that are added automatically are added as temporary. This restricts the remember table to store only recently accessed elements. Important remember table entries can be stored as permanent entries, assuring that they are not automatically removed.
ContextMenu Package
The ContextMenu package provides tools to control and customize Maple context-sensitive menus. It supersedes the context package. A context-sensitive menu is generated when a user right-clicks (Control-click on Macintosh platforms) a Maple expression.
The information necessary to build context-sensitive menus is encapsulated in context menu modules. The module corresponding to the built-in context menu is available as ContextMenu[CurrentContext]. To build a new context menu module, which replaces the default, see ContextMenu[New] . Within a context menu module, you can add new entries to the context menu or alter the criteria under which entries are displayed in a menu. For more information, see ContextMenu[CurrentContext] .
Logic Package
The Logic package is a collection of commands for manipulating and transforming expressions using two-valued Boolean logic. With the Logic package, you can simplify logical expressions, test two expressions for equivalence, convert logical expressions to algebraic expressions modulo 2, and perform a variety of other logical operations. In the following example, the dual of a logical expression is computed using the Logic[Dual] command. > with(Logic): Dual( (x &and y) &implies z );
MmaTranslator Package
The MmaTranslator package converts Mathematica commands and notebooks to Maple commands and worksheets. You can use the FromMma and FromMmaNotebook commands or the Mathematica to Maple Translator Maplet application for the translation. For more information, see MmaTranslator .
OpenMaple Package
The OpenMaple package contains two new subpackages, Java and VisualBasic. For more information, see Enhanced Packages in Maple 9.5 .
Optimization Package
The Optimization package is a collection of commands for numerically solving optimization problems, which involve minimization or maximization of an objective function possibly subject to constraints. The package takes advantage of built-in library routines provided by the Numerical Algorithms Group (NAG). Key features are described as follows.
The package provides the ability to solve linear programs, quadratic programs, nonlinear programs, and both linear and nonlinear least-squares problems. For non-convex problems, local solutions are computed. Both unconstrained and constrained problems are accepted. An Interactive Maplet application provides and easy-to-use interface to all of the computation routines in the Optimization package, including the Minimize and Maximize commands. Alternatively, users can take full advantage of the solvers' capabilities by calling the specialized routines: LPSolve for linear programs, QPSolve for quadratic programs, NLPSolve for nonlinear programs, and LSSolve for least-squares problems. The following examples demonstrate the Minimize and QPSolve commands. The solution consists of the final objective function value followed by a point at which this value is attained.
> with(Optimization);
The Optimization package commands allow a simple and natural way to express the objective function and the constraints using algebraic expressions. Alternative forms of input using procedures, Vectors, and Matrices are available, which provide greater flexibility and efficiency. For a summary of the various ways in which the optimization problem can be expressed, see Optimization[ InputForms ] . In addition, the package features the Optimization[ ImportMPS ] command for importing linear programs in MPS format. Computations can be performed using hardware floating-point data or arbitrary-precision software floating-point data. The Optimization commands automatically select the most appropriate floating-point computation environment and attempt to solve the problem as efficiently as possible. For details concerning numeric computation in the Optimization package, see the Optimization[ Computation] help page. For a brief introduction to the Optimization package, see the examples[ Optimization] worksheet.
RootFinding Package
The RootFinding package enhances Maple's ability to compute and locate roots numerically. The package contains four commands. The RootFinding[Analytic] and RootFinding[AnalyticZerosFound] commands compute the zeros of an analytic univariate function. The RootFinding[BivariatePolynomial] command computes the solutions of two or
more bivariate polynomials. The RootFinding[Homotopy] command finds numerical approximations to roots of systems of polynomial equations.
Student[MultivariateCalculus] Package
A new package for multivariate calculus is available in the Student package. The Student[MultivariateCalculus] package assists with the teaching and learning of the calculus of functions from R^n to R. Interactive tutors are provided covering the basic concepts, and a range of commands are included that allow exploration of these and other concepts in greater depth. For more information, see Student[MultivariateCalculus] .
CodeGeneration The Differential Equation packages: DEtools, PDEtools, and diffalg Groebner Bases for Toric Ideals OpenMaple LREtools PolynomialTools QDifferenceEquations SolveTools StringTools Mahasiswa SumTools ToInert Options
CodeGeneration
The new CodeGeneration[Save] command allows user-contributed language definitions to be saved in a Maple archive without requiring that you save a copy of the CodeGeneration module.
OpenMaple
The OpenMaple API has been extended so that Java and Visual Basic programs can access the Maple math engine. For an overview, see Programming Facilities Changes in Maple 9.5 .
LREtools
Three new functions have been added to the LREtools package: AnalyticityConditions, dAlembertiansols, and IsDesingularizable.
LREtools[AnalyticityConditions]
This command determines necessary conditions for the solution of a linear recurrence equation to be analytic, in terms of the initial values. Contoh: > LREtools[AnalyticityConditions](n*E-1,E,f(n));
LREtools[dAlembertiansols]
This command finds all d'Alembertian solutions of a linear recurrence equation, that is, solutions annihilated by a product of first order operators. Contoh: > rec := (-n-1)*a(n)+(3+2*n)*a(n+1)+(-n-2)*a(n+2)=1/(n+2):
> LREtools[hypergeomsols](rec, a(n), {}, output=basis); > LREtools[dAlembertiansols](rec, a(n), {}, output=basis);
LREtools[IsDesingularizable]
This command finds a multiple M of a given linear recurrence operator L, if possible, such that the leading or trailing coefficient of M has no integer roots. Contoh: > LREtools[IsDesingularizable]((n-1)*E+n,E,n,trailing,output=operator);
PolynomialTools
Four new functions have been added to the PolynomialTools package: GcdFreeBasis, GreatestFactorialFactorization, ShiftEquivalent, and ShiftlessDecomposition.
PolynomialTools[GcdFreeBasis]
This command factors a given set of polynomials as far as possible by using only gcds. This can be used, for example, to refine several partial factorizations of the same polynomial. Contoh: The following is a way to compute the factors in the squarefree decomposition of a polynomial. > f := x^9-x^7-x^5+x^3;
> sqrfree(f);
PolynomialTools[GreatestFactorialFactorization]
This command factors a univariate polynomial into a product of falling factorials in a unique way similar to the squarefree factorization. Contoh: > f := x^9-x^7-x^5+x^3;
> PolynomialTools[GreatestFactorialFactorization](f,x);
PolynomialTools[ShiftEquivalent]
This command determines whether a univariate polynomial is a Taylor shift of another polynomial, and if so, returns the shift distance. Contoh: > PolynomialTools[ShiftEquivalent](2*x+1,2*x+2,x);
> PolynomialTools[ShiftEquivalent](2*x+1,2*x+2,x,'integer');
> PolynomialTools[ShiftEquivalent](2*x+1,2*x+5,x,'integer');
> PolynomialTools[ShiftEquivalent](x^2-1,x^2+1,x);
PolynomialTools[ShiftlessDecomposition]
This command computes the coarsest factorization of a univariate polynomial separating the irreducible factors both by their multiplicities and their shift equivalence classes. Contoh: > f := x^9-x^7-x^5+x^3;
> PolynomialTools[ShiftlessDecomposition](f,x);
QDifferenceEquations
This package has been extended by four new functions.
QDifferenceEquations [ AccurateQSummation ] implements the method of accurate qsummation QDifferenceEquations [ ExtendSeries ] computes series solutions of a linear q-difference equation QDifferenceEquations [ QHypergeometricSolution ] finds all q-hypergeometric solutions of a given linear q-difference equation QDifferenceEquations [ SeriesSolution ] computes series solutions of a linear qdifference equation
SolveTools [Inequality][ LinearUnivariate ] solves a linear inequality with respect to one variable SolveTools [Inequality][ LinearUnivariateSystem ] solves a system of linear inequalities with respect to one variable SolveTools [Inequality][ LinearMultivariateSystem ] for solving systems of linear inequalities
The StringTools package includes the new Length command that returns the length of a string.
StringTools[MaximalPalindromicSubstring]
The new MaximalPalindromicSubstring command that finds a maximal substring that is equal to itself reversed.
StringTools[Randomize]
You can use the new StringTools [ Randomize] command to seed the random number generator used by the external code underlying the StringTools package.
Student[Precalculus]
The Student[Precalculus] package has the addition of non-tutor commands in allowing exploration of concepts in greater depth. The basic Line command computes lines from various different forms of input and returns information about slope and intercepts, as well as the line itself.
SumTools[Hypergeometric]
Two new commands have been implemented in this package: SumTools [ Hypergeometric ][ EfficientRepresentation ] and SumTools [ Hypergeometric ][ RegularGammaForm ] . Kedua been extended by the ``third'' and the ``fourth'' normal forms.
The ToInert command for converting to an inert representation of a Maple object has been extended to allow for finer control over what objects need to be converted. Addition of exclude and include options let you specify exactly which objects to exclude or convert. The parse command accepts optional offset and lastread parameters, which make it possible to parse a string containing multiple Maple commands.
Pemrograman
The LibraryTools and march commands recognize a new format of library archive that combines the .ind and .lib files. To use the new format, simply use a filename with the extension .mla where you previously referenced a .lib file.
Using savelib or LibraryTools[Save] is strongly recommended over using save . Saving to a library is more robust than saving to a .m file primarily because modules cannot be saved in a .m file.
OpenMaple
OpenMaple is a suite of functions that allows you to access Maple algorithms and data structures in your external program. This is the reverse of ExternalCalling , which allows access to external data structures from Maple. The OpenMaple API has been extended so that Java and Visual Basic programs can access the Maple math engine. There is extensive help and examples for OpenMaple. For details, see the OpenMaple help page.
Integrasi Differential Equations Summation Simplification The FunctionAdvisor command Mathematical functions and their conversions Differentiation knowledge for special functions The combine command The series command The plotcompare command Rational function decomposition The singular command
Integrasi
The int command now uses differential equation routines for exact ODEs to compute integrals when the integrand contains unknown functions and is a total derivative with respect to those functions. Contoh > Int((3*diff(u(x),x)*v(x)^2-diff(u(x),x)^3)*sin(u(x)) + (6*v(x)*diff(v(x),x)+2*diff(u(x),x)*diff(u(x),x,x))*cos(u(x)) + 8*diff(v(x),x)*diff(v(x),x,x), x);
> value(%);
The differential equation solving capabilities of the dsolve and pdsolve commands, for computing both exact and numeric solutions, have been enhanced with new algorithms (see Updates to Differential Equation Solvers ). Also, seven new commands, some based on original algorithms, are available in DEtools and PDEtools for this release. For a description of these new commands, see Updates to Differential Equation Solvers: Packages .
Penyajian terakhir
The sum command has been greatly enhanced by rewriting it to use the SumTools[Summation] routine. Contoh More closed forms by using accurate summation : > Sum(Psi(x)^2,x): % = value(%);
More partial results via additive decomposition : > Sum(5^x*(3*x-2)/x/(x+1), x): % = value(%);
The SumTools[IndefiniteSum] package also provides an extension mechanism that is used by sum . Using this facility, you can add a summation definition related to other special functions.
Constant Expressions
The simplification of constant expressions has been enhanced in various ways. > -1/4*(2+2*2^(1/2))^(1/2)*(2*2^(1/2)-2)^(3/2) * (-1/3*(-3+3/(1+2^(1/2))*(2^(1/2)-1)) * (1+2^(1/2))/(2^(1/2)-1) - (1+1/(1+2^(1/2))*(2^(1/2)-1))^2 * (1+2^(1/2))^(3/2)/(2^(1/2)-1)^(3/2) * arctan(1/(1+2^(1/2))^(1/2)*(2^(1/2)- 1)^(1/2)));
> (sqrt(3)+3*I)*sqrt(1+I*sqrt(3));
Powers
The simplification of powers is much faster, from one to two orders of magnitude faster for difficult examples. Also, more cases are now recognized. > (-1)^(argument(z)/Pi);
> simplify(%,power);
> (-1)^a-(-1)^(-a)-2*I*sin(Pi*a);
> simplify(%,power);
Enhancements in the simplification of int , sum , product , and limit and in their inert counterparts Int , Sum , Product , and Limit regarding the integration, summation, or product dummy variable and its range: > diff(s(t),t)*Int(f(x)*x^(s(t)-1)*ln(x),x = infinity..0) + int(f(x)*x^(s(t)-1)*diff(s(t),t)*ln(x),x = 0..infinity);
> simplify( % );
> simplify(ee);
To take all real and complex undefineds as a single, unique undefined, and then cause products and sums to return undefined if either operand is undefined, use the symbolic option. > simplify(%, symbolic);
The new routines are also sensitive to assumptions. > simplify(ee) assuming x::And(constant,real);
> z = abs(z)*exp(I*argument(z));
> simplify( % );
> simplify(%);
> simplify( % );
Better handling of the branches for compositions of the form ln @ exp: > ln(exp(33/5*I));
> simplify(%,ln);
Contoh In terms of which functions could Zeta(0, z, nu) be expressed? > FunctionAdvisor( specialize, Zeta(0, z, nu));
Regarding the specialization into Psi , what is the specialization of Psi into Zeta if we ignore the restriction And(z::integer, 1 < z) on the value of z? > FunctionAdvisor(specialize, Psi(z-1,nu), Zeta);
Non-trivial specializations for the hypergeometric function: > FunctionAdvisor(specialize, hypergeom([1, 1, 1 - n], [2, 2], 1) );
The enhanced routines are sensitive to assumptions. The specialization of BesselI(a,z) in terms of the StruveL function assuming a+1/2 is a negative integer : > FunctionAdvisor(specialize, BesselI(a,z), StruveL) assuming (a+1/2)::negint;
To compute all the specializations for BesselY(1/2,z) that the FunctionAdvisor command can compute, enter FunctionAdvisor(specialize, 'BesselY'(1/2,z)); at the Maple prompt.
Mathematical Functions
The implementation of some mathematical functions has been improved to increase the knowledge about special values and relationships . More functions are sensitive to assumptions. Contoh
The classic definition for the Psi(n,z) function as the nth derivative of Psi(z), which requires that n be a positive integer, has been extended to arbitrary complex values of n in terms of the Hurwitz Zeta function and its first derivative. > FunctionAdvisor(analytic_extension, Psi(n,z));
> convert(%,LerchPhi);
> %% = convert(%%,arctan);
More Sum representations for special functions: > EllipticModulus(q): % = convert(%, Sum) assuming abs(q) < 1;
To reveal these sum representations without knowing in advance the required assumption on the function parameters, or the syntax of the function, use the FunctionAdvisor command. > FunctionAdvisor( sum, EllipticNome ); * Partial match of "sum" against topic "sum_form".
New conversion rules for the hypergeometric 2F1 function > hypergeom([a,b],[c],z);
The new rules available for the 2F1 function are: "quadratic n", with n between 1 and 6; "2a2b"; "raise 1/2"; and "lower 1/2". To see under which assumptions these identities are valid, use FunctionAdvisor(identities, hypergeom([a,b],[c],z)). For more information, see convert[function_rules] .
To express the previous expression in terms of the hypergeometric function, use convert(%, hypergeom); Improved differentiation of special functions with respect to parameters: > Diff( MeijerG([[], [b+1, b+1]],[[b, b, f(a)], []],z), a );
> value(%);
> value(%);
There are new differentiation rules for the argument , Re , Im , and conjugate functions. Although these functions do not strictly satisfy the Cauchy-Riemann conditions, in the same way that Maple implements a differentiation rule for abs and signum , Maple now also implements the differentiation rule for these functions in terms of the 'derivatives' of abs and signum. This allows further computation when these functions are present and differentiation is used. Maple correctly manipulates the results in terms of abs' and signum', which are represented by abs(1,z) and signum(1,z). > z = abs(z)*exp(I*argument(z)); # definition of a complex variable z
The combination of logarithms is now more general. > -ln(5) + ln(abs(x)) - ln(x);
> combine(%);
> ln(x)-ln(y);
> ln(a-1)+I*Pi-ln(1-a);
As a result of the change in the form of the differentiation rule for GAMMA(a,z) and Ei(a,z) , it is now possible to also compute series expansions with respect to the first parameter a. > GAMMA(a,z);
> Ei(a,z);
A new option in plots[plotcompare] , shift_range = r + s I, is available to shift the range of the plot , for example, from (a + b I) .. (c + d I) to (a+r + (b+s) I) .. (c+r + (d+s) I). This is useful when the difference between the expressions plotted is visible only after shifting the plotting range, for example, when comparing a function with its series representation. Contoh A comparison of sin(x) with its cubic Taylor polynomial. > plots[plotcompare]( sin(x), xx^3/6, x=-3..3 ); If you shift the range, for example, to the right by 10, the function and its cubic approximation no longer look similar. > plots[plotcompare]( sin(x), xx^3/6, x=-3..3, shift_range=10 );
By default, worksheets open in the enhanced Standard Worksheet interface. The Classic Worksheet interface, available on Windows and UNIX platforms, has the traditional Maple worksheet look and uses less memory. Pada Windows, Anda dapat mengubah asosiasi file worksheet Maple menggunakan Lembar Kerja Asosiasi File aplikasi Selector dari folder Tools dari Maple 9.5 menu Start. Jika sistem anda memiliki kurang dari jumlah yang disarankan memori fisik, disarankan agar Anda menggunakan versi Worksheet Classic Maple 9.5. Maple 9.5 includes many new features and improvements to the worksheet interfaces. The most notable enhancement, available in the Standard, Classic, and Command-line interfaces is the new Math Dictionary. Math Dictionary Command Completion Confirmation Dialogs ContextMenu Package Elision - Numerics & Lists Highlighting Text Hyperlink to a Math Dictionary Definition or a Maplet Application Interactive Plot Builder Interrupting the Current Operation Opening a Mathematica Notebook Using the File Menu Dialog Pilihan Palettes Plotting RTF Copy - Copying Large Selections Superscript and Subscript Character Styles Tools Menu
Math Dictionary
No longer must you search the Web for a definition. As a Maple user, you can find over 5000 mathematical definitions in your Maple 9.5 Math Dictionary. The definitions can be accessed as general help pages by viewing the alphabetical listing in the Dictionary Contents of the Maple help system, through links in a help page, or hyperlinks in your Maple worksheet. Definitions in the Standard Worksheet interface include over 300 figures and equations. When accessing a definition through a worksheet or help page link, short definitions are conveniently displayed as pop-ups (Standard Worksheet interface only). The mathematical dictionary pop-up feature can be deactivated through the Options dialog.
ContextMenu Package
A context-sensitive menu is displayed when you right-click (Control-click on Macintosh platforms) a Maple expression. The new ContextMenu package provides tools to control and customize Maple context-sensitive menus.
Hyperlink to a Math Dictionary Definition or a Maplet Application (Standard Worksheet interface only)
Previous releases of Maple allowed you to enhance worksheets by adding links to related information, for example, linking text in your worksheet to a Web page, email address, worksheet, or a help topic. With Maple 9.5, you can link text to a Math Dictionary definition or a Maplet application. For Maplet applications, clicking the link launches the Maplet application in a separate Maple session.
Opening a Mathematica Notebook Using the File Menu (Standard Worksheet interface only)
Using the File>Open menu, you can open a Mathematica(R) Notebook (.nb) file. When translating Mathematica notebooks, most interface elements in these notebooks have an equivalent in a Maple worksheet. For exceptions and general details about translation, see MmaTranslator .
The Options dialog, accessed from the Tools menu, has been redesigned. The dialog contains four tabs, General, Display, Interface, and Precision that allow you to access various options.
For your convenience, certain check box options have been replaced with drop-down lists. Options associated with spelling can be accessed in the General tab. Plotting options can be accessed in the Display tab. The Interface tab has additional options for setting whether menu tips or confirmation dialogs are displayed. Also, you can set whether target information is displayed when your mouse travels over a hyperlink in a help page or worksheet. The new Precision tab provides options for setting digit and term elision .
The areas where you must supply additional parameters are highlighted and also indicated as Maple Input Placeholder in the menu bar style drop-down list. Many palettes can enclose associated functions or Maple commands. For example, you can enter and highlight sin(x) in the worksheet, and then click the definite integral symbol in the Expression palette. The resulting expression is correctly formatted as int(sin(x),%x), whereby %x indicates the Maple Input Placeholder.
Note: In Windows and Mac OS X, a palette command can be dragged and dropped onto the worksheet to insert corresponding command.