diff options
Diffstat (limited to 'modules/polynomials/demos')
-rwxr-xr-x | modules/polynomials/demos/intro/poly.intro.dem.sce | 100 | ||||
-rwxr-xr-x | modules/polynomials/demos/polynomials.dem.gateway.sce | 19 |
2 files changed, 119 insertions, 0 deletions
diff --git a/modules/polynomials/demos/intro/poly.intro.dem.sce b/modules/polynomials/demos/intro/poly.intro.dem.sce new file mode 100755 index 000000000..bffa130f1 --- /dev/null +++ b/modules/polynomials/demos/intro/poly.intro.dem.sce @@ -0,0 +1,100 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Michael Baudin +// Copyright (C) 2010 - DIGITEO - Allan CORNET +// +// This file is released under the 3-clause BSD license. See COPYING-BSD. + +m = mode(); +mode(7); + +// This is a small introduction to the polynomials objects in +// Scilab. +// 1. Define the polynomial +// There are several ways to define a polynomial in Scilab. +// The first way is to define a variable and then define the +// "natural" mathematical definition. +// Define x as a variable, that is, a polynomial of degree 0 +x=poly(0,"x") +// Define p as a polynomial of variable x +p1=-6+11*x-6*x^2+x^3 +// The second way is to define the coefficients of the polynomial +// as a vector. +mycoeff=[-6 11 -6 1] +p2=poly(mycoeff,"x","coeff") +// The third way is to define the polynomials by its roots. +myroots=[1 2 3] +p3=poly(myroots,"x","roots") +// The 4th way is to define the polynomial as the characteristic +// polynomial of a given matrix. +// In the following case, we are giving the companion matrix of our +// favorite polynomial. +mymatrix=[6 -11 6;1 0 0;0 1 0] +p4=poly(mymatrix,"x") +// 2. Algebraic manipulations +// We can can process simple algebraic computations +// with the polynomials, considered as basic objects. +p5 = p1+p2 +p6 = p1-p2 +p7 = p1*p2 +p8 = p3-p1*p4 +// We can test the equality of two polynomials +are12equal = (p1==p2) +are12diff = (p1<>p2) + +// 3. Polynomial analysis +// Scilab provides several functions to inquire a specific +// polynomial. +// The "coeff" function returns a vector containing the +// coefficients of a given polynomial. +coeff1=coeff(p1) +// One can compute the derivative of the polynomial with +// the "derivat" function, which returns the derivative +// of the given polynomial or rational polynomial. +p10=derivat(p1) +// One can compute numerically the roots of one given polynomial with the +// "roots" function, which returns the vectors of roots. +theroots=roots(p1) +// The companion matrix is so that its characteristic polynomial +// is p. +comp1=companion(p1) +// One can check that the eigenvalues of the companion matrix of p1 +// are the roots of p1. +roots1=spec(comp1) +// One can factor a given polynomial with the "factor" function. +// Here the p1 polynomial can be written p1=g*(x-1)*(x-2)*(x-3) +// with "g" the gain. +[lnum,g]=factors(p1) + +// 4. Rational polynomial +// Rational polynomials can be defined as well. +p9=(1+2*x+3*x^2)/(4+5*x+6*x^2) +// The derivative can be computed with "derivat", as +// as regular polynomial. +p11=derivat(p9) +// Notice that polynomials and rational polynomials do +// not have the same type. +typeof(p1) +typeof(p9) +// The numerator and denominator polynomials of the rational polynomial +// can be extracted with the "numer" and "denom" functions. +numer(p9) +denom(p9) +// Rational polynomials can be simplified with the "simp" function, +// which returns the numerator and denominator of the given couple +// of polynomials. +[n,d]=simp((x+1)*(x+2),(x+1)*(x-2)) + + +mode(m); + +// clear variables + +clear n; clear d; clear denom; clear numer; +clear typeof; clear p11; clear p9; clear %p_r_p; +clear lnum; clear g; clear factors; clear roots1; +clear comp1; clear companion; clear theroots; clear p10; +clear derivat; clear coeff1; clear are12diff; clear are12equal; +clear p8; clear p7; clear p6; clear p5; +clear p4; clear mymatrix; clear p3; clear myroots; +clear p2; clear mycoeff; clear p1; clear x; +clear m;
\ No newline at end of file diff --git a/modules/polynomials/demos/polynomials.dem.gateway.sce b/modules/polynomials/demos/polynomials.dem.gateway.sce new file mode 100755 index 000000000..a1a3fdade --- /dev/null +++ b/modules/polynomials/demos/polynomials.dem.gateway.sce @@ -0,0 +1,19 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Michael Baudin +// Copyright (C) 2010-2011 - DIGITEO - Allan CORNET +// +// This file is released under the 3-clause BSD license. See COPYING-BSD. + +function subdemolist = demo_gateway() + + demopath = get_absolute_file_path("polynomials.dem.gateway.sce"); + add_demo(gettext("Polynomials"),demopath+"polynomials.dem.gateway.sce"); + + subdemolist = [_("Introduction") , "intro/poly.intro.dem.sce" ]; + + subdemolist(:,2) = demopath + subdemolist(:,2); + +endfunction + +subdemolist = demo_gateway(); +clear demo_gateway;
\ No newline at end of file |