P. 1
Maxima

Maxima

|Views: 375|Likes:
Published by Jeff Pratt

More info:

Published by: Jeff Pratt on Feb 19, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

10/17/2011

Start Maxima with the command "maxima". Maxima will display version information
and a prompt. End each Maxima command with a semicolon. End the session with the
command "quit();". Here’s a sample session:

[wfs@chromium]$ maxima
Maxima 5.9.1 http://maxima.sourceforge.net
Using Lisp CMU Common Lisp 19a
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(%i1) factor(10!);

8 4 2

(%o1)

2 3 5 7

(%i2) expand ((x + y)^6);
6

5

2 4

3 3

4 2

5

6

(%o2) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x
(%i3) factor (x^6 - 1);

2

2

(%o3)

(x - 1) (x + 1) (x - x + 1) (x + x + 1)

(%i4) quit();
[wfs@chromium]$

Maxima can search the info pages. Use the describe command to show information
about the command or all the commands and variables containing a string. The question
mark ? (exact search) and double question mark ?? (inexact search) are abbreviations for
describe:

(%i1) ?? integ
0: Functions and Variables for Elliptic Integrals
1: Functions and Variables for Integration
2: Introduction to Elliptic Functions and Integrals
3: Introduction to Integration
4: askinteger (Functions and Variables for Simplification)
5: integerp (Functions and Variables for Miscellaneous Options)
6: integer_partitions (Functions and Variables for Sets)
7: integrate (Functions and Variables for Integration)
8: integrate_use_rootsof (Functions and Variables for Integration)
9: integration_constant_counter (Functions and Variables for
Integration)
10: nonnegintegerp (Functions and Variables for linearalgebra)
Enter space-separated numbers, ‘all’ or ‘none’: 5 4

-- Function: integerp ()
Returns ‘true’ if is a literal numeric integer, otherwise
‘false’.

‘integerp’ returns false if its argument is a symbol, even if the
argument is declared integer.

2

Maxima Manual

Examples:

(%i1) integerp (0);
(%o1)

true

(%i2) integerp (1);
(%o2)

true

(%i3) integerp (-17);
(%o3)

true

(%i4) integerp (0.0);
(%o4)

false

(%i5) integerp (1.0);
(%o5)

false

(%i6) integerp (%pi);
(%o6)

false

(%i7) integerp (n);
(%o7)

false

(%i8) declare (n, integer);
(%o8)

done

(%i9) integerp (n);
(%o9)

false

-- Function: askinteger (, integer)
-- Function: askinteger ()
-- Function: askinteger (, even)
-- Function: askinteger (, odd)
‘askinteger (, integer)’ attempts to determine from the
‘assume’ database whether is an integer. ‘askinteger’
prompts the user if it cannot tell otherwise, and attempt to
install the information in the database if possible. ‘askinteger
()’ is equivalent to ‘askinteger (, integer)’.

‘askinteger (, even)’ and ‘askinteger (, odd)’
likewise attempt to determine if is an even integer or odd
integer, respectively.

(%o1)

true

To use a result in later calculations, you can assign it to a variable or refer to it by its
automatically supplied label. In addition, % refers to the most recent calculated result:

(%i1) u: expand ((x + y)^6);
6

5

2 4

3 3

4 2

5

6

(%o1) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x
(%i2) diff (u, x);
5

4

2 3

3 2

4

5

(%o2) 6 y + 30 x y + 60 x y + 60 x y + 30 x y + 6 x
(%i3) factor (%o2);

5

(%o3)

6 (y + x)

Chapter 1: Introduction to Maxima

3

Maxima knows about complex numbers and numerical constants:

(%i1) cos(%pi);
(%o1)

- 1

(%i2) exp(%i*%pi);
(%o2)

- 1

Maxima can do differential and integral calculus:

(%i1) u: expand ((x + y)^6);
6

5

2 4

3 3

4 2

5

6

(%o1) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x
(%i2) diff (%, x);
5

4

2 3

3 2

4

5

(%o2) 6 y + 30 x y + 60 x y + 60 x y + 30 x y + 6 x
(%i3) integrate (1/(1 + x^3), x);

2 x - 1

2

atan(-------)

log(x - x + 1)

sqrt(3) log(x + 1)
(%o3) - --------------- + ------------- + ----------
6

sqrt(3)

3

Maxima can solve linear systems and cubic equations:

(%i1) linsolve ([3*x + 4*y = 7, 2*x + a*y = 13], [x, y]);
7 a - 52

25

(%o1)

[x = --------, y = -------]
3 a - 8

3 a - 8

(%i2) solve (x^3 - 3*x^2 + 5*x = 15, x);
(%o2)

[x = - sqrt(5) %i, x = sqrt(5) %i, x = 3]

Maxima can solve nonlinear sets of equations. Note that if you don’t want a result
printed, you can finish your command with $ instead of ;.

(%i1) eq_1: x^2 + 3*x*y + y^2 = 0$
(%i2) eq_2: 3*x + y = 1$
(%i3) solve ([eq_1, eq_2]);
3 sqrt(5) + 7

sqrt(5) + 3
(%o3) [[y = - -------------, x = -----------],
2

2

3 sqrt(5) - 7

sqrt(5) - 3
[y = -------------, x = - -----------]]
2

2

Maxima can generate plots of one or more functions:

(%i1) eq_1: x^2 + 3*x*y + y^2 = 0$
(%i2) eq_2: 3*x + y = 1$
(%i3) solve ([eq_1, eq_2]);
3 sqrt(5) + 7

sqrt(5) + 3
(%o3) [[y = - -------------, x = -----------],
2

2

3 sqrt(5) - 7

sqrt(5) - 3
[y = -------------, x = - -----------]]

4

Maxima Manual

2

2

(%i4) kill(labels);
(%o0)

done
(%i1) plot2d (sin(x)/x, [x, -20, 20]);
(%o1)
(%i2) plot2d ([atan(x), erf(x), tanh(x)], [x, -5, 5]);
(%o2)
(%i3) plot3d (sin(sqrt(x^2 + y^2))/sqrt(x^2 + y^2), [x, -12, 12],
[y, -12, 12]);

(%o3)

Chapter 2: Bug Detection and Reporting

5

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->