% Welcome! % % This notebook introduces you to the basic facts about % EULER. You can execute the commands in this notebook % one by one. Just press the Enter key, each time the cursor % is on a command. The command will execute, you can see % the output and the cursor advances to the next command. % % You can page up with the scrollbar or with the page up key, % if you want to revisit old output. % % EULER works like a calculator. You can enter a formula % and it will be evaluated. >(1+1/1000)^1000 % EULER knows of many mathematical functions. Look into % the on-line help or the documentation. % % You may assign values to variables and use them later. >a=1.1; a^3+a/(a-1) % If a command is followed by a semicolon (;), EULER % does not print its output. You can enter more than one % command in a line. There are in fact two basic commands: % assignments and expressions. There is a third type: % Built-in commands. We will meet this type later. % % You can enter a vector into EULER. >v=[1;2;3] % Or a matrix. >M=[1,2,3;4,5,6;7,8,9] % You may then multiply the matrix and the vector. % EULER used the dot for the matrix product. >M.v % EULER can handle vectors very well. There are lots of % commands, which generate a vector. One of them is % the : command. >1:10 % We can use it to generate a table of x values. % This time, we surpress the output of the 201 % entries of the vector x. >x=-1:0.01:1; % One principle of EULER is that all functions are % applied to every element of a vector. >sqrt(1:10) % So we can easily generate a table of y values. >y=x^3-x; % This makes it possible to plot the values of the function x^3-x. >xplot(x,y); % The plot disappears as soon as EULER has to print % text to the text window. So press the TAB key to % see the plot. % % You could set the plot window, or give the plot a % title. >setplot(-2,2,-2,2); xplot(x,y); title("First plot"); wait(20) % You can also use the fplot routine, which takes a function % name or an expression in the variable x as first argument. >fplot("x^3-x",-1,1); % Many other function support this style. fmax finds the % point, where the maximum of a convex function in a given % interval is obtained. >fmax("x^3-x",-1,0) % Another examples is the Romberg method, which computes % the integral of a function. >romberg("x^3-x",0,1) % You can also easily program new functions in EULER. % Please, enter the following lines one by one. >function f(x) $return 1/((x-0.3)^2+0.01)+1/((x-0.9)^2+0.04)-6; $endfunction % We can then plot the function using fplot. >fplot("f",0,2); wait(20); % It may be easier to use an expression in x. We could % assign it to a variable first. >expr="1/((x-0.3)^2+0.01)+1/((x-0.9)^2+0.04)-6"; % The we use this expression string with fplot. >fplot(expr,0,2); wait(20); % Or we could integrate the function over [0,2] using % Romberg's method. We increase the accuracy for this. >longformat; romberg("f",0,2) % Let us compare the result with another method. We use % Gauss quadrature with 10 subintervals and 20 knots in % each subinterval. >gauss("f",0,2,20) % The simpson method if far less efficient. >simpson("f",0,2,200) % Note that f has a zero close to 1.2. We find this % zero with the secant method. >secant("f",1,2) % Let us use the bisection method and compare the result. >bisect("f",1,2) % EULER can do a lot of linear algebra. First let us define % a matrix with random entries, equally distributed in % [0,1]. >A=random(5,5) % We can compute the inverse. >inv(A) % Let us check it. >totalmax(A.inv(A)-id(5)) % Or the eigenvalues. >eigenvalues(A) % How about the condition number? >max(abs(eigenvalues(A)))/min(abs(eigenvalues(A))) % Let us put it into a function. >function condition (A) $e=abs(eigenvalues(A)); $return max(e)/min(e); $endfunction % Test it. >condition(A) % The condition number of the 5x5 Hilbert matrix. >condition(hilb(5)) % Compute the Eigenvalues and the Eigenvectors. >{l,H}=eigen(A); % Check if A.h=l*h for each column of H and corresponding % l. >totalmax(abs(A.H-dup(l,5)*H)) % Three-dimensional plots can be easily created with f3dplot. % Let us call reset, so that the default view is applied. >reset; f3dplot("x*y"); wait(20); >