by R. Grothmann

"root" is an equation solver for interactive use. It can solve an equation for one variable, and will assign the result to this variable.

We first take a simple example.

>longformat; a:=2; x:=1; root("x^2-a",x)

1.41421356237

The solution for x is assigned to the global variable x.

>x

1.41421356237

>sqrt(2)

1.41421356237

We could also solve for the variable "a" starting with a different value of the variable "a".

>a:=3; root("x^2-a",a)

2

For a more complex example, we take the computation of interest rates for a loan (or a savings account).

Assume you get K (K>0) at time 0 and pay P (P<0) at each period, starting from period 1 to period n-1. You then have a final depth F (F<0). What is the interest rate?

>ex &= K*f^n+(f^(n-i0+1)-1)/(f-1)*f^i1*P+F

i1 n - i0 + 1 f (f - 1) P n ----------------------- + f K + F f - 1

After we set up the expression, we initialize the variables with values. We take an approximation for f (8 %). This time we have to pay 1000 each month. We are done (F=0) after 120 month.

We set up starting values for all variables in the formula.

>K:=100000; n:=120; f:=1.08^(1/12); P:=-1000; i0:=1; i1:=0; F:=0;

Then we solve for the correct interest rate "f".

>root(ex,f)

1.00311418195

To compute the effective interest rate per year, we must take f^12 and compute the interest rate in %.

>(f^12-1)*100

3.80169510507

Assume we stop paying after 119 months, and the interest rate is 8%. How much would be left after 120 month?

>f:=1.08^(1/12); i1:=1; "Dept left:"|print(-root(ex,F),2)

Dept left: 34609.30

How long would it take to pay the loan at 8%?

>F:=0; i1:=0; "Payed after "|print(root(ex,n)/12,1,0)|" years"

Payed after 13.4 years