You are on page 1of 17

Home

About
Math Books
Privacy Policy
Table of Contents
Write for us
Applied Math
Essential Math
History
Math Education
Math News
Math Websites
Software
Suggested Reading
Tutorial
Unsolved Problems
A 10 minute tutorial for solving Math
problems with Maxima
Posted by Antonio Cangiano in Essential Math, Software on June 4th, 2007 | 134
responses
About 50,000 people read my article 3 awesome free Math programs. Chances are that
at least some of them downloaded and installed Maxima. If you are one of them but are
not acquainted with CAS (Computer Algebra System) software, Maxima may appear very
complicated and diicult to use, even for the resolution of simple high school or calculus
problems. This doesnt have to be the case though, whether you are looking for more
math resources to use in your career or a student in an online bachelors degree in math
looking for homework help, Maxima is very friendly and this 10 minute tutorial will get
you started right away. Once youve got the rst steps down, you can always look up the
specic function that you need, or learn more from Maximas oicial manual.
Alternatively, you can use the question mark followed by a string to obtain in-line
documentation (e.g. ? integrate). This tutorial takes a practical approach, where simple
examples are given to show you how to compute common tasks. Of course this is just the
tip of the iceberg. Maxima is so much more than this, but scratching even just the
surface should be enough to get you going. In the end you are only investing 10 minutes.
Maxima as a calculator
You can use Maxima as a fast and reliable calculator whose precision is arbitrary within
the limits of your PCs hardware. Maxima expects you to enter one or more commands
and expressions separated by a semicolon character (;), just like you would do in many
programming languages.
(%i1) 9+7;
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
1 din 17 02.11.2014 16:48
(%o1)
(%i2) -17*19;
(%o2)
(%i3) 10/2;
(%o3)
Maxima allows you to refer to the latest result through the % character, and to any
previous input or output by its respective prompted %i (input) or %o (output). For
example:
(%i4) % - 10;
(%o4)
(%i5) %o1 * 3;
(%o5)
For the sake of simplicity, from now on we will omit the numbered input and output
prompts produced by Maximas console, and indicate the output with a => sign. When
the numerator and denominator are both integers, a reduced fraction or an integer value
is returned. These can be evaluated in oating point by using the oat function (or boat
for big oating point numbers):
8/2;
=>
8/2.0;
=>
2/6;
=>
float(1/3);
=>
1/3.0;
=>
26/4;
=>
float(26/4);
=>
As mentioned above, big numbers are not an issue:
13^26;
=>
13.0^26
=>
30!;
=>
float((7/3)^35);
=>
Constants and common functions
Here is a list of common constants in Maxima, which you should be aware of:
%e Eulers Number
%pi
%phi the golden mean ( )
%i the imaginary unit ( )
inf real positive innity ( )
minf real minus innity ( )
innity complex innity
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
2 din 17 02.11.2014 16:48
We can use some of these along with common functions:
sin(%pi/2) + cos(%pi/3);
=>
tan(%pi/3) * cot(%pi/3);
=>
float(sec(%pi/3) + csc(%pi/3));
=>
sqrt(81);
=>
log(%e);
=>
Dening functions and variables
Variables can be assigned through a colon : and functions through :=. The following
code shows how to use them:
a:7; b:8;
=>
=>
sqrt(a^2+b^2);
=>
f(x):= x^2 -x + 1;
=>
f(3);
=>
f(a);
=>
f(b);
=>
Please note that Maxima only oers the natural logarithm function log. log10 is not
available by default but you can dene it yourself as shown below:
log10(x):= log(x)/log(10);
=>
log10(10)
=>
Symbolic Calculations
factor enables us to nd the prime factorization of a number:
factor(30!);
=>
We can also factor polynomials:
factor(x^2 + x -6);
=>
And expand them:
expand((x+3)^4);
=>
Simplify rational expressions:
ratsimp((x^2-1)/(x+1));
=>
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
3 din 17 02.11.2014 16:48
And simplify trigonometric expressions:
trigsimp(2*cos(x)^2 + sin(x)^2);
=>
Similarly, we can expand trigonometric expressions:
trigexpand(sin(2*x)+cos(2*x));
=>
Please note that Maxima wont accept 2x as a product, it requires you to explicitly
specify 2*x. If you wish to obtain the TeX representation of a given expression, you can
use the tex function:
tex(%);
=> $$-\sin ^2x+2\,\cos x\,\sin x+\cos ^2x$$
Solving Equations and Systems
We can easily solve equations and systems of equations through the function solve:
solve(x^2-4,x);
=>
%[2]
=>
solve(x^3=1,x);
=>
trigsimp(solve([cos(x)^2-x=2-sin(x)^2], [x]));
=>
solve([x - 2*y = 14, x + 3*y = 9],[x,y]);
=>
2D and 3D Plotting
Maxima enables us to plot 2D and 3D graphics, and even multiple functions in the same
chart. The functions plot2d and plot3d are quite straightforward as you can see below.
The second (and in the case of plot3d, the third) parameter, is just the range of values for
x (and y) that dene what portion of the chart gets plotted.
plot2d(x^2-x+3,[x,-10,10]);
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
4 din 17 02.11.2014 16:48
plot2d([x^2, x^3, x^4 -x +1] ,[x,-10,10]);
f(x,y):= sin(x) + cos(y);
plot3d(f(x,y), [x,-5,5], [y,-5,5]);
Limits
limit((1+1/x)^x,x,inf);
=> %
limit(sin(x)/x,x,0);
=>
limit(2*(x^2-4)/(x-2),x,2);
=>
limit(log(x),x,0,plus);
=>
limit(sqrt(-x)/x,x,0,minus);
=>
Dierentiation
diff(sin(x), x);
=>
diff(x^x, x);
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
5 din 17 02.11.2014 16:48
=>
We can calculate higher order derivatives by passing the order as an optional number to
the di function:
diff(tan(x), x, 4);
=>
Integration
Maxima oers several types of integration. To symbolically solve indenite integrals use
integrate:
integrate(1/x, x);
=>
For denite integration, just specify the limits of integrations as the two last parameters:
integrate(x+2/(x -3), x, 0,1);
=>
integrate(%e^(-x^2),x,minf,inf);
=>
If the function integrate is unable to calculate an integral, you can do a numerical
approximation through one of the methods available (e.g. romberg):
romberg(cos(sin(x+1)), x, 0, 1);
=> 0.57591750059682
Sums and Products
sum and product are two functions for summation and product calculation. The simpsum
option simplies the sum whenever possible. Notice how the product can be use to
dene your own version of the factorial function as well.
sum(k, k, 1, n);
=>
sum(k, k, 1, n), simpsum;
=>
sum(1/k^4, k, 1, inf), simpsum;
=>
fact(n):=product(k, k, 1, n);
=>
fact(10);
=>
Series Expansions
Series expansions can be calculated through the taylor method (the last parameter
species the depth), or through the method powerseries:
niceindices(powerseries(%e^x, x, 0));
=>
taylor(%e^x, x, 0, 5);
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
6 din 17 02.11.2014 16:48
=>
The trunc method along with plot2d is used when taylors output needs to be plotted (to
deal with the in taylors output):
plot2d([trunc(%), %e^x], [x,-5,5]);
I hope youll nd this useful and that it will help you get started with Maxima. CAS can
be powerful tools and if you are willing to learn how to use them properly, you will soon
discover that it was time well invested.
Sponsors message: Math Better Explained is an insightful ebook and screencast series
that will help you deeply understand fundamental mathematical concepts, and see math
in a new light. Get it here.
Possibly related articles:
3 awesome free Math programs 1.
Refresh your High School Math skills 2.
What kind of Math did they teach you? 3.
If you enjoyed this post, then make sure you subscribe
to our Newsletter and/or RSS Feed.
134 Responses to A 10 minute tutorial for solving Math problems
with Maxima
Alex says:
September 11, 2009 at 10:14 am
Hi
Im alex..I write because I knew Maxima last year and using there in linux, its
1.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
7 din 17 02.11.2014 16:48
amazing!!!..But now I want install Maxima in WinXP (for work) and I fail the
conguration because there is a problem with a socket!!!
How Can I do?
thanks (Sorry for my English)!!!
Bie!!!
Reply
Hank says:
September 20, 2009 at 1:08 am
Hi
Dont forget to check out the best Maxima tutorial IMHO:
http://www.csulb.edu/~woollett/
Cheers!
Reply
2.
Larry Dickson says:
September 25, 2009 at 2:06 pm
How do you gracefully exit the maxima program? exit; and quit; dont work. I tried ?
quit and did get out via a stack overow but surely there is some way out other
than crashing???
Reply
3.
Antonio Cangiano says:
September 25, 2009 at 2:28 pm
Larry, quit(); will exit maxima.
Reply
4.
Alexandros says:
September 26, 2009 at 6:06 am
I exit maxima with Ctrl-D.
Reply
5.
samuel measho says:
October 14, 2009 at 3:07 pm
HI ,I just want to ask how can i use maxima to compute and draw the graph of
complex numbers.
Reply
6.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
8 din 17 02.11.2014 16:48
David Friedman says:
October 16, 2009 at 4:22 pm
Im trying Maxima now, after closing my sage session. I ran into trouble using sage
to dene a symbolic sum e.g. you want to dene a function like:
f(x) = sum(i, i, 1, x);
apparently sage cannot do that at this point in the development. It was
disappointing that sage couldnt do this (or if it is possible to do this I couldnt
gure it out after an hour of trying).
sage is actually the rst hit after a google search for sage, so it is still popular,
and maybe itll improve by leaps and bounds, but at least after the rst ten minutes
I have a better feeling about Maxima.
when I was searching for a way to solve my problem I found this thread, which
indicates
that this functionality is on the way for the sage:
http://groups.google.com/group/sage-support/browse_thread/thread
/cf9cb4e92ce3bc04/f5e41d8aa31294e4?lnk=gst&q=sum#f5e41d8aa31294e4
it seems to me that sage is more of an interface to or a concatenation of a lot of
other programs (latex, r, maxima, python etc., and also commercial programs like
mathematica, matlab). I guess one has to ask whether when doing a task it is better
to use sage as a single command center, or to just use that program directly.
Reply
paulb says:
September 12, 2011 at 10:37 pm
try
f(x):=sum(i, i, 1, x);
plot2d(f(x),[x,1,20]);
Reply
7.
Rob says:
November 14, 2009 at 6:31 pm
When I try your example:
trigsimp(2*cos(x)^2 + sin(x)^2);
I get
=> \displaystyle \cos(x)^2+1
instead of
=> \displaystyle \cos ^2x+1
8.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
9 din 17 02.11.2014 16:48
Reply
jerzy says:
March 10, 2012 at 3:44 pm
Maxima gives correct result, because:
2*cos(x)^2 + sin(x)^2=
cos(x)^2+cos(x)^2 + sin(x)^2=
cos(x)^2+1
where
cos(x)^2 + sin(x)^2=1
Reply
Ivan Belash says:
December 16, 2009 at 4:20 am
You forget one, but very important thing: how to run Ctrl+R
It really easy, but it was a problem for me.
Reply
9.
AKE says:
February 22, 2010 at 2:41 pm
Very nice tutorial introduction! Highly recommended rst intro to Maxima.
Ive put together a selection of the Maxima resources that Ive found most useful
over the years, including a succinct instruction cheatsheet, a guide to programming
subroutines/scripts, and a Mathematica-Maxima syntax conversion chart.
Theyre available here:
http://mathscitech.org/articles/maxima
Enjoy!
Reply
10.
A Rubens de Castro says:
March 24, 2010 at 6:47 am
I am using wxMaxima on Ubuntu9.10.
I understand that wxMaxima is just a front-end, the Maxima Kernel does not exist in
my computer, it resides somewhere else.
All the examples you give are very easy, however
I have a problem not covered on your tutorial: after a given number of operations
(computations, writes to disk, etc) my connection with Maxima is terminated, it is
like a time-out. Then I have to click on Restart Maxima to go on with my
calculations for some other value of the parameters.
Anything obvious which I should but am not doing ??? My colleagues say Maxima
11.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
10 din 17 02.11.2014 16:48
works better than Mathematica !
A Rubens
Reply
Alexander says:
April 23, 2010 at 12:19 pm
I am recently retired and cut my math curious teeth with Mathematica for
students circa fall 2000. The past ten years i have developed computer parametric
geometry to explor gravity curves and have a written manuscript that would work
best with a symbolic logic program such as Derive or Mathematica in the back
cover. TI didt want to look at it (Derive had more then enough power to study
simple curvature relations) and Mathematica never replied. I know it would push
education of math beyond expectations simply because I had so much fun doing it.
Can any one out there help get this project air borne. Not in education I had no
idea Maxima or others existed and there is little dierence betwixt utility gained!
Thanks for the tutorial and I will attempt the download and application.
Reply
12.
Ricardo M says:
August 24, 2011 at 5:27 pm
Men necesito un gran favor! necesito saber si sabes resolver problemas de
optimizacion lineal con este programa, se lo agradeceria mucho!
Reply
13.
synhedionn says:
September 6, 2011 at 6:49 am
Hi,
In Maxima: sum(i,i,1,n); gives sum(i,i,1,n);
Cant it give n(n+1)/2?
Reply
Antonio Cangiano says:
September 6, 2011 at 6:56 am
sum(i, i, 1, n), simpsum;
Reply
14.
Ragbir Chana says:
November 11, 2011 at 9:39 am
Great tutorial. I like tutorials doing by example.
15.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
11 din 17 02.11.2014 16:48
Reply
Derek Pilous says:
March 5, 2012 at 5:52 pm
Fantastic tutorial, thank you very much. If youre not a teacher, you should be (well,
if youre scientist, youre excused ;)). I am teacher myself and I can say, there are
few people capable of writing so comprehensible and yet inspiring introduction to
topic. Sorry for my English
Reply
16.
jerzy says:
March 10, 2012 at 3:53 pm
Clear, simple, useull, beautiful work. Thanks.
Reply
17.
RockyRoad says:
April 3, 2012 at 6:31 am
Great work Antonio, thank you very much
Inspiring ? Yes !
Im nearly new to CAS programs (played a bit with gnuplot though), my last math
classes are over 25 years old now not easy !
Im delighted to discover what Maxima can do for me and feel eager to refresh and
and expand my math notions and practice.
Your tutorial could do that !
Reply
18.
M Kanagasabapathy says:
May 6, 2012 at 1:57 am
Dear Antonio Cangiano,
Excellent and Nice tutorial. Kindly proceed for higher computations , tensors,
numerical simulations etc., if possible. It can be benecial for researchers and
students.
Dr M Kanagasabapathy
Reply
19.
phobos says:
May 8, 2012 at 7:07 am
20.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
12 din 17 02.11.2014 16:48
How to use if condition inside for loop.
I am using the following:
new:makelist(0);
k:1;
for i from 1 thru 10 do (
(if(imagpart(xvals[i]) = 0) then ab:makelist(xvals[i]),new:append(new,ab),k:k+1)
);
But, the if condition also gets executed 10 times.. though clearly it is not the case in
my program.
Reply
KSO says:
May 8, 2012 at 8:38 pm
Im trying to add random noise to a function, but the random() function only
generates a single number, giving me an oset. I want my function to plot a
Lorentzian curve, for example, but I want random white noise added to every point,
not just one. I used the following function denition:
Lno(G,x0,x):=(
r:random(x),
1/%pi*(0.5*G)/((x-x0)^2+(0.5*G)^2)+r
);
and tried another
Lnoi(G,x0,x):=1/%pi*(0.5*G)/((x-x0)^2+(0.5*G)^2)+random(1.2);
All I get is a smooth Lorentzian curve with a random oset when I plot using plot2d,
not random noise at every point.
Does anyone know how to do this?
Reply
Kevin Gregson says:
November 12, 2012 at 10:29 pm
If anyones still interested in plotting random noise, this works:
plot2d(at(lambda([x],1/%pi*(0.5*G)/((x-x0)^2+(0.5*G)^2)+random(0.2)),
[G=3,x0=0]),[x,1,5]);
Reply
21.
albert says:
September 17, 2012 at 10:16 am
I think your introductory page is brilliant.
There is however one aspect that might be improved. You could draw slightly more
attention to the variables and the fact that they can contain any result. It took me a
22.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
13 din 17 02.11.2014 16:48
whole day 1) to realise one can do:
a:1 ;
b:2 ;
a+b ;
Or for that matter:
s:factor(30!);
2*s;
I dont propose to make your page longer! It is the careful selection of what is
presented that makes it so good. It would suice to make variables slightly more
prominent in the examples.
groetjes Albert
1) Admittedly before I knew your introduction.
Reply
Dante says:
May 20, 2013 at 7:36 am
I dont know why wxMaxima doesnt solve my limit. I input the limit and it returns
the same limit written with LaTeX :S I dont knwo what Im doing wrong.
This is the limit im trying to solve:
limit([ln(x^2+1)/((5*sen(x))+x)]+6,x,0);
Reply
23.
Ahmed Fasih says:
June 28, 2013 at 1:02 pm
In case anybody wants to do vector (or matrix) math, heres a quick example on how
to make them:
u : transpose(matrix([x, y, z]));
v : transpose(matrix([a, b, c]));
Matrix/vector multiplication is done by the dot, ., syntax:
transpose(u) . v;
And of course you can do the usual symbolic manipulations:
di(sqrt(transpose(u) . v), x);
Reply
24.
rendering spirals | Spirotaxis says:
August 27, 2013 at 1:06 am
[] to re-derive this approximation formula for an Archimedean spiral rather than a
circle. I read a tutorial on using wxMaxima, then created a worksheet to chug
through the derivation. The spiral may be composed of an []
Reply
25.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
14 din 17 02.11.2014 16:48
mahtab says:
September 18, 2013 at 7:38 am
What is dierent between Maxima and other softwares such as Matlab and Scilab?
what is benets and features of my called softwares?
Reply
26.
Huen Yeong Kong says:
September 28, 2013 at 5:32 pm
I could not get Maxima to do the folling job:
x:[a,b,c,d,e];
y:[1,2,3,4,5];
I want to assign a=1,b=2,c=3,d=4,e=5
using
map(x,y)
it does not work
Could someone show me how to do this?
Reply
27.
Was man in MATH-BLOG.COM lernen kann | Mathematik mit Maxima says:
November 21, 2013 at 4:24 am
[] Quelle: http://math-blog.com/2007/06/04/a-10-minute-tutorial-for-solving-
math-problems-with-maxima/ []
Reply
28.
Robert Dodier says:
July 6, 2014 at 11:22 pm
Hi, thanks for the great tutorial. By the way, what tools did you use to compose this
article? The fonts and coloring are very nice.
Reply
29.
Jim Mooney says:
August 27, 2014 at 1:43 am
I tried some other popular packages, and they didnt work properly for various
reasons. (One looked good but wouldnt paste, amd I dont need to do All that
retyping. Another threw errors. Others were horrible to install, especially for
Windows.)
This worked great, and easily, to include graphing, out of the box.
Reply
30.
Older Comments
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
15 din 17 02.11.2014 16:48
Leave a Reply
Name (required)
Mail (will not be published) (required)
Website
Submit Comment
Notify me of follow-up comments by email.
Notify me of new posts by email.
Join Our Mailing List
* indicates required
Email Address *
First Name
Subscribe
Recommended Math Books
Click here to see our math book list.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
16 din 17 02.11.2014 16:48
Search
Search
Sponsors
Authors
Antonio Cangiano
Chris Waggoner
David Binner
Dr Michael Taylor (PhD, CPhys)
Gregory Thole
Jessica Cangiano
John F. McGowan, Ph.D.
Katherine Stange
Marvin Ray Burns
Michael Koploy
Tony McDaniel
Categories Select Category
Math Links
New Books
Not Even Wrong
Polymathematics
Technical Blogging
The N-Category Caf
The Unapologetic Mathematician
Zen and the Art of Programming
Copyright Math-Blog 2007 - 2014. All rights reserved.
A 10 minute tutorial for solving Math problems ... http://math-blog.com/2007/06/04/a-10-minute-tu...
17 din 17 02.11.2014 16:48