Examples

Examples

This is a small tour of the capabilities Yacas currently offers. Note that this list of examples is far from complete. Yacas contains a few hundred commands, of which only a few are shown here.

Additional example calculations including the results can be found here:


Miscellaneous capabilities

100!;
Compute a large factorial using arbitrary precision integers.

ToBase(16,255);
Convert to another number base.

Expand((1+x)^5);
Expand the expression into a polynomial.

Apply("+",{2,3});
Apply an operator to a list of arguments. This example would evaluate to 5.

Apply({{x,y},x+y},{2,3});
Apply a pure function to a list of arguments. This example would also evaluate to 5.

D(x)D(x) Sin(x);
Take derivatives of a function.

Solve(a+x*y==z,x);
Solve an equation for a variable.

Taylor(x,0,5) Sin(x);
Calculate the taylor series expansion of a function.

Limit(x,0) Sin(x)/x;
Calculate the limit of a function as a variable approaches a value.

Newton(Sin(x),x,3,0.0001);
Use Newton's method for numerically finding a zero of a function.

DiagonalMatrix({a,b,c});
Create a matrix with the elements specified in the vector on the diagonal.

Integrate(x,a,b) x*Sin(x);
Integrate a function over variable x, from a to b.

Factors(x^2-1);
Factorize a polynomial.

Apart(1/(x^2-1),x);
Create a partial fraction expansion of a polynomial.


A longer calculation with plotting

Here is an example of a semi-real numerical calculation using Yacas. The problem is to visualize a particular exact solution of an elliptical differential equation that is represented by an infinite series. We want to evaluate this infinite series numerically and plot it for particular values of the parameters. The series could be represented using Yacas notation as
1/(2*Pi)*Sin(q*phi)/Sin(2*q*phi)+ 1/Pi*Sum(n, 0, Infinity,
  Cos(n*chi) * Sin(Sqrt(q^2-n^2)*phi) / Sin(Sqrt(q^2-n^2)*phi) )
Here q, phi and chi are numerical parameters of the problem. We would like to plot this series evaluated at fixed q and phi as function of chi between 0 and 2*Pi.

To solve this problem, we prepare a separate file with the following Yacas code:
	/* Auxiliary function */
g1(n, q, phi, chi) := [
	Local(s);
	s := q^2-n^2;
	N(Cos(n*chi) * If(s=0,
		1/2,	/* Special case of s=0: avoid division by 0 */
		Sin(Sqrt(s)*phi)/Sin(2*Sqrt(s)*phi)	/* now s != 0 */
			/* note that Sqrt(s) may be imaginary here */
		)
	);
];

	/* Main function */
g(q, phi, chi) := [ 
	Local(M, n);
	M := 16; /* Exp(-M) will be the precision */
		/* Use N() to always force evaluation */
	N(1/2*Sin(q*phi)/Sin(2*q*phi)) +
		/* Estimate the necessary number of terms in the series */
	Sum(n, 1, N(1+Sqrt(q^2+M^2/phi^2)), g1(n, q, phi, chi)) ;
];
	/* Parameters */
q:=3.5;
phi:=2;
	/* Make a function for plotting: it must have only one argument */
f(x) := g(q, phi, x);
	/* Plot from 0 to 2*Pi with 80 points */
GnuPlot(0, N(2*Pi), 80, f(x));
Name this file "fun1" and execute this script by typing
Load("fun1");
After this you should see a window with a plot.