# Συμβολική άλγεβρα και μαθηματικά με το `Xcas` ### Renée De Graeve, Bernard Parisse Πανεπιστήμιο Grenoble I Μετάφραση από τα Αγγλικά: Βασιλική Αλεξίου, Αχιλλέας Καραβασίλης, Όλγα Μανιάτη Διασκευή: Αλκιβιάδης Γ. Ακρίτας Πανεπιστήμιο Θεσσαλίας akritas@uth.gr

© 2002, 2007 Renée De Graeve, Bernard Parisse
`renee.degraeve@wanadoo.fr`
`bernard.parisse@ujf-grenoble.fr`

# Index

", 1.4.1 , 1.2.3 ’, 1.12.3 ’*’, 1.16.1 ’+’, 1.11.1, 1.14.1, 1.16.1 ’-’, 1.11.1, 1.14.1, 1.16.1 ’/’, 1.16.1 (), 1.35.1 *, 1.16.1, 1.31.4, 1.38.7, 1.42.3 +, 1.4.9, 1.4.10, 1.11.1, 1.14.1, 1.16.1, 1.31.2, 1.35.7, 1.38.3, 1.42.2 +,-,*,/,^, 1.9.2 +άπειρο, 1.1 ,, 1.35.2 -, 1.11.1, 1.14.1, 1.16.1, 1.31.3, 1.38.4, 1.42.2 ->, 1.15.1 -άπειρο, 1.1 .*, 1.38.5, 1.42.9 .+, 1.38.3, 1.42.2 .-, 1.38.4, 1.42.2 .., 1.34.1, 1.35.4 ./, 1.38.6, 1.42.10 .^, 1.42.11 /, 1.16.1, 1.31.8, 1.31.11, 1.43.2 :=, 1.15.1 <, 1.2.2 <=, 1.2.2 ==, 1.2.2 >, 1.2.2 >=, 1.2.2 [], 1.34.2, 1.35.3, 1.35.4, 1.35.6, 1.37, 1.37.12 1.14.2, 1.16.4 1.14.2, 1.16.5 $, 1.14.2, 1.17.5, 1.35.5 %, 1.6.11, 1.14.2, 1.31, 1.32 %{ %}, 1.36.1 &*, 1.42.3 &&, 1.2.3 &^, 1.42.7 ^, 1.11.1, 1.14.1, 1.31.9, 1.42.7 _, 4.1.1, 4.2.1 !, 1.7.1 !=, 1.2.2, 1.2.3 άπειρο, 1.1 Airy_Ai, 1.9.11 Airy_Bi, 1.9.11 a2q, 1.49.2 abcuv, 1.25.12 about, 1.22.1 abs, 1.11.5, 1.16.2 acos, 1.16.2, 1.21.1 acos2asin, 1.21.6 acos2atan, 1.21.7 acosh, 1.16.2 acot, 1.21.1 acsc, 1.21.1 add, 1.37.29 adjoint_matrix, 1.46.9 algvar, 1.54.4 and, 1.2.3 animate, 2.17.1 animate3d, 2.17.2 animation, 2.17.3 append, 1.37.16 apply, 1.37.32 approx, 3.2 arccos, 1.16.2, 1.21.1 arccosh, 1.16.2 arcLen, 1.17.2 arcsin, 1.16.2, 1.21.1 arcsinh, 1.16.2 arctan, 1.16.2, 1.21.1 arctanh, 1.16.2 areaplot, 2.7 arg, 1.11.6 as_function_of, 1.16.6 asc, 1.4.5 asec, 1.21.1 asin, 1.16.2, 1.21.1 asin2acos, 1.21.8 asin2atan, 1.21.9 asinh, 1.16.2 assume, 1.22.1, 1.22.1 at, 1.37.2, 1.42.12 atan, 1.16.2, 1.21.1 atan2acos, 1.21.11 atan2asin, 1.21.10 atanh, 1.16.2 atrig2ln, 1.21.18 augment, 1.37.15, 1.42.23 Beta, 1.9.8 Binary, 1.14.3 BlockDiagonal, 1.41.4 barycentre, 1.11.10 base, 1.5 basis, 1.43.9 bernoulli, 1.8.9 binomial, 1.7.2 bisection_solver, 3.4.1 bitand, 1.3.1 bitor, 1.3.1 bitxor, 1.3.1 black, 2.1.1 blockmatrix, 1.42.21 blue, 2.1.1 border, 1.42.26 boxwhisker, 1.39, 1.42.31 brent_solverbrent_solver, 3.4.2 c1oc2, 1.10.11 c1op2, 1.10.9 canonical_form, 1.12.6 cat, 1.4.8, 1.4.10 ceil, 1.16.2 ceiling, 1.16.2 center2interval, 1.34.4 cFactor, 1.12.10 changebase, 1.43.8 char, 1.4.6 charpoly, 1.46.6 chinrem, 1.25.13 cholesky, 1.48.1 chrem, 1.6.23 coeff, 1.24.3 coeffs, 1.24.3 col, 1.42.14 colDim, 1.42.34 coldim, 1.42.34 collect, 1.24.12 colNorm, 1.45.4 colnorm, 1.45.4 color, 2.1.1 , 3.4.2 colspace, 1.43.14 comb, 1.7.2 combine, 1.20.2 comDenom, 1.28.7 companion, 1.46.10 complexroot, 1.29.1 concat, 1.37.15, 1.42.23 confrac, 1.8.7 conic, 1.49.5 conj, 1.11.8 contains, 1.37.24 content, 1.24.10 contourplot, 2.8 convert, 1.5, 1.21.23, 1.24.22, 4.1.4 convertir, 1.21.23, 1.24.22 cos, 1.21.1 cos, 1.20.2, 1.21.23 cosh, 1.16.2, 1.16.2 cot, 1.21.1 count, 1.37.25, 1.42.27 count_eq, 1.37.26, 1.42.28 count_inf, 1.37.27, 1.42.29 count_sup, 1.37.28, 1.42.30 courbe_polaire, 2.12 crationalroot, 1.29.4 cross, 1.38.8 crossP, 1.38.8 crossproduct, 1.38.8 cSolve, 1.51.7 csc, 1.21.1 cumSum, 1.4.3, 1.37.30, 1.42.5 curl, 1.50.5 cyan, 2.1.1 cycle2perm, 1.10.4 cycleinv, 1.10.14 cycles2permu, 1.10.3 cyclotomic, 1.25.14 cZzeros, 1.12.12 Delete, 1.14.3 Det, 1.32.5 DIGITS, 1.9.1, 3.2 Digits, 1.9.1, 3.2 DrawFunc, 2.2 DrawParm, 2.11, 2.11.2 DrawPol, 2.12 DrwCtour, 2.8 degree, 1.24.4 delcols, 1.42.15 delrows, 1.42.15 deltalist, 1.37.37 denom, 1.8.4, 1.28.4 densityplot, 2.9 derive, 1.17.5, 1.50.1 deriver, 1.17.5, 1.50.1 deSolve, 1.53.1 desolve, 1.53.1 det, 1.31.15, 1.43.4 det_minor, 1.43.5 dfc, 1.8.7 dfc2f, 1.8.8 diag, 1.41.4 diff, 1.17.5, 1.50.1 dim, 1.42.32 display, 2.1.1 divergence, 1.50.4 divide, 1.25.6 divis, 1.25.1 divisors, 1.6.9 divpc, 1.33.1 dnewton_solverdnewton_solver, 3.5.1 dot, 1.38.7 dotP, 1.38.7 dotprod, 1.38.7 droit, 1.51.5 dsolve, 1.53.1 e, 1.1 e2r, 1.24.2 egcd, 1.25.11 egv, 1.46.3 egvl, 1.46.2 eigenvals, 1.46.1 eigenvalues, 1.46.2 eigenvectors, 1.46.3 eigenvects, 1.46.3 eigVc, 1.46.3 eigVl, 1.46.2 epsilon, 1.54.1 epsilon2zero, 1.54.1 equal, 1.51.1 equal2diff, 1.51.2 equal2list, 1.51.3 erf, 1.9.5 erfc, 1.9.6 euler, 1.6.25 eval, 1.12.1 evala, 1.12.2 evalb, 1.2.5 evalc, 1.11.4 evalf, 1.8.1, 1.9.1, 1.54.6, 3.2 evalm, 1.42.1 even, 1.6.13 exact, 1.8.1, 1.54.7 exp, 1.16.2 exp, 1.20.2, 1.21.23 exp2list, 1.2.4 exp2pow, 1.23.8 exp2trig, 1.21.12 expand, 1.12.5 expexpand, 1.23.2 expln, 1.21.23 expr, 1.4.11 ezgcd, 1.25.9 FALSE, 1.2.1 Factor, 1.32.4 f2nd, 1.8.5, 1.28.5 factor, 1.12.9, 1.24.13, 1.31.14, 1.31.19 factor_xn, 1.24.9 factorial, 1.6.1, 1.7.1 factoriser, 1.24.13, 1.31.14 factors, 1.24.15 false, 1.2.1 falsepos_solverfalsepos_solver, 3.4.3 fcoeff, 1.30.2 fdistrib, 1.12.5 feuille, 1.15.3, 1.34.2 fft, 1.22.3 fieldplot, 2.14 filled, 2.1.1 float2rational, 1.8.1, 1.54.7 floor, 1.16.2 fMax, 1.17.3 fMin, 1.17.3 fourier_an, 1.22.1 fourier_bn, 1.22.1 fourier_cn, 1.22.1 fPart, 1.16.2 frac, 1.16.2 fracmod, 1.31.12 frames, 2.17.1, 2.17.2 froot, 1.30.1 fsolve, 3.4, 3.5 fullparfrac, 1.21.23 funcplot, 2.2 function_diff, 1.17.1 fxnd, 1.8.5, 1.28.5 Gamma, 1.9.7 Gcd, 1.6.3, 1.25.8, 1.32.3 GF, 1.31.18 Graph, 2.2 gauche, 1.51.4 gauss, 1.49.3 gaussjord, 1.52.3 gbasis, 1.27.1 gcd, 1.6.2, 1.25.7, 1.31.13 gcdex, 1.25.11 genpoly, 1.27.3 getDenom, 1.8.4, 1.28.3 getNum, 1.8.3, 1.28.1 grad, 1.50.1 gramschmidt, 1.49.4 graphe_suite, 2.13 greduce, 1.27.2 green, 2.1.1 groupermu, 1.10.16 hadamard, 1.42.8 halftan, 1.21.16 halftan_hyp2exp, 1.21.17 hamdist, 1.3.2 has, 1.54.5 hasard, 1.7.4 head, 1.4.2, 1.37.4 hermite, 1.26.2 hessenberg, 1.46.11 hessian, 1.50.3 heugcd, 1.25.9 hilbert, 1.41.6 hold, 1.12.3 horner, 1.24.16 hybrid_solverhybrid_solver, 3.5.2 hybridj_solverhybridj_solver, 3.5.5 hybrids_solverhybrids_solver, 3.5.3 hybridsj_solverhybridsj_solver, 3.5.6 hyp2exp, 1.23.1 Int, 1.18.1 Inverse, 1.32.6 i, 1.1 iabcuv, 1.6.21 ibasis, 1.43.10 ibpdv, 1.18.4 ibpu, 1.18.4 ichinrem, 1.6.22 ichrem, 1.6.22 id, 1.16.2 identity, 1.41.1 idivis, 1.6.9 idn, 1.41.1 iegcd, 1.6.20 ifactor, 1.6.6 ifactors, 1.6.7 ifft, 1.22.4 igcd, 1.6.2 igcdex, 1.6.20 ihermite, 1.46.12 ilaplace, 1.53.2 im, 1.11.3 imag, 1.11.3 image, 1.43.11 implicitplot, 2.10 indets, 1.54.2 inequationplot, 2.6 inString, 1.4.7 | int, 1.18.1 intDiv, 1.6.10 integer, 1.22.1 integrate, 1.18.1 interactive_odeplot, 2.16 interactive_plotode, 2.16 interp, 1.24.26 intersect, 1.36.3 interval2center, 1.34.3 inv, 1.31.11, 1.31.16, 1.43.2 inverse, 1.31.16 iPart, 1.16.2 iquo, 1.6.10 iquorem, 1.6.12 irem, 1.6.11 is_cycle, 1.10.7 is_permu, 1.10.6 is_prime, 1.6.16 is_pseudoprime, 1.6.15 ismith, 1.46.13 isom, 1.47.1 ithprime, 1.6.19 JordanBlock, 1.41.5 jacobi_symbol, 1.6.27 jordan, 1.46.5 ker, 1.43.12 kernel, 1.43.12 LineHorz, 2.5.2 LineTan, 2.5.4 LineVert, 2.5.3 l1norm, 1.38.1 l2norm, 1.38.1, 1.45.1 lagrange, 1.24.26 laguerre, 1.26.3 laplace, 1.53.2 laplacian, 1.50.2 lcm, 1.6.5, 1.25.10 lcoeff, 1.24.6 ldegree, 1.24.5 left, 1.34.2, 1.51.4 legendre, 1.26.1 legendre_symbol, 1.6.26 length, 1.37.13 lgcd, 1.6.4 lhs, 1.51.4 limit, 1.19.1, 1.19.2 limite, 1.19.2 lin, 1.23.4 line, 2.5.1 linsolve, 1.52.6 list2mat, 1.37.38 lll, 1.48.5 ln, 1.16.2 ln, 1.20.2, 1.21.23 lname, 1.54.2 lncollect, 1.23.5 lnexpand, 1.23.3 log, 1.16.2 log, 1.20.2 log10, 1.16.2 logb, 1.16.2 lu, 1.48.3 lvar, 1.54.3 magenta, 2.1.1 makelist, 1.37.35 makemat, 1.42.24 makesuite, 1.37.11 makevector, 1.37.12 map, 1.37.32 maple_ifactors, 1.6.8 mat2list, 1.37.39, 1.37.39 matrix, 1.42.25 matrix, 1.21.23 max, 1.16.2 maxnorm, 1.38.1, 1.45.2 mean, 1.39, 1.42.31 median, 1.39, 1.42.31 member, 1.37.23 mid, 1.4.2, 1.37.3, 1.37.3 min, 1.16.2 minus, 1.36.4 mkisom, 1.47.2 mksa, 4.1.3 mod, 1.6.11, 1.32 modgcd, 1.25.9 mods, 1.6.11 mRow, 1.42.18 mRowAdd, 1.42.19 mul, 1.37.31 mult_c_conjugate, 1.11.9 mult_conjugate, 1.12.7 Nullspace, 1.43.13 nCr, 1.7.2 ncols, 1.42.34 nDeriv, 3.3.2 newList, 1.37.34 newMat, 1.41.2 newton, 3.3.1 newton_solvernewton_solver, 3.4.4 newtonj_solvernewtonj_solver, 3.5.4 nextprime, 1.6.17 nInt, 3.3.3 nop, 1.35.6 nops, 1.37.13 norm, 1.38.1, 1.45.1 normal, 1.12.13, 1.31.1, 1.31.3, 1.31.4, 1.31.9 normalize, 1.11.7, 1.38.2 not, 1.2.3 nPr, 1.7.3 nrows, 1.42.33 nSolve, 3.4 nstep, 2.2 nullspace, 1.43.12 numer, 1.8.3, 1.28.2 odd, 1.6.14 odeplot, 2.15 odesolve, 3.3.4, 3.3.5 of, 1.37.32 op, 1.15.3, 1.34.2, 1.37.11 or, 1.2.3 ord, 1.4.4 order_size, 1.33.2, 1.33.3 Psi, 1.9.9 p1oc2, 1.10.10 p1op2, 1.10.8 pa2b2, 1.6.24 pade, 1.33.5 paramplot, 2.11, 2.11.2 parfrac, 1.21.23 pari, 1.8.10 part, 1.12.19 partfrac, 1.28.9 partfrac, 1.21.23 pcar, 1.46.6 pcar_hessenberg, 1.46.7 pcoef, 1.24.20 pcoeff, 1.24.20 perm, 1.7.3 perminv, 1.10.13 permu2cycles, 1.10.2 permu2mat, 1.10.5, 1.48.3 permuorder, 1.10.15 peval, 1.24.8 phi, 1.6.25 pi, 1.1 pivot, 1.52.5 plot, 2.3 plot3d, 2.4 plotarea, 2.7 plotcontour, 2.8 plotdensity, 2.9 plotfield, 2.14 plotfunc, 1.17.4, 2.2 plotimplicit, 2.10 plotinequation, 2.6 plotode, 2.15 plotparam, 2.11, 2.11.2 plotpolar, 2.12 plotseq, 1.13.2, 2.13 pmin, 1.46.8 point_milieu, 2.7 polarplot, 2.12 poly2symb, 1.24.1 polyEval, 1.24.8 polynom, 1.21.23, 1.24.22 potential, 1.50.6 pow2exp, 1.23.7 powermod, 1.31.10 powexpand, 1.23.6 powmod, 1.31.10 prepend, 1.37.17 preval, 1.12.18 prevprime, 1.6.18 primpart, 1.24.11 product, 1.37.31, 1.42.6, 1.42.8 proot, 3.6 propFrac, 1.8.2 propfrac, 1.8.2, 1.28.8 psrgcd, 1.25.9 ptayl, 1.24.17 purge, 1.22.1 Quo, 1.25.3, 1.32.1 q2a, 1.49.1 qr, 1.48.2 quadric, 1.49.6 quantile, 1.39, 1.42.31 quartiles, 1.39, 1.42.31 quo, 1.25.2, 1.31.5 quorem, 1.25.6, 1.31.7 quote, 1.12.3 Rem, 1.25.5, 1.32.2 Rref, 1.32.7 r2e, 1.24.1 rand, 1.7.4 randMat, 1.41.3 randmatrix, 1.41.3 randPoly, 1.24.23 randperm, 1.10.1 randpoly, 1.24.23 randvector, 1.37.36 rank, 1.43.6 ranm, 1.24.25, 1.41.3 rat_jordan, 1.46.4 rationalroot, 1.29.3 ratnormal, 1.12.15 rdiv, 1.9.3 re, 1.11.2 real, 1.11.2 realroot, 1.29.2 rectangle_droit, 2.7 rectangle_gauche, 2.7 red, 2.1.1 ref, 1.52.2 rem, 1.25.4, 1.31.6 remain, 1.6.11 remove, 1.37.22 reorder, 1.24.24 residue, 1.33.4 resoudre, 1.12.9, 2.5.6 resultant, 1.25.19 reverse_rsolve, 1.52.7 revlist, 1.37.7 rhs, 1.51.5 right, 1.34.2, 1.51.5 romberg, 3.3.3 root, 1.9.4 rootof, 1.24.18 roots, 1.24.19 rotate, 1.37.8 round, 1.16.2 row, 1.42.14 rowAdd, 1.42.17 rowDim, 1.42.33 rowdim, 1.42.33 rowNorm, 1.45.3 rownorm, 1.45.3 rowSwap, 1.42.20 rowspace, 1.43.15 rref, 1.31.17, 1.52.3 SortA, 1.37.19 SortD, 1.37.20 scalar_product, 1.38.7 scalarProduct, 1.38.7 sec, 1.21.1 secant_solversecant_solver, 3.4.5 select, 1.37.21 semi_augment, 1.42.22 seq, 1.35.5 seq[], 1.35.1 seqplot, 2.13 series, 1.33.3 set[], 1.36.1 shift, 1.37.9 sign, 1.16.2 signature, 1.10.12 simp2, 1.8.6, 1.28.6 simplex_reduce, 1.44 simplify, 1.12.14, 1.21.5 simult, 1.52.4 sin, 1.16.2, 1.21.1 sin, 1.20.2, 1.21.23 sincos, 1.21.12 sincos, 1.21.23 sinh, 1.16.2 size, 1.37.13 sizes, 1.37.14 smod, 1.6.11 solve, 1.12.9, 1.51.6, 2.5.6 sommet, 1.15.3, 1.34.2 sort, 1.37.18 spline, 1.24.27 split, 1.12.8 sq, 1.16.2 sqrfree, 1.24.14 sqrt, 1.16.2 stddev, 1.39, 1.42.31 stddevp, 1.39 steffenson_solversteffenson_solver, 3.4.6 string, 1.21.23 sturm, 1.25.15 sturmab, 1.25.16 sturmseq, 1.25.17 subMat, 1.42.16 subs, 1.12.17 subsop, 1.37.10, 1.42.13 subst, 1.12.16 sum, 1.18.2, 1.37.29, 1.42.4 sum_riemann, 1.18.3 suppress, 1.37.5 svd, 1.48.4 sylvester, 1.25.18 symb2poly, 1.24.2 syst2mat, 1.52.1 TRUE, 1.2.1 table, 1.40 tablefunc, 1.13.1, 1.17.4 tableseq, 1.13.2 tail, 1.4.2, 1.37.6 tan, 1.16.2, 1.21.1 tan, 1.21.23 tan2cossin2, 1.21.15 tan2sincos, 1.21.13 tan2sincos2, 1.21.14 tangent, 2.5.5 tanh, 1.16.2 taylor, 1.33.2 tCollect, 1.21.4 tchebyshev1, 1.26.4 tchebyshev2, 1.26.5 tcoeff, 1.24.7 tcollect, 1.21.4 tExpand, 1.20.1 texpand, 1.20.1 tlin, 1.21.3 trace, 1.43.3 tran, 1.43.1 transpose, 1.43.1 trapeze, 2.7 trig, 1.20.2 trig2exp, 1.21.19 trigcos, 1.21.21 trigexpand, 1.21.2 trigsin, 1.21.20 trigtan, 1.21.22 trn, 1.43.7 true, 1.2.1 trunc, 1.16.2 truncate, 1.24.21 tsimplify, 1.23.9 ufactor, 4.1.5 unapply, 1.15.2 unfactored, 2.10 union, 1.36.2 unitV, 1.11.7, 1.38.2 unquote, 1.12.4 user_operator, 1.14.3 usimplify, 4.1.6 valuation, 1.24.5 vandermonde, 1.41.7 variance, 1.39, 1.42.31 vpotential, 1.50.7 white, 2.1.1 xor, 1.2.3 xstep, 2.2 yellow, 2.1.1 ystep, 2.2 zeros, 1.12.11 zeta, 1.9.10 zip, 1.37.33 zstep, 2.2

# Contents

# Chapter 1 Συναρτήσεις του σύστηματος υπολογιστικής άλγεβρας

## 1.1 Συμβολικές σταθερές : `e pi``` `άπειρο``` `i`

`e` είναι ο αριθμός exp(1);
`pi` είναι ο αριθμός π.
`άπειρο` είναι χωρίς πρόσημο ∞.
`+άπειρο` είναι +∞.
`-άπειρο` είναι −∞.
`i` είναι ο μιγαδικός αριθός i.

## 1.2 Λογικός τύπος δεδομένου - Booleans

- Λογικές τιμές : `true false`
- Έλεγχος : `==, !=, >, >=, <, =<`
- Λογικοί τελεστές : `or xor``` `και``` `not`
- Μετατροπή λογικής παράστασης σε λίστα: `exp2list`
- Αποτίμηση λογικού τυπου δεδομένων : `evalb`

## 1.3 Τελεστές bit ανά bit

- Τελεστές `bitor, bitxor, bitand`
- Απόσταση Hamming bit ανά bit : `hamdist`

## 1.4 Συμβολοσειρές

- Χαρακτήρες και συμβολοσειρές : `"`
- Πρώτος χαρακτήρας, μεσαίος και τελευταίος μιας συμβολοσειράς: `head mid tail`
- Συνένωση ακολουθίας λέξεων: `cumSum`
- Κώδικας ASCII ενός χαρακτήρα : `ord`
- Κώδικας ASCII μίας συμβολοσειράς : `asc`
- Ορισμός συμβολοσειράς από χαρακτήρες σε κώδικα ASCII : `char`
- Εύρεση ενός χαρακτήρα σε μία συμβολοσειρά: `inString`
- Αλληλουχία αντικειμένων σε συμβολοσειρά : `cat`
- Προσθήκη αντικειμένου σε μία συμβολοσειρά : `+`
- Μετασχηματισμός ακέραιου σε συμβολοσειρά: `cat +`
- Μετασχηματισμός συμβολοσειράς σε αριθμό: `expr`

## 1.5 Μετατροπή ακεραίου ως προς την βάση b : `convert`

`convert` ή `convertir` μπορούν να κάνουν διαφορετικού είδους μετατροπές ανάλογα με την επιλογή που δίνεται ως δεύτερο όρισμα.

Για να μετατρέψετε έναν ακέραιο `n` σε μία λίστα με τους συντελεστές του ως προς την βάση `b`, η επιλογή είναι `base`. Τα ορίσματά του `convert` ή `convertir` είναι ένας ακέραιος `n`, `base` και το `b`, η τιμή της βάσης.
`convert` ή `convertir` επιστρέφει την λίστα των συντελεστών του ακέραιου `n` ως προς την βάση `b`
Είσοδος :

`convert(123,base,8)`

Έξοδος :

`[3,7,1]`

Για να ελέγξετε την απάντηση, εισάγετε `expr("0173")` ή `horner(revlist([3,7,1]),8)` ή `convert([3,7,1],base,8)` οπότε η απάντηση θα είναι `123`
Είσοδος :

`convert(142,base,12)`

Έξοδος :

`[10,11]`

Για να μετατρέψετε τη λίστα των συντελεστών του ακέραιου `n` ως προς την βάση `b`, η επιλογή είναι επίσης `base`. `convert` ή `convertir` επιστρέφει τον ακέραιο `n`.
Είσοδος :

`convert([3,7,1],base,8)`

ή

`horner(revlist([3,7,1]),8)`

Έξοδος :

`123`

Είσοδος :

`convert([10,11],base,12)`

ή

`horner(revlist([10,11]),12)`

Έξοδος :

`142`

## 1.6 Ακέραιοι (και Gaussian Ακέραιοι)

Για όλες τις συναρτήσεις σε αύτο το κεφάλαιο, μπορείτε να χρησιμοποιήσετε Gaussian ακεραίους (αριθμούς της μορφής a+ib, όπου a και b ανήκουν στο ℤ).

- Παραγοντικό : `factorial`
- GCD : `gcd igcd`
- GCD : `Gcd`
- GCD λίστας ακεραίων: `lgcd`
- Ελάχιστο κοινό πολλαπλάσιο : `lcm`
- Διάσπαση σε πρώτους παράγοντες : `ifactor`
- Λίστα πρώτων παραγόντων : `ifactors`
- Πίνακας παραγόντων : `maple_ifactors`
- Διαιρέτες ενός ακεραίου : `idivis divisors`
- Ακέραιο Ευκλείδειο πηλίκο : `iquo intDiv`
- Ακέραιο Ευκλείδειο υπόλοιπο : `irem remain smod mods mod %`
- Ευκλείδειο πηλίκο και Ευκλείδειο υπόλοιπο δύο ακεραίων : `iquorem`
- Έλεγχος άρτιου ακεραίου : `even`
- Έλεγχος περιττού ακεραίου : `odd`
- Έλεγχος ψευδο-πρώτου ακεραίου: `is_pseudoprime`
- Έλεγχος πρώτου ακεραίου : `is_prime isprime
  isPrime`
- Ο μικρότερος ψευδο-πρώτος μεγαλύτερος του `n` :
  `nextprime`
- Ο μεγαλύτερος ψευδο-πρώτος μικρότερος του `n` :
  `prevprime`
- Ο `n`-οστός πρώτος αριθμός: `ithprime`
- Ταυτότητα Bezout : `iegcd igcdex`
- Επίλυση της au+bv=c στο ℤ: `iabcuv`
- Κινεζικά υπόλοιπα : `ichinrem, ichrem`
- Κινεζικά υπόλοιπα για λίστες ακεραίων : `chrem`
- Επίλυση της a2+b2=p στο ℤ : `pa2b2`
- Η συνάρτηση ϕ του Euler : `euler phi`
- Το σύμβολο του Legendre: `legendre_symbol`
- Το σύμβολο Jacobi : `jacobi_symbol`

## 1.7 Συνδυαστική ανάλυση

- Παραγοντικό : `factorial``!`
- Διωνυμικοί συντελεστές : `binomial comb nCr`
- Διατάξεις : `perm nPr`
- Τυχαίοι ακέραιοι : `rand`

## 1.8 Ρητοί αριθμοί

- Μετατροπή ενός αριθμού κινητής υποδιαστολής σε ρητό αριθμό : `exact float2rational`
- Ακέραιο και κλασματικό μέρος : `propfrac propFrac`
- Αριθμητής ενός κλάσματος μετά την απλοποίηση : `numer` `getNum`
- Παρονομαστής ενός κλάσματος μετά την απλοποίηση: `denom getDenom`
- Αριθμητής και παρονομαστής ενός κλάσματος: `f2nd
  fxnd`
- Απλοποίηση ζεύγους ακεραίων : `simp2`
- Αναπαράσταση πραγματικού αριθμού σαν συνεχές
  κλάσμα: `dfc`
- Μετασχηματισμός συνεχούς κλάσματος σε πραγματικό αριθμό : `dfc2f`
- Ο n-οστός αριθμός Bernoulli : `bernoulli`
- Προσπέλαση στις εντολές PARI/GP: `pari`

## 1.9 Πραγματικοί αριθμοί

- Αποτίμηση πραγματικού αριθμού με αριθμητική ακρίβεια
- Συνήθεις ενθηματικές συναρτήσεις πραγματικών αριθμών : `+,-,*,/,^`
- Συνήθεις προθηματικές συναρτήσεις πραγματικών αριθμών : `rdiv`
- n-οστή ρίζα : `root`
- Συνάρτηση σφάλματος : `erf`
- Συμπληρωματική συνάρτηση σφάλματος: `erfc`
- Η συνάρτηση Γ : `Gamma`
- Η συνάρτηση β : `Beta`
- Παράγωγοι της συνάρτησης διγάμμα : `Psi`
- Η συνάρτηση ζ : `Zeta`
- Οι συναρτήσεις Airy: `Airy_Ai` `και` `Airy_Bi`

## 1.10 Μεταθέσεις

Μία μετάθεση p μεγέθους n είναι μια "αμφιμονοσήμαντη και επί " απεικόνιση από το [0..n−1] στο [0..n−1] και αναπαρίσταται από την λίστα: [p(0),p(1),p(2)...p(n−1)].
Για παράδειγμα, η μετάθεση p που αναπαρίσταται από την λίστα [1,3,2,0] είναι η απεικόνιση από το [0,1,2,3] στο [0,1,2,3] που ορίζεται ως:

p(0)=1, p(1)=3, p(2)=2, p(3)=0

Ένας κύκλος c μεγέθους p αναπαρίσταται από την λίστα: [a0,...,ap−1] (0≤ ak≤ n−1) Eίναι η μετάθεση όπου

c(ai)=ai+1 for (i=0..p−2), c(ap−1)=a0, c(k)=k αλλιώς

Ένας κύκλος c αναπαρίσταται από μια λίστα και η διάσπαση ενός κύκλου αναπαρίσταται από λίστες λιστών.
Για παράδειγμα, ο κύκλος c που αναπαρίσταται από την λίστα [3,2,1] είναι η μετάθεση c ορισμένη για c(3)=2, c(2)=1, c(1)=3, c(0)=0 (δηλαδή η μετάθεση που αναπαρίσταται από την λίστα [0,3,1,2]).

- Τυχαία μετάθεση: `randperm`
- Διάσπαση μετάθεσης σε γινόμενο ξένων κύκλων:
  `permu2cycles`
- Γινόμενο ξένων κύκλων σε μετάθεση: `cycles2permu`
- Μετατροπή κύκλου σε μετάθεση : `cycle2perm`
- Μετατροπή μετάθεσης σε πίνακα: `permu2mat`
- Έλεγχος μετάθεσης: `is_permu`
- Έλεγχος κύκλου: `is_cycle`
- Γινόμενο δύο μεταθέσεων : `p1op2`
- Σύνθεση κύκλου και μετάθεσης: `c1op2`
- Σύνθεση μετάθεσης και κύκλου: `p1oc2`
- Γινόμενο δύο κύκλων: `c1oc2`
- Ίχνος (πρόσημο) μετάθεσης : `signature`
- Αντίστροφο μετάθεσης : `perminv`
- Αντίστροφο κύκλου : `cycleinv`
- Τάξη μετάθεσης : `permuorder`
- Η ομάδα που παράγεται από δύο μεταθέσεις: `groupermu`

## 1.11 Μιγαδικοί αριθμοί

Σημειώστε ότι οι μιγαδικοί αριθμοί χρησιμοποιούνται επίσης για να αναπαραστήσουν ένα σημείο στο επίπεδο ή μία 1- d γραφική παράσταση.

- Μιγαδικές συναρτήσεις : `+,-,*,/,^`
- Πραγματικό μέρος ενός μιγαδικού αριθμού : `re real`
- Φανταστικό μέρος ενός μιγαδικού αριθμού: `im imag`
- Μιγαδικός αριθμός στην μορφή `re(z)+i*im(z)` : `evalc`
- Μέτρο ενός μιγαδικού αριθμού : `abs`
- Όρισμα ενός μιγαδικού αριθμού : `arg`
- Κανονικοποιημένος μιγαδικός αριθμός: `normalize
  unitV`
- Συζυγής ενός μιγαδικού αριθμού: `conj`
- Πολλαπλασιασμός με τον συζυγή μιγαδικού:
  `mult_c_conjugate`
- Βαρύκεντρο μιγαδικών αριθμών: `barycentre`

## 1.12 Αλγεβρικές παραστάσεις

- Αποτίμηση παράστασης : `eval`
- Αποτίμηση αλγεβρικής παράστασης : `evala`
- Πρόληψη αποτίμησης : `quote hold` `’`
- Εξαναγκασμός αποτίμησης : `unquote`
- Προσεταιριστικότητα : `expand fdistrib`
- Κανονική μορφή : `canonical_form`
- Πολλαπλασιασμός επί συζυγή : `mult_conjugate`
- Διαχωρισμός μεταβλητών : `split`
- Παραγοντοποίηση : `factor`
- Παραγοντοποίηση στους μιγαδικούς : `cFactor`
- Ρίζες μιας παράστασης : `zeros`
- Μιγαδικές ρίζες μιας παράστασης : `cZeros`
- Κανονική μορφή : `normal`
- Απλοποίηση: `simplify`
- Κανονική μορφή για ρητά κλάσματα: `ratnormal`
- Αντικατάσταση μιας μεταβλητής με μια τιμή : `subst`
- Αντικατάσταση μιας μεταβλητής με μια τιμή (συμβατότητα με Maple και Mupad ) : `subs`
- Αποτίμηση αντιπαραγώγου στα όρια: `preval`
- Υποπαράσταση μιας παράστασης : `part`

## 1.13 Τιμές του un

- Πίνακας τιμών μιας ακολουθίας: `tablefunc`
- Πίνακας τιμών και διάγραμμα μιας αναδρομικής ακολουθίας : `tableseq` και `plotseq`

## 1.14 Τελεστές ή ενθηματικές συναρτήσεις

Ένας τελεστής είναι μια ενθηματική συνάρτηση.

- Συνήθεις τελεστές :`+, -, *, /, ^`
- Τελεστές του `Xcas`
- Ορισμός ενός τελεστή: `user_operator`

## 1.15 Συναρτήσεις και παραστάσεις με συμβολικές μεταβλητές

- Διαφορά ανάμεσα σε συνάρτηση και παράσταση
- Μετασχηματισμός μιας παράστασης σε συνάρτηση :
  `unapply`
- Κορυφή και φύλλα μιας παράστασης : `sommet feuille op`

## 1.16 Συναρτήσεις

- Συναρτήσεις εξαρτώμενες από τα συμφραζόμενα.
  - Οι τελεστές `+` και `-`
  - Ο τελεστής `*`
  - Ο τελεστής `/`
- Συνήθεις συναρτήσεις
- Ορισμός αλγεβρικών συναρτήσεων
  - Ορισμός συνάρτησης από το ℝp στο ℝ
  - Ορισμός συνάρτησης από το ℝp σε ℝq
  - Ορισμός οικογενειών μιας συνάρτησης απο το ℝp−1 στο ℝq χρησιμποποιώντας μια συνάρτηση από το ℝp στο ℝq
- Σύνθεση δύο συναρτήσεων: `@`
- Επαναλαμβανόμενη σύνθεση συνάρτησης: `@@`
- Ορισμός μιας συνάρτησης από το `"`ιστορικό`"` :
  `as_function_of`

## 1.17 Παραγώγιση και εφαρμογές.

- Συνάρτηση παραγώγου : `function_diff`
- Μήκος ενός τόξου : `arcLen`
- Μέγιστο και ελάχιστο μιας παράστασης: `fMax fMin`
- Πίνακας τιμών και γράφημα : `tablefunc` `plotfunc`
- Παράγωγος και μερική παράγωγος
  - Παράγωγος και μερική παράγωγος πρώτης τάξης : `diff derive deriver`
  - Παράγωγος και μερική παράγωγος n-οστής τάξης : `diff derive deriver`

## 1.18 Ολοκλήρωση

- Αντιπαράγωγος και ορισμένο ολοκλήρωμα : `integrate
  int Int`
- Διακριτή άθροιση: `sum`
- Άθροισμα Riemann : `sum_riemann`
- Ολοκλήρωση κατά μέλη : `ibpdv` και `ibpu`
  - `ibpdv`
  - `ibpu`
- Αλλαγή μεταβλητών : `subst`

## 1.19 Όρια

- Όρια : `limit`
- Ολοκλήρωμα και όριο

## 1.20 Επανεγγραφή υπερβατικών και τριγωνομετρικών παραστάσεων

- Ανάπτυγμα υπερβατικών και τριγωνομετρικών παραστάσεων : `texpand tExpand`
- Συνδυασμός όρων του ιδίου τύπου : `combine`

## 1.21 Τριγωνομετρία

- Τριγωνομετρικές συναρτήσεις
- Ανάπτυγμα τριγωνομετρικών παραστάσεων :`trigexpand`
- Γραμμικοποίηση τριγωνομετρικών παραστάσεων : `tlin`
- Συλλογή των ημιτόνων και συνημιτόνων της ίδιας γωνίας : `tcollect tCollect`
- Απλοποίηση παραστάσεων : `simplify`
- Μετασχηματισμός `arccos` σε `arcsin` : `acos2asin`
- Μετασχηματισμός `arccos` σε `arctan` : `acos2atan`
- Μετασχηματισμός `arcsin` σε `arccos` : `asin2acos`
- Μετασχηματισμός `arcsin` σε `arctan` : `asin2atan`
- Μετασχηματισμός `arctan` σε `arcsin` : `atan2asin`
- Μετασχηματισμός `arctan` σε `arccos` : `atan2acos`
- Μετασχηματισμός μιγαδικών εκθετικών σε `sin` και `cos` : `sincos exp2trig`
- Μετασχηματισμός `tan(x)` σε `sin(x)/cos(x)` :
  `tan2sincos`
- Αναγραφή της `tan(x)` ως προς `sin(2x)` και `cos(2x)` : `tan2sincos2`
- Αναγραφή της `tan(x)` ως προς `cos(2x)` και `sin(2x)` : `tan2cossin2`
- Αναγραφή των `sin, cos, tan` ως προς `tan(x/2)` :
  `halftan`
- Aναγραφή τριγωνομετρικών συναρτήσεων ως προς
  `tan(x/2)` και υπερβολικών συναρτήσεων ως προς `exp(x)`:
  `halftan_hyp2exp`
- Μετασχηματισμός αντίστροφων τριγωνομετρικών συναρτήσεων σε λογαρίθμους : `atrig2ln`
- Μετασχηματισμός τριγωνομετρικών συναρτήσεων σε μιγαδικά εκθετικά : `trig2exp`
- Απλοποίηση και αναγραφή κατά προτίμηση ως προς `sine``:` `trigsin`
- Απλοποίηση και αναγραφή κατά προτίμηση ως προς
  `cosine` : `trigcos`
- Απλοποίηση και αναγραφή κατά προτίμηση ως προς
  `tangents` : `trigtan`
- Αναγραφή παράστασης με διάφορες επιλογές : `convert convertir`

## 1.22 Μετασχηματισμός `Fourier`

- Συντελεστές `Fourier` : `fourier_an` και `fourier_bn` ή `fourier_cn`
  - `fourier_an`
  - `fourier_bn`
  - `fourier_cn`
- Διακριτός Μετασχηματισμός `Fourier```
  - Ιδιότητες του διακριτού μετασχηματισμού `Fourier`
  - Εφαρμογές
- Γρήγορος Μετασχηματισμός Fourier : `fft`
- Αντίστροφος Γρήγορος Μετασχηματισμός Fourier :`ifft`
- Μια άσκηση με `fft`

## 1.23 Εκθετικά και Λογάριθμοι

- Αναγραφή υπερβολικών συναρτήσεων ως εκθετικά :
  `hyp2exp`
- Ανάπτυγμα εκθετικών : `expexpand`
- Ανάπτυγμα λογαρίθμων : `lnexpand`
- Γραμμικοποίηση εκθετικών : `lin`
- Συλλογή λογαρίθμων : `lncollect`
- Ανάπτυγμα δυνάμεων : `powexpand`
- Αναγραφή δύναμης σε εκθετικό : `pow2exp`
- Αναγραφή του `exp(n*ln(x))` σε δύναμη : `exp2pow`
- Απλοποίηση μιγαδικών εκθετικών : `tsimplify`

## 1.24 Πολυώνυμα

Ένα πολυώνυμο μιας μεταβλητής αναπαριστάται είτε από μια συμβολική παράσταση είτε από την λίστα των συντελεστών του διατεταγμένων σε φθίνουσα τάξη των δυνάμεων (πυκνή αναπαράσταση). Στην τελευταία περίπτωση, για να αποφύγουμε τη σύγχυση με άλλου είδους λίστες

- χρησιμοιείστε ``poly1[…]`` για οριοθέτες στην είσοδο
- προσέξτε τα στη έξοδο του `Xcas`.

Σημειώστε ότι πολυώνυμα που αναπαριστώνται ως λίστες συντελεστών γράφονται πάντοτε σε φθίνουσα τάξη δυνάμεων ακόμα κι αν στις Ρυθμίσεις του `Cas` έχει τσεκαρισθεί η `"`αύξουσα δύναμη `"`.

Ένα πολυώνυμο πολλών μεταβλητών αναπαριστάται :

- είτε ως μια συμβολική παράσταση
- είτε ως μια πυκνή αναδρομική μονοδιάστατη αναπαράσταση όπως παραπάνω
- είτε ως ένα άθροισμα μονωνύμων με μη μηδενικούς συντελεστές (κατανεμημένη αραιή αναπαράσταση).
  Ένα μονώνυμο με πολλές μεταβλητές αναπαριστάται από έναν συντελεστή και μια λίστα ακεραίων (που αντιστοιχούν στις δυνάμεις της λίστας μεταβλητών). Οι οριοθέτες για τα μονώνυμα είναι `%%%{` και `%%%}`, για παράδειγμα το 3x2y αναπαριστάται ως `%%%{3,[2,1]%%%}` κατ’ αντιστοιχία με τη λίστα μεταβλητών `[x,y]`).

- Μετατροπή σε συμβολικό πολυώνυμο :`r2e poly2symb`
- Μετατροπή από συμβολικό πολυώνυμο :`e2r symb2poly`
- Συντελεστές πολυωνύμου: `coeff coeffs`
- Βαθμός πολυωνύμου : `degree`
- Μικρότερος βαθμός πολυωνύμου :`valuation ldegree`
- Κύριος συντελεστής πολυωνύμου : `lcoeff`
- Τελευταίος συντελεστής πολυωνύμου : `tcoeff`
- Αποτίμηση πολυωνύμου : `peval polyEval`
- Παραγοντοποίηση του xn σε ένα πολυώνυμο :
  `factor_xn`
- Μέγιστος κοινός διαιρέτης (`GCD` ή ΜΚΔ) των συντελεστών ενός πολυωνύμου : `content`
- Αρχικό μέρος ενός πολυωνύμου : `primpart`
- Παραγοντοποίηση : `collect`
- Παραγοντοποίηση : `factor factoriser`
- Παραγοντοποίηση `Square-free``:` `sqrfree`
- Λίστα παραγόντων : `factors`
- Αποτίμηση πολυωνύμου : `horner`
- Αναγραφή ως προς δυνάμεις του `(x-a)` : `ptayl`
- Υπολογισμός με την ακριβή ρίζα πολυωνύμου :`rootof`
- Ακριβείς ρίζες πολυωνύμου : `roots`
- Συντελεστές πολυωνύμου που ορίζεται από τις ρίζες του : `pcoeff pcoef`
- Αποκοπή βαθμού n : `truncate`
- Μετατροπή αναπτύγματος σε σειρά, σε πολυώνυμο :
  `convert convertir`
- Τυχαίο πολυώνυμο : `randpoly randPoly`
- Αλλαγή διάταξης των μεταβλητών : `reorder`
- Τυχαία λίστα : `ranm`
- Πολυώνυμο `Lagrange``:` `lagrange interp`
- Φυσικές (συναρτήσεις) `splines``:` `spline`
  - Ορισμός
  - Θεώρημα
  - Παρεμβολή με συναρτήσεις `spline`

## 1.25 Aριθμητική πολυωνύμων

Τα πολυώνυμα αντιπροσωπεύονται από παραστάσεις ή μια λίστα συντελεστών σε φθίνουσα τάξη δύναμης. Στην 1η περίπτωση, για εντολές που απαιτείται μια κύρια μεταβλητή (όπως στους υπολογισμούς για τον επεκταμένο Ευκλείδειο αλγόριθμο), η μεταβλητή που χρησιμοποιείται από προεπιλογή είναι x αν δεν ορίζεται αλλιώς. Για συντελεστές στον δακτύλιο ℤ/nℤ, χρησιμοποιείστε `% n` για κάθε συντελεστή `n` της λίστας ή εφαρμόστε το στην παράσταση που ορίζει το πολυώνυμο.

- Διαιρέτες πολυωνύμου : `divis`
- Ευκλείδειο πηλίκο : `quo`
- Ευκλίδειο πηλίκο : `Quo`
- Ευκλίδειο υπόλοιπο : `rem`
- Ευκλίδειο υπόλοιπο: `Rem`
- Πηλίκο και υπόλοιπο : `quorem divide`
- Μέγιστος Κοινός Διαιρέτης (ΜΚΔ ή `GCD`) δύο πολυωνύμων με τον Ευκλείδειο αλγόριθμο: `gcd`
- Μέγιστος Κοινός Διαιρέτης (ΜΚΔ ή `GCD`) δύο πολυωνύμων με τον Ευκλείδειο αλγόριθμο : `Gcd`
- Επιλογή του αλγορίθμου για την εύρεση του ΜΚΔ (`GCD`) δύο πολυωνύμων : `ezgcd heugcd modgcd psrgcd`
- Ελάχιστο Κοινό Πολλαπλάσιο (ΕΚΠ ή `LCM`) δύο πολυωνύμων : `lcm`
- Ταυτότητα `Bézout` : `egcd gcdex`
- Επίλυση της `au+bv=c` στα πολυώνυμα: `abcuv`
- Κινέζικα υπόλοιπα : `chinrem`
- Κυκλοτομικά πολυώνυμα : `cyclotomic`
- Ακολουθίες `Sturm` και ο αριθμός μεταβολών προσήμου του P στο ]a; b] : `sturm`
- Αριθμός ριζών στο ]a, b] : `sturmab`
- Ακολουθίες `Sturm` : `sturmseq`
- Πίνακας `Sylvester` δύο πολυωνύμων : `sylvester`
- Απαλοίφουσα δύο πολυωνύμων : `resultant`

## 1.26 Ορθογώνια πολυώνυμα

- Πολυώνυμα `Legendre` : `legendre`
- Πολυώνυμα `Hermite` : `hermite`
- Πολυώνυμα `Laguerre` : `laguerre`
- Πολυώνυμα `Tchebychev` πρώτου τύπου:`tchebyshev1`
- Πολυώνυμα `Tchebychev` δεύτερου τύπου:`tchebyshev2`

## 1.27 Βάση `Gröbner` και αναγωγή `Gröbner`

- Βάση `Gröbner``:` `gbasis`
- Αναγωγή `Gröbner` : `greduce`
- Δημιουργία πολυωνύμου από την αποτίμησή του :
  `genpoly`

## 1.28 Ρητά κλάσματα

- Αριθμητής : `getNum`
- Αριθμητής μετά από απλοποίηση : `numer`
- Παρονομαστής : `getDenom`
- Παρονομαστής μετά από απλοποίηση : `denom`
- Αριθητής και παρονομαστής : `f2nd fxnd`
- Απλοποίηση : `simp2`
- Κοινός παρονομαστής : `comDenom`
- Ακέραιο και κλασματικό μέρος : `propfrac`
- Μερικό κλασματικό ανάπτυγμα : `partfrac`

## 1.29 Ακριβείς ρίζες πολυωνύμου

- Ακριβή όρια για μιγαδικές ρίζες πολυωνύμου :
  `complexroot`
- Ακριβή όρια για πραγματικές ρίζες πολυωνύμου :
  `realroot`
- Ακριβείς τιμές των ρητών ριζών ενός πολυωνύμου :
  `rationalroot`
- Ακριβείς τιμές ρητών μιγαδικών ριζών πολυωνύμου :
  `crationalroot`

## 1.30 Ακριβείς ρίζες και πόλοι

- Ρίζες και πόλοι μιας ρητής συνάρτησης : `froot`
- Ρητή συνάρτηση που δίνεται από ρίζες και πόλους :
  `fcoeff`

## 1.31 Υπολογισμοί στο ℤ/pℤ ή στο ℤ/pℤ[x]

Ο τρόπος με τον οποίο κάνουμε υπολογισμούς στο ℤ/pℤ ή στο ℤ/pℤ[x] εξαρτάται από τον τρόπο λειτουργίας του συστήματος, ο οποίος καθορίζει το συντακτικό της γλώσσας :

- Στον τρόπο λειτουργίας `Xcas`, ένα αντικείμενο n στο ℤ/pℤ γράφεται n % p. Μερικά παραδείγματα εισόδου για :
  - έναν ακέραιο `n` στο ℤ/13ℤ
    `n:=12%13`.
  - ένα διάνυσμα `V` στο ℤ/13ℤ
    `V:=[1,2,3]%13` ή `V:=[1%13,2%13,3%13]`.
  - έναν πίνακα `A` στο ℤ/13ℤ
    `A:=[[1,2,3],[2,3,4]]%13` ή
    `A:=[[1%13,2%13,3%13],[[2%13,3%13,4%13]]`.
  - ένα πολυώνυμο `A` στο ℤ/13ℤ[x] σε συμβολική αναπαράσταση
    `A:=(2*x```^```2+3*x-1)%13` ή
    `A:=2%13*x```^```2+3%13*x-1%13`.
  - ένα πολυώνυμο `A` στο ℤ/13ℤ[x] σε αναπαράσταση λίστας
    `A:=poly1[1,2,3]%13` ή `A:=poly1[1%13,2%13,3%13]`.
  Για να ανακτύσουμε ένα αντικείμενο `obj` με ακέραιους συντελεστές αντί για συντελεστές στο ℤ/pℤ ή στο ℤ/pℤ[x], εισάγουμε `obj % 0`. Για παράδειγμα, αν εισάγουμε `obj := 4 % 7` και μετά `obj % 0`, τότε η έξοδος θα είναι `-3`.
- Στον τρόπο λειτουργίας `Maple`, οι ακέραιοι στο ℤ/pℤ αναπαρίστανται όπως οι συνηθισμένοι ακέραιοι. Για να αποφύγουμε την σύγχυση με τις κανονικές εντολές, οι εντολές για αριθμητική υπολοίπων γράφονται με κεφαλαίο γράμμα (αδρανής μορφή) και ακολουθούνται από τη εντολή `mod` (δείτε επίσης το επόμενο τμήμα).

Σχόλιο

- Για μερικές εντολές στο ℤ/pℤ ή στο ℤ/pℤ[x], `p` πρέπει να είναι ένας πρώτος ακέραιος.
- Η αναπαράσταση είναι η συμμετρική αναπαράσταση :
  Το `11%13` επιστρέφει `-2%13`.

- Ανάπτυγμα και αναγωγή : `normal`
- Πρόσθεση στο ℤ/pℤ ή στο ℤ/pℤ[x] : `+`
- Αφαίρεση στο ℤ/pℤ ή στο ℤ/pℤ[x] : `-`
- Πολλαπλασιασμός στο ℤ/pℤ ή στο ℤ/pℤ[x] : `*`
- Ευκλείδειο πηλίκο : `quo`
- Ευκλείδειο υπόλοιπο : `rem`
- Ευκλείδειο πηλίκο και Ευκλείδειο υπόλοιπο : `quorem`
- Διαίρεση στο ℤ/pℤ ή στο ℤ/pℤ[x] : `/`
- Ύψωση σε δύναμη στο ℤ/pℤ και στο ℤ/pℤ[x] : `^`
- Υπολογισμός an mod p : `powmod powermod`
- Υπολογισμός αντιστρόφου στο ℤ/pℤ : `inv inverse` `ή` `/`
- Αναδημιουργία κλάσματος από την τιμή του `modulo` p : `fracmod`
- Μέγιστος κοινός διαιρέτης (`GCD`) στο ℤ/pℤ[x] : `gcd`
- Παραγοντοποίηση στο ℤ/pℤ[x] : `factor factoriser`
- Ορίζουσα πίνακα στο ℤ/pℤ : `det`
- Αντίστροφος πίνακα με συντελεστές στο ℤ/pℤ : `inv inverse`
- Αναγωγή γραμμών σε κλιμακωτή μορφή στο ℤ/pℤ : `rref`
- Κατασκευή σώματος `Galois``:` `GF`
- Παραγοντοποίηση πολυωνύμου με συντελεστές σε σώμα `Galois` : `factor`

## 1.32 Υπολογισμοί στο ℤ/pℤ[x] χρησιμοποιώντας σύνταξη του `Maple`

- Ευκλείδειο πηλίκο : `Quo`
- Ευκλείδειο υπόλοιπο : `Rem`
- Μέγιστος κοινός διαιρέτης (ΜΚΔ ή `GCD`) στο ℤ/pℤ[x] : `Gcd`
- Παραγοντοποίηση στο ℤ/pℤ[x] : `Factor`
- Ορίζουσα πίνακα με συντελεστές στο ℤ/pℤ : `Det`
- Αντίστροφος πίνακα στο ℤ/pℤ : `Inverse`
- Αναγωγή γραμμών σε κλιμακωτή μορφή στο ℤ/pℤ : `Rref`

## 1.33 Αναπτύγματα Taylor και ασυμπτωτικά αναπτύγματα

- Διάιρεση με αυξανόμενες δυνάμεις : `divpc`
- Ανάπτυγμα `Taylor``:` `taylor`
- Ανάπτυγμα σε σειρά : `series`
- Ολοκληρωτικό υπόλοιπο μιας παράστασης σε ένα σημείο : `residue`
- Ανάπτυγμα `Padé``:` `pade`

## 1.34 Διαστήματα

- Ορισμός ενός διαστήματος : `a1..a2`
- Άκρα ενός διαστήματος : `left right`
- Κέντρο διαστήματος : `interval2center`
- Διαστήματα που ορίζονται από το κέντρο τους :
  `center2interval`

## 1.35 Ακολουθία

- Ορισμός : `seq[] ()`
- Συνένωση δύο ακολουθιών : `,`
- Επιλογή στοιχείου μιας ακολουθίας : `[]`
- Υποακολουθία μιας ακολουθίας : `[]`
- Δημιουργία μιας ακολουθίας ή μιας λίστας : `seq $`
- Μετασχηματισμός ακολουθίας σε λίστα : `[] nop`
- Ο τελεστής `+` σε ακολουθίες

## 1.36 `Σύνολα`

- Ορισμός: `set[]`
- Ένωση δύο συνόλων ή δύο λιστών : `union`
- Τομή δύο συνόλων ή δύο λιστών : `intersect`
- Διαφορά δύο συνόλων ή δύο λιστών: `minus`

## 1.37 Λίστες και διανύσματα

- Ορισμός
- Επιλογή στοιχείου ή υπολίστας από μια λίστα : `[]`
  - Επιλογή στοιχείου
  - Εξαγωγή υπολίστας
- Εξαγωγή υπολίστας : `mid`
- Επιλογή του πρώτου στοιχείου μιας λίστας : `head`
- Απαλοιφή στοιχείου από μια λίστα : `suppress`
- Απαλοιφή του πρώτου στοιχείου από μια λίστα : `tail`
- Αντιστροφή της διάταξης σε μια λίστα : `revlist`
- Περιστροφή λίστας αρχίζοντας από το n-οστό στοιχείο της : `rotate`
- Μετατόπιση (ολίσθηση) λίστας αρχίζοντας από το n-οστό στοιχείο της : `shift`
- Τροποποίηση στοιχείου μιας λίστας : `subsop`
- Μετασχηματισμός λίστας σε ακολουθία : `op makesuite`
- Μετασχηματισμός ακολουθίας σε λίστα : `makevector []`
- Μήκος λίστας : `size nops length`
- Μήκοι μιας λίστας λιστών : `sizes`
- Αλληλουχία δύο λιστών ή μιας λίστας και ενός στοιχείου : `concat augment`
- Επισύναψη στοιχείου στο τέλος μια λίστας : `append`
- Πρόταξη στοιχείου στην αρχή της λίστας : `prepend`
- Ταξινόμηση: `sort`
- Ταξινόμηση λίστας σε ανιούσα τάξη : `SortA`
- Ταξινόμηση λίστας σε κατιούσα τάξη : `SortD`
- Επιλογή στοιχείων μιας λίστας : `select`
- Απαλοιφή στοιχείων από μια λίστα: `remove`
- Έλεγχος αν μια τιμή είναι μέσα σε μια λίστα: `member`
- Έλεγχος αν μια τιμή είναι μέσα σε μια λίστα :`contains`
- Άθροισμα στοιχείων λίστας (ή πίνακα) μετασχηματισμένων από μια συνάρτηση: `count`
- Αριθμός στοιχείων ίσων με μια δεδομένη τιμή :`count_eq`
- Αριθμός στοιχείων μικρότερων μιας δεδομένης τιμής : `count_inf`
- Αριθμός στοιχείων μεγαλύτερων μιας δεδομένης τιμής : `count_sup`
- Άθροισμα στοιχείων λίστας : `sum add`
- Συσσωρευτικό άθροισμα στοιχείων μιας λίστας : `cumSum`
- Γινόμενο : `product mul`
  - Γινόμενο τιμών μιας παράστασης : `product`
  - Γινόμενο στοιχείων μιας λίστας : `product`
- Εφαρμογή μιας μονομετaβλητής συνάρτησης στα στοιχεία μιας λίστας : `map apply of`
- Εφαρμογή μιας διμεταβλητής συνάρτησης στα στοιχεία δύο λιστών : `zip`
- Δημιουργία λίστας με μηδενικά : `newList`
- Δημιουργία λίστας με συνάρτηση : `makelist`
- Δημιουργία τυχαίου διανύσματος ή λίστας : `randvector`
- Λίστα διαφορών διαδοχικών όρων : `deltalist`
- Δημιουργία πίνακα από λίστα : `list2mat`
- Δημιουργία λίστας από πίνακα : `mat2list`

## 1.38 Συναρτήσεις για διανύσματα

- Νόρμες ενός διανύσματος : `maxnorm l1norm l2norm norm`
- Κανονικοποίηση διανύσματος : `normalize unitV`
- Όρος προς όρο άθροισμα δύο λιστών : `+ .+`
- Όρος προς όρο διαφορά δύο λιστών : `- .-`
- Όρος προς όρο γινόμενο δύο λιστών : `.*`
- Όρος προς όρο πηλίκο δύο λιστών : `./`
- Εσωτερικό γινόμενο:`scalar_product * dotprod dot dotP scalar_Product`
- Εξωτερικό γινόμενο : `cross crossP crossproduct`

## 1.39 Στατιστικές συναρτήσεις : `mean, variance, stddev,
stddevp, median, quantile, quartiles, boxwhisker`

Οι συναρτήσεις που γράφονται εδώ μπορεί να χρησιμοποιηθούν εάν η στατιστική σειρά περιέχεται σε μία λίστα. Δείτε επίσης το τμήμα 1.42.31 για πίνακες και το κεφάλαιο ?? για σταθμισμένες λίστες.

- `mean` υπολογίζει τον αριθμητικό μέσο μιας λίστας
  Είσοδος :
  `mean([3,4,2])`
  Έξοδος :
  `3`
  Είσοδος:
  `mean([1,0,1])`
  Έξοδος
  `2/3`
- `stddev` υπολογίζει την τυπική απόκλιση ενός πληθυσμού, εάν το όρισμα είναι ο πληθυσμός
  Είσοδος :
  `stddev([3,4,2])`
  Έξοδος :
  `sqrt(2/3)`
- `stddevp` υπολογίζει μια αμερόληπτη εκτίμηση της τυπικής απόκλισης ενός πληθυσμού , εάν το όρισμα είναι ένα δείγμα. Ισχύει η ακόλουθη σχέση:
  `stddevp(l)```^```2=size(l)*stddev(l)```^```2/(size(l)-1)`.
  Είσοδος :
  `stddevp([3,4,2])`
  Έξοδος :
  `1`
- `variance` υπολογίζει την διακύμανση (διασπορά) μιας λίστας, και είναι το τετράγωνο της `stddev`
  Είσοδος :
  `variance([3,4,2])`
  Έξοδος:
  `2/3`
- `median` υπολογίζει την διάμεση τιμή μιας λίστας.
  Είσοδος :
  `median([0,1,3,4,2,5,6])`
  Έξοδος :
  `3.0`
- `quantile` υπολογίζει τα δεκατημόρια μιας λίστας που δίνεται σαν πρώτο όρισμα, όπου το δεκατημόριο είναι το δεύτερο όρισμα.
  Είσοδος :
  `quantile([0,1,3,4,2,5,6],0.25)`
  Έξοδος το πρώτο τεταρτημόριο :
  `[1.0]`
  Είσοδος :
  `quantile([0,1,3,4,2,5,6],0.5)`
  Έξοδος η διάμεση τιμή:
  `[3.0]`
  Είσοδος :
  `quantile([0,1,3,4,2,5,6],0.75)`
  Έξοδος το τρίτο τεταρτημόριο :
  `[4.0]`
- `quartiles` υπολογίζει το ελάχιστο, το 1ο τεταρτημόριο, την διάμεση τιμή, το 3ο τεταρτημόριο και το μέγιστο μιας λίστας.
  Είσοδος :
  `quartiles([0,1,3,4,2,5,6])`
  Έξοδος :
  `[[0.0],[1.0],[3.0],[4.0],[6.0]]`
- `boxwhisker` σχεδιάζει το θηκόγραμμα μιας σταστικής σειράς που είναι αποθηκευμένη σε μια λίστα.
  Είσοδος :
  `boxwhisker([0,1,3,4,2,5,6])`
  Έξοδος
  `το θηκόγραμμα αυτής της λίστας`

Παράδειγμα
Ορίστε τη λίστα `A` ως εξής:

`A:=[0,1,2,3,4,5,6,7,8,9,10,11]`

Έξοδοι :

1. `11/2` για `mean(A)`
2. `sqrt(143/12)` για `stddev(A)`
3. `0` για `min(A)`
4. `[1.0]` για `quantile(A,0.1)`
5. `[2.0]` για `quantile(A,0.25)`
6. `[5.0]` για `median(A)` ή για `quantile(A,0.5)`
7. `[8.0]` για `quantile(A,0.75)`
8. `[9.0]` για `quantile(A,0.9)`
9. `11` για `max(A)`
10. `[[0.0],[2.0],[5.0],[8.0],[11.0]]` για `quartiles(A)`

## 1.40 Πίνακας με συμβολοσειρά για δείκτη: `table`

Ένας πίνακας είναι μία απεικόνιση που χρησιμοποιείται για να αποθηκεύσουμε πληροφορίες που σχετίζονται με (αντιστοιχούν σε) δείκτες οι οποίοι εκτός από ακεραίους μπορεί να είναι συμβολοσειρές ή ακολουθίες. Ένας πίνακας μπορεί για παράδειγμα να χρησιμοποιηθεί για να αποθηκεύσουμε τηλεφωνικούς αριθμούς τους οποίους βρίσκουμε με την βοήθεια ονομάτων (που παίζουν τον ρόλο των δεικτών).
Στο `Xcas`, οι δείκτες ενός πίνακα μπορεί να είναι κάθε είδους αντικείμενα του `Xcas`. Πρόσβαση γίνεται με έναν δυαδικό αλγόριθμο αναζήτησης, όπου η συνάρτηση διάταξης πρώτα ταξινομεί με βάση τον τύπο ( `type`) και μετά χρησιμοποιεί μια διάταξη για κάθε τύπο (π.χ. < για αριθμητικούς τύπους, λεξικογραφική διάταξη για συμβολοσειρές, κτλ.)
`table` παίρνει σαν όρισμα μια λίστα (ή μια ακολουθία) από ισότητες όνομα_δείκτη = τιμή_στοιχείου ( `index_name=element_value`).
`table` επιστρέφει αυτόν τον πίνακα.
Είσοδος :

`T:=table(3=-10,"a"=10,"b"=20,"c"=30,"d"=40)`

Είσοδος :

`T["b"]`

Έξοδος :

`20`

Είσοδος :

`T[3]`

Έξοδος :

`-10`

Σχόλιο
Εάν κάνετε την ανάθεση `T[n]:= ...` όπου `T` είναι όνομα μεταβλητής και `n` ακέραιος ισχύουν τα ακόλουθα :

- εάν το όνομα μεταβλητής έχει ανατεθεί σε μια λίστα ή μια ακολουθία, τότε το n-στό στοιχείο της `T` τροποποιείται,
- εάν το όνομα μεταβλητής δεν έχει ανατεθεί πουθενά, δημιουργείται ένας πίνακας `T` με μια καταχώρηση (που αντιστοιχεί στον δείκτη n). Σημειώσατε ότι μετά την ανάθεση το `T` δεν είναι λίστα, παρά το γεγονός ότι το n ήταν ένας ακέραιος.

## 1.41 Συνήθεις πίνακες

Ένας πίνακας αναπαρίσταται από μια λίστα από λίστες, που έχουν όλες το ίδιο μέγεθος. Στις απαντήσεις του `Xcas`, οι οριοθέτες των πινάκων είναι παχειές αγκύλες []. Για παράδειγμα, [1,2,3] είναι ο πίνακας [[1,2,3]] με μόνο μια γραμμή, ενώ [1,2,3] (με κανονικές αγκύλες) είναι η λίστα [1,2,3].
Σε αυτό το εγχειρίδιο, ο συμβολισμός εισόδου στο `Xcas` (δηλαδή [[1,2,3]]) θα χρησιμοποιηθεί τόσο για την είσοδο όσο και για την έξοδο.

- Ταυτοτικός πίνακας : `idn identity`
- Μηδενικός πίνακας : `newMat matrix`
- Τυχαίος πίνακας : `ranm randMat randmatrix`
- Διαγώνιος ενός πίνακα ή πίνακας με δεδομένη διαγώνιο : `BlockDiagonal diag`
- Mplok (ή υποπίνακας) `Jordan` : `JordanBlock`
- Πίνακας `Hilbert` : `hilbert`
- Πίνακας `Vandermonde``:` `vandermonde`

## 1.42 Αριθητική πινάκων

- Αποτίμηση πίνακα : `evalm`
- Πρόσθεση και αφαίρεση δύο πινάκων : `+ - .+ .-`
- Πολλαπλασιασμός δύο πινάκων : `* &*`
- Πρόσθεση στοιχείων μιας στήλης πίνακα : `sum`
- Συσσωρευτικό άθροισμα στοιχείων κάθε στήλης πίνακα : `cumSum`
- Πολλαπλασιασμός στοιχείων κάθε στήλης πίνακα :
  `product`
- Δύναμη πίνακα : ^ &^
- Γινόμενο `Hadamard``:` `hadamard product`
- Γινόμενο `Hadamard` (ενθηματική μορφή): `.*`
- Διαίρεση `Hadamard` (ενθηματική μορφή): `./`
- Δύναμη `Hadamard` (ενθηματική μορφή): `.^`
- Επιλογή στοιχείου(-ων) πίνακα : `[] at`
- Τροποποίηση στοιχείου ή γραμμής πίνακα: `subsop`
- Επιλογή γραμμών ή στηλών πίνακα (συμβατότητα με το `Maple`) : `row col`
- Διαγραφή γραμμών ή στηλών πίνακα :`delrows
  delcols`
- Επιλογή υποπίνακα από πίνακα (συμβατότητα με `TI`) : `subMat`
- Πρόσθεση γραμμής σε μια άλλη γραμμή : `rowAdd`
- Πολλαπλασιασμός γραμμής με μια παράσταση: `mRow`
- Πρόσθεση σε μια γραμμή του πολλαπλάσιου, επί k, μιας άλλης γραμμής : `mRowAdd`
- Ανταλλαγή δύο γραμμών : `rowSwap`
- Δημιουργία πίνακα από λίστα πινάκων : `blockmatrix`
- Δημιουργία πίνακα από δύο πίνακες : `semi_augment`
- Δημιουργία πίνακα από δύο πίνακες :`augment concat`
- Δημιουργία πίνακα με συνάρτηση : `makemat`
- Ορισμός πίνακα : `matrix`
- Επισύναψη στήλης στο τέλος ενός πίνακα : `border`
- Καταμέτρηση των στοιχείων ενός πίνακα που ικανοποιούν μια συγκεκριμένη ιδιότητα : `count`
- Καταμέτρηση των στοιχείων ενός πίνακα που είναι ίσα με μια δοθείσα τιμή : `count_eq`
- Καταμέτρηση των στοιχείων ενός πίνακα που είναι μικρότερα μιας δοθείσας τιμής : `count_inf`
- Καταμέτρηση των στοιχείων ενός πίνακα που είναι μεγαλύτερa μιας δοθείσας τιμής : `count_sup`
- Στατιστικές συναρτήσεις που δρουν σε στήλες πινάκων : `mean`, `stddev`, `variance`, `median`, `quantile`, `quartiles`, `boxwhisker`
- Διάσταση πίνακα : `dim`
- Αριθμός γραμμών : `rowdim rowDim nrows`
- Αριθμός στηλών : `coldim colDim ncols`

## 1.43 Γραμμική Άλεβρα

- Αναστροφή πίνακα : `tran transpose`
- Αντίστροφος πίνακα : `inv /`
- Ίχνος πίνακα : `trace`
- Ορίζουσα πίνακα : `det`
- Ορίζουσα αραιού πίνακα : `det_minor`
- Τάξη πίνακα : `rank`
- Αναστροφοσυζυγής πίνακα : `trn`
- Ισοδύναμος πίνακας : `changebase`
- Βάση γραμμικού υποχώρου : `basis`
- Βάση της τομής δύο υποχώρων : `ibasis`
- Εικόνα γραμμικού μετασχηματισμού : `image`
- Πυρήνας (ή Μηδενόχωρος) γραμμικού μετασχηματισμού : `kernel nullspace ker`
- Πυρήνας (ή Μηδενόχωρος) γραμμικού μετασχηματισμού : `Nullspace`
- Υπόχωρος που παράγεται από τις στήλες ενός πίνακα : `colspace`
- Υπόχωρος που παράγεται από τις γραμμές ενός πίνακα : `rowspace`

## 1.44 Γραμμικός προγραματισμός

Τα προβλήματα του Γραμμικά Προγραμματισμού είναι προβλήματα μεγιστοποίησης μιας γραμμικής συνάρτησης κάτω από περιορισμούς που εκφράζονται με γραμμικές ισότητες ή ανισότητες. Η πιο απλή περίπτωση μπορεί να επιλυθεί άμεσα από τον αποκαλούμενο αλγόριθμο `simplex`. Οι περισσότερες περιπτώσεις απαιτούν την επίλυση ενός βοηθητικού προβλήματος γραμμικού προγραμματισμού για την εύρεση μια αρχικής κορυφής για τον αλγόριθμο `simplex`.

- Αλγόριθμος `Simplex` : `simplex_reduce`

## 1.45 Διάφορες νόρμες πινάκων

- Νόρμα l2 πινάκων : `nomm l2norm`
- Νόρμα l∞ πινάκων : `maxnorm`
- Νόρμα γραμμής πινάκων : `rownorm rowNorm`
- Νόρμα στήλης πινάκων : `colnorm colNorm`

## 1.46 Αναγωγή πίνακα

- Ιδιοτιμές : `eigenvals`
- Ιδιοτιμές : `egvl eigenvalues eigVl`
- Ιδιοδιανύσματα : `egv eigenvectors eigenvects
  eigVc`
- Ρητός πίνακας `Jordan``:` `rat_jordan`
- Κανονική μορφή `Jordan``:` `jordan`
- Χαρακτηριστικό πολυώνυμο : `charpoly`
- Χαρακτηριστικό πολυώνυμο με την χρήση του αλγορίθμου `Hessenberg``:` `pcar_hessenberg`
- Ελάχιστο πολυώνυμο : `pmin`
- Προσαρτημένος πίνακας : `adjoint_matrix`
- Συνοδεύων πίνακας πολυωνύμου : `companion`
- Αναγωγή σε πίνακα `Hessenberg` : `hessenberg`
- Ερμιτιανή κανονική μορφή : `ihermite`
- Κανονική μορφή `Smith``:` `ismith`

## 1.47 Ισομετρίες

- Αναγνώριση ισομετρίας : `isom`
- Εύρεση του πίνακα ισομετρίας : `mkisom`

## 1.48 Παραγοντοποιήσεις πινάκων

Σημειώστε ότι οι περισσότεροι αλγόριθμοι παραγοντοποίησης πινάκων υλοποιούνται αριθμητικά, και ότι μόνο λίγοι απ’ αυτούς θα δουλέψουν συμβολικά.

- Παραγοντοποίηση `Cholesky` : `cholesky`
- Παραγοντοποίηση `QR` : `qr`
- Παραγοντοποίηση `LU` : `lu`
- Παραγοντοποίηση `svd``:` `svd`
- Βραχεία (σχεδόν ορθόγωνη) βάση πλέγματος : `lll`

## 1.49 Τετραγωνικές μορφές

- Πίνακας μιας τετραγωνικής μορφής : `q2a`
- Μετατροπή πίνακα σε τετραγωνική μορφή : `a2q`
- Αναγωγή μιας τετραγωνικής μορφής : `gauss`
- Ορθοκανονικοποίηση `Gramschmidt``:` `gramschmidt`
- Γράφος μιας κωνικής καμπύλης : `conic`
- Γράφος μιας δευτεροβάθμιας επιφάνειας : `quadric`

## 1.50 Πολυμεταβλητός Λογισμός

- Ανάδελτα (`gradient``) :` `derive deriver diff
  grad`
- Λαπλασιανή : `laplacian`
- Πίνακας του `Hesse` : `hessian`
- Απόκλιση : `divergence`
- Στροβιλισμός : `curl`
- Δυναμικό : `potential`
- Συντηρητικό πεδίο ροής : `vpotential`

## 1.51 Εξισώσεις

- Ορισμός μιας εξίσωσης : `equal`
- Μετασχηματισμός εξίσωσης σε διαφορά :
  `equal2diff`
- Μετασχηματισμός εξίσωσης σε λίστα :
  `equal2list`
- Το αριστερό μέλος μιας εξίσωσης : `left gauche lhs`
- Το δεξί μέλος μιας εξίσωσης : `right droit rhs`
- Επίλυση εξισώσεων: `solve`
- Επίλυση εξισώσεων στο ℂ : `cSolve`

## 1.52 Γραμμικά συστήματα

Σε αυτή την ενότητα, αποκαλούμε `"`επαυξημένο πίνακα `"` του συστήματος A · X
=B (ή πίνακα που `"`αντιπροσωπεύει `"` το σύστημα A · X=B), τον πίνακας που παίρνουμε προσκολλώντας το στηλο-διάνυσμα B ή −B στα δεξιά του πίνακα A, όπως με την εντολή `border(A,tran(B))`.

- Πίνακας συστήματος: `syst2mat`
- Αναγωγή `Gauss` : `ref`
- Αναγωγή `Gauss-Jordan` : `rref gaussjord`
- Επίλυση συστημάτος (-των) `A*X=B` : `simult`
- Βήμα-βήμα αναγωγή `Gauss-Jordan` : `pivot`
- Επίλυση γραμμικού συστήματος : `linsolve`
- Εύρεση γραμμικών αναδρομών : `reverse_rsolve`

## 1.53 Διαφορικές εξιώσεις

Η ενότητα αυτή περιορίζεται στις συμβολικές (ή ακριβείς) λύσεις των διαφορικών εξισώσεων. Για αριθμητικές λύσεις διαφορικών εξισώσεων, δείτε την `odesolve`. Για γραφική αναπαράσταση των λύσεων των διαφορικών εξισώσεων, δείτε `plotfield`, `plotode` και `interactive_plotode`.

- Επίλυση διαφορικών εξισώσεων : `desolve deSolve
  dsolve`
- Μετασχηματισμός `Laplace` και αντίστροφος μετασχηματισμός `Laplace` : `laplace ilaplace`

## 1.54 Άλλες συναρτήσεις

- Αντικατάσταση μικρών τιμών με 0 : `epsilon2zero`
- Λίστα μεταβλητών : `lname indets`
- Λίστα μεταβλητών και παραστάσεων : `lvar`
- Λίστα μεταβλητών αλγεβρικών παραστάσεων :
  `algvar`
- Έλεγχος για το αν μια μεταβλητή είναι σε μία
  παράσταση : `has`
- Αριθμητική αποτίμηση : `evalf`
- Ρητή προσέγγιση : `float2rational exact`

# Chapter 2 Γράφοι

Οι περισσότερες εντολές γράφων παίρνουν παραστάσεις σαν ορίσματα. Λίγες εξαιρέσεις (κυρίως εντολές συμβατότητας με το `maple`) επίσης δέχονται συναρτήσεις. Μερικά προαιρετικά ορίσματα, όπως `χρώμα, πάχος γραμμής`, μπορούν να χησιμοποιηθούν σαν προαιρετικά ορίσματα σε όλες τις γραφικές εντολές. Περιγράφονται παρακάτω.

## 2.1 Χαρακτηριστικά γράφων και γεωμετρικών αντικειμένων

Υπάρχουν δύο είδη χαρακτηριστικών: καθολικά χαρακτηριστικά ενός γραφικού περιβάλλοντος και ατομικά χαρακτηριστικά.

- Ατομικά χαρακτηριστικά
- Καθολικά χαρακτηριστικά

## 2.2 Γράφος μιας συνάρτησης : `plotfunc
funcplot DrawFunc Graph`

- Διδιάστατος γράφος
- Τρισδιάστατος γράφος
- Τρισδιάστατος γράφος με χρώματα ουράνιου τόξου
- Τετραδιάστατος γράφος.

## 2.3 Διδιάστατος γράφος για συμβατότητα με το `Maple` : `plot`

`plot(f(x),x)` σχεδιάζει τον γράφο της y=f(x). Το δεύτερο όρισμα καθορίζει το πεδίο τιμών `x=xmin..xmax`. Mπορούμε επίσης να σχεδιάσουμε μια συνάρτηση αντί για μια παράσταση χρησιμοποιώντας την ακόλουθη σύνταξη `plot(f,xmin..xmax)`.
`plot` δέχεται ένα προαιρετικό όρισμα για να ορίσει το βήμα που χρησιμοποιεί το x στην διακριτοποίηση με ``xstep=`` ή τον αριθμό των σημείων για την διακριτοποίηση με ``nstep=``.
Είσοδος :

`plot(x```^```2-2,x)`

Έξοδος :

`ο γράφος της y=x```^```2-2`

Είσοδος :

`plot(x```^```2-2,xstep=1)`

ή

`plot(x```^```2-2,x,xstep=1)`

Έξοδος :

`μια πολυγωνική γραμμή η οποία είναι μια κακή αναπαράσταση της y=x```^```2-2`

Είσοδος :

`plot(x```^```2-2,x=-2..3,nstep=30)`

Έξοδος :

`ο γράφος της` `y=x```^```2-2` `στο διάστημα [-2, 3] και με 30 σημεία`

## 2.4 Τρισδιάστατες επιφάνειες για συμβατότητα με το `Maple` :
`plot3d`

`plot3d` παίρνει τρία ορίσματα : μια συνάρτηση δύο μεταβλητών ή μια παράσταση δύο μεταβλητών ή μια λίστα τριών συναρτήσεων με δύο μεταβλητές ή μια λίστα τριών παραστάσεων με δύο μεταβλητές και τα ονόματα αυτών των δύο μεταβλητών με ένα προαιρετικό πεδίο τιμών (για παραστάσεις) ή τα πεδία τιμών (για συναρτήσεις).
`plot3d(f(x,y),x,y)` (αντιστ. `plot3d([f(u,v),g(u,v),h(u,v)],u,v)`) σχεδιάζει την επιφάνεια z=f(x,y) (αντιστ. x=f(u,v),y=g(u,v),z=h(u,v)). `plot3d(f(x,y),x=x0..x1,y=y0..y1)` ή `plot3d(f,x0..x1,y0..y1)` καθορίζει πιο τμήμα της επιφάνειας θα σχεδιαστεί (διαφορετικά από προεπιλογή τα πεδία τιμών ορίζονται από τα χαρακτηριστικά του γράφου).
Είσοδος :

`plot3d(x*y,x,y)`

Έξοδος :

`Η επιφάνεια` `z=x*y`

Είσοδος :

`plot3d([v*cos(u),v*sin(u),v],u,v)`

Έξοδος :

`Ο κώνος` `x=v*``cos``(u),y=v*``sin``(u),z=v`

Είσοδος :

`plot3d([v*cos(u),v*sin(u),v],u=0..pi,v=0..3)`

Έξοδος :

`Ένα τμήμα του κώνου` `x=v*``cos``(u),y=v*``sin``(u),z=v`

## 2.5 Γράφος ευθείας και εφαπτομένη σε γράφο

- Σχεδιασμός ευθείας : `line`
- Σχεδιασμός διδιάστατης (`2D`) οριζόντιας ευθείας :
  `LineHorz`
- Σχεδιασμός διδιάστατης (`2D`) κάθετης ευθείας :
  `LineVert`
- Εφαπτόμενη σε έναν διδιάστατο (`2D`) γράφο:
  `LineTan`
- Εφαπτομένη σε έναν διδιάστατο (`2D`) γράφο :
  `tangent`
- Τομή ενός διδιάστατου (`2D`) γράφου με τους άξονες

## 2.6 Γράφος ανισοτήτων με δύο μεταβλητές :
`plotinequation inequationplot`

`plotinequation([f1(x,y)<a1,…fk(x,y)<ak],[x=x1..x2,y=y1..y2])` σχεδιάζει στο επίπεδο τα σημεία των οποίων οι συντεταγμένες ικανοποιούν τις ανισότητες δύο μεταβλητών :

⎧ ⎪ ⎨ ⎪ ⎩ |
f1(x,y) | < | a1
| ... |
fk(x,y) | < | ak
| , x1≤ x ≤ x2, y1 ≤ y ≤ y2

Είσοδος :

`plotinequation(x```^```2-y```^```2<3, [x=-2..2,y=-2..2],xstep=0.1,ystep=0.1)`

Έξοδος :

`το γεμισμένο τμήμα του επιπέδου που περικλείει την αρχή και περιορίζεται από την υπερβολή x```^```2-y```^```2=3`

Είσοδος :

`plotinequation([x+y>3,x```^```2<y], [x-2..2,y=-1..10],xstep=0.2,ystep=0.2)`

Έξοδος :

`το γεμισμένο τμήμα του επιπέδου που ορίζεται από` `-2<x<2,y<10,x+y>3,y>x```^```2`

Σημειώστε ότι αν τα πεδία τιμών για τα x και y δεν συγκεκριμενοποιούνται, το `Xcas` παίρνει τις προεπιλεγμένες τιμές του `X-,X+,Y-,Y+` που ορίζονται στις Ρυθμίσεις, δεξιά από το παράθυρο γραφικών ( `Cfg``▸``Ρυθμίσεις Γραφικών`).

## 2.7 Γράφος περιοχής κάτω από καμπύλη :
`plotarea areaplot`

- Με δύο ορίσματα, η εντολή `plotarea` επισκιάζει την περιοχή κάτω από μία καμπύλη.
  `plotarea(f(x),x=a..b)` σχεδιάζει και επισκιάζει την περιοχή κάτω από την καμπύλη y=f(x) για a<x<b, δηλαδή το τμήμα του επιπέδου που ορίζεται από τις ανισώσεις a<x<b και 0<y<f(x) ή 0>y>f(x) ανάλογα με το πρόσημο του f(x) .
  Είσοδος :
  `plotarea(sin(x),x=0..2*pi)`
  Έξοδος :
  `το τμήμα του επιπέδου που βρίσκεται ανάμεσα
  στον άξονα των` `x` `και τα δύο τόξα του` `sin(x)`
- Με τέσσερα ορίσματα, η εντολή `plotarea` εκτελεί μια αριθμητική προσέγγιση της περιοχής κάτω από την καμπύλη, με μέθοδο ολοκλήρωσης που επιλέγεται από την ακόλουθη λίστα:
  `trapezoid,rectangle_left,rectangle_right,middle_point`.
  Για παράδειγμα `plotarea(f(x),x=a..b,n,trapezoid)` σχεδιάζει και επισκιάζει την περιοχή n τραπεζίων : το τρίτο όρισμα είναι ένας ακέραιος n, και το τέταρτο όρισμα είναι το όνομα της αριθητικής μεθόδου ολοκλήρωσης, όταν το [a,b] σπάει σε n ίσα τμήματα.
  Είσοδος :
  `plotarea(x```^```2,x=0..1,5,trapezoid)`
  Αν θέλετε να εμφανίσετε τον γράφο της καμπύλης σε αντίθεση (π.χ. με έντονο κόκκινο), εισάγετε :
  `plotarea(x```^```2,x=0..1,5,trapezoid); plot(x```^```2,x=0..1,display=red+line_width_3)`
  Έξοδος :
  `τα 5 τραπέζια που χρησιμοποιούνται στην τραπεζοειδή μέθοδο και προσεγγίζουν το ολοκλήρωμα`
  Είσοδος :
  `plotarea((x```^```2,x=0..1,5,middle_point)`
  ή με τον γράφο της καμπύλης σε έντονο κόκκινο , εισάγετε :
  `plotarea(x```^```2,x=0..1,5,middle_point); plot(x```^```2,x=0..1,display=red+line_width_3)`
  Έξοδος :
  `τα 5 ορθογώνια που χρησιμοποιούνται στην μέθοδο του μέσου σημείου και προσεγγίζουν το ολοκλήρωμα`

## 2.8 Ισοϋψείς καμπύλες :
`plotcontour contourplot DrwCtour`

`plotcontour(f(x,y),[x,y])` (ή `DrwCtour(f(x,y),[x,y])` ή
`contourplot(f(x,y),[x,y])`) σχεδιάζει τις ισοϋψείς καμπύλες της επιφάνειας που ορίζεται από z=f(x,y) για z=−10, z=−8, .., z=0, z=2, .., z=10. Μπορείτε να ορίσετε τις επιθυμητές ισοϋψείς καμπύλες με μία λίστα τιμών του z που δίνονται σαν τρίτο όρισμα.
Είσοδος :

`plotcontour(x```^```2+y```^```2,[x=-3..3,y=-3..3],[1,2,3], display=[green,red,black])`

Έξοδος :

`ο γράφος των 3 ελλείψεων` `x```^```2-y```^```2 = n` `για` `n=1,2,3`

Είσοδος :

`plotcontour(x```^```2-y```^```2,[x,y])`

Έξοδος :

`ο γράφος των 11 ελλείψεων` `x```^```2-y```^```2 = n` `για` `n=-10,-8,…,10`

Αν θέλετε να σχεδιάσετε την επιφάνεια σε τρισδιάστατο περιβάλλον, εισάγετε
`plotfunc(f(x,y),[x,y])`, βλέπε 2.2.2):

`plotfunc( x```^```2-y```^```2,[x,y])`

Έξοδος :

`Τρισδιάστατη αναπαράσταση της` `z=x```^```2+y```^```2`

## 2.9 Διδιάστατος γράφος με χρώματα μιας διδιάστατης συνάρτησης :
`plotdensity densityplot`

`plotdensity(f(x,y),[x,y])` ή `densityplot(f(x,y),[x,y])` σχεδιάζει τον γράφο της z=f(x,y) στο επίπεδο όπου οι τιμές του z αντιπροσωπεύονται από τα χρώματα του ουράνιου τόξου. Το προαιρετικό όρισμα `z=zmin..zmax` ορίζει το πεδίο τιμών του z που αντιστοιχεί στο πλήρες ουράνιο τόξο. Αν δεν ορίζεται, συνεπάγεται από την μέγιστη και ελάχιστη τιμή της f στη διακριτοποίηση. Η διακριτοποίηση μπορεί να ορίζεται από τα προαιρετικά ορίσματα `xstep=...` και `ystep=...` ή `nstep=...`
Είσοδος :

`plotdensity(x```^```2-y```^```2,[x=-2..2,y=-2..2], xstep=0.1,ystep=0.1)`

Έξοδος :

`Ένας` `2D` `γράφος όπου κάθε υπερβολή που ορίζεται από` `x```^```2-y```^```2=z` `έχει ένα χρώμα από το ουράνιο τόξο`

Σχόλιο : Ένα ορθογώνιο που αντιπροσωπεύει την κλιμακα των χρωμάτων εμφανίζεται κάτω από τον γράφο .

## 2.10 Πεπλεγμένος γράφος :
`plotimplicit implicitplot`

`plotimplicit` ή `implicitplot` σχεδιάζει καμπύλες ή επιφάνειες που ορίζονται από μια πεπλεγμένη παράσταση ή εξίσωση. Εάν η επιλογή `unfactored` δίνεται σαν τελευταίο όρισμα, η αρχική παράσταση παίρνεται χωρίς τροποποίηση. Αλλιώς, η παράσταση κανονικοποιείται, μετά αντικαθίσταται από την παραγοντοποίηση του αριθμητή της κανονικοποίησής της.

Κάθε παράγοντας της παράστασης, αντιστοιχεί σε μία συνιστώσα της πεπλεγμένης καμπύλης ή επιφάνειας. Για κάθε παράγοντα, το `Xcas` εξετάζει εάν είναι ολικού βαθμού μικρότερου ή ίσου του 2, και σε αυτή την περίπτωση καλείται η `conic` ή `quadric`. Διαφορετικά, καλείται ο αριθμητικός επιλυτής πεπλεγμένων.

Προαιρετικά ορίσματα για το βήμα και τα πεδία τιμών μπορεί να περαστούν στον αριθμητικό επιλυτή πεπλεγμένων, αλλά αυτά απελευθερώνονται όταν η συνιστώσα είναι κωνική καμπύλη ή δευτεροβάθμια επιφάνεια.

- Διδιάστατη (`2D`) πεπλεγμένη καμπύλη
- Τρισδιάστατη (`3D`) πεπλεγμένη επιφάνεια

## 2.11 Παραμετρικές καμπύλες και επιφάνειες :
`plotparam paramplot DrawParm`

- Διδιάστατη (`2D`) παραμετρική καμπύλη
- Τρισδιάστατη (`3D`) παραμετρική επιφάνεια :
  `plotparam paramplot DrawParm`

## 2.12 Καμπύλη που ορίζεται από πολικές συντεταγμένες :
`plotpolar polarplot DrawPol courbe_polaire`

Έστω Et μια παράσταση που εξαρτάται από την μεταβλητή t.
`plotpolar(``E``t``,t)` σχεδιάζει την πολική παράσταση της καμπύλης που ορίζεται από ρ=Et για θ=t, και που στις καρτεσιανές συντενταγμένες είναι η καμπύλη (Et cos(t),Et sin(t)). Το πεδίο τιμών της παραμέτρου μπορεί να οριστεί αντικαθιστώντας το δεύτερο όρισμα με `t=tmin..tmax`. Η παράμετρος διακριτοποίησης μπορεί να οριστεί από ένα προαιρετικό όρισμα `tstep=...`.
Είσοδος:

`plotpolar(t,t)`

Έξοδος :

`Η σπείρα` `ρ``= t`

Είσοδος:

`plotpolar(t,t,tstep=1)`

ή :

`plotpolar(t,t=0..10,tstep=1)`

Έξοδος :

`Ένα πολύγωνο που προσεγγίζει την σπείρα` `ρ``= t`

## 2.13 Γράφος αναδρομικής ακολουθίας :
`plotseq seqplot graphe_suite`

Έστω f(x) μια παράσταση που εξαρτάται από την μεταβλητή x (αντίστ. f(t) μια παράσταση που εξαρτάται από την μεταβλητή t).
`plotseq(``f(x)``,a,n)` (αντιστ. `plotseq(``f(t)``,t=a,n)`) σχεδιάζει την γραμμή y=x, τον γράφο της y=f(x) (αντιστ y=f(t)) και τους n πρώτους όρους της αναδρομικής ακολουθίας που ορίζεται από: u0=a, un=f(un−1). Η τιμή a μπορεί να αντικατασταθεί από μια λίστα τριών στοιχείων, [a,x−,x+] όπου x−..x+ θα περαστεί σαν το πεδίο τιμών του x για τον υπολογισμό του γράφου.
Είσοδος :

`plotseq(sqrt(1+x),x=[3,0,5],5)`

Έξοδος :

`Ο γράφος της` `y=sqrt(1+x)``, της` `y=x` `και των 5 πρώτων όρων της ακολουθίας` `u_0=3` `και` `u_n=sqrt(1+u_(n-1))`

## 2.14 Πεδίο κλίσεων : `plotfield fieldplot`

- Εάν f(t,y) είναι μια παράσταση ως προς τις δύο μεταβλητές t και y, τότε:
  `plotfield(f(t,y),[t,y])`
  σχεδιάζει το πεδίο κλίσεων της διαφορικής εξίσωσης y′=f(t,y) όπου y είναι μια πραγματική μεταβλητή και όπου t είναι η τετμημένη,
- Εάν V είναι ένα διάνυσμα δύο παραστάσεων ως προς τις δύο μεταβλητές x,y που είναι ανεξάρτητες του χρόνου t, τότε
  `plotfield(V,[x,y])`
  σχεδιάζει το διανυσματικό πεδίο V,
- Το πεδίο τιμών των t,y ή των x,y μπορεί να ορισθεί θέτοντας
  `t=tmin..tmax`, `x=xmin..xmax`, `y=ymin..ymax`
  στην θέση του ονόματος της μεταβλητής.
- Η διακριτοποίηση μπορεί να οριστεί με προαιρετικά ορίσματα `xstep=...`, `ystep=...`

Είσοδος :

`plotfield(4*sin(t*y),[t=0..2,y=-3..7])`

Έξοδος :

`Ευθύγραμμα τμήματα με κλίση` `4*sin(t*y)``, που αναπαριστούν εφαπτομένες, σχεδιάζονται σε διαφορετικά σημεία`
`plotfield(5*[-y,x],[x=-1..1,y=-1..1])`

## 2.15 Γράφος μιας λύσης μιας διαφορικής εξίσωσης :
`plotode odeplot`

Έστω f(t,y) μια παράσταση ως προς δύο μεταβλητές t και y.

- `plotode(``f(t,y)``,[t,y],[t0,y0])` σχεδιάζει την λύση της διαφορικής εξίσωσης y′=f(t,y) που περνάει από το σημείο `(t0,y0)` (δηλαδή, ισχύει y(t0)=y0)
- Από προεπιλογή, t πηγαίνει σε δύο κατευθύνσεις. Το πεδίο τιμών της t μπορεί να οριστεί από το προαιρετικό όρισμα `t=tmin..tmax`.
- Μπορούμε επίσης να παρουσιάσουμε, στο χώρο ή στο επίπεδο, την λύση της διαφορικής εξίσωσης y′=f(t,y) όπου y=(X,Y) είναι ένα διάνυσμα μεγέθους 2. Απλώς αντικαταστήστε το y με τα ονόματα των μεταβλητών X,Y και την αρχική τιμή y0 με τις δύο αρχικές τιμές των μεταβλητών στον χρόνο t0.

Είσοδος :

`plotode(sin(t*y),[t,y],[0,1])`

Έξοδος :

`Ο γράφος της λύσης της` `y``′``=sin(t,y)``που περνάει
από το σημείο (0,1)`

Είσοδος :

`S:=odeplot([h-0.3*h*p, 0.3*h*p-p], [t,h,p],[0,0.3,0.7])`

Έξοδος, ο γράφος, στον χώρο, της λύσης της :

[h,p]′=[h−0.3 h*p, 0.3 h*p−p] [h,p](0)=[0.3,0.7]

Για να έχετε ένα διδιάστατο ( `2-d`) γράφο (στο επίπεδο), χρησιμοποιήστε την επιλογή `plane`

`S:=odeplot([h-0.3*h*p, 0.3*h*p-p], [t,h,p],[0,0.3,0.7],plane)`

## 2.16 Αλληλεπιδραστικός γράφος λύσεων μιας διαφορικής εξίσωσης:
`interactive_plotode interactive_odeplot`

Έστω f(t,y) μια παράσταση ως προς τις δύο μεταβλητές t και y.
`interactive_plotode(f(t,y),[t,y])` σχεδιάζει το πεδίο κλίσεων της διαφορικής εξίσωσης y′=f(t,y) σε ένα νέο παράθυρο. Στο παράθυρο αυτό, μπορεί κανείς να επιλέξει ένα σημείο (κάνοντας κλικ με το ποντίκι) για να πάρει τον γράφο της λύσης της y′=f(t,y) που περνά από αυτό το σημείο.
Μπορείτε να επιλέξετε περισσότερα σημεία για να εμφανίσετε περισσότερες λύσεις. Για να σταματήσετε πιέστε το κουμπί `Esc`.
Είσοδος:

`interactive_plotode(sin(t*y),[t,y])`

Έξοδος :

`Το πεδίο κλίσεων της` `y``′``=sin(t,y)``με τις λύσεις που περνάνε από τα σημεία που ορίζονται με κλικ του ποντικιού.`

## 2.17 Εφέ κίνησης γράφων (`2D, 3D` `ή` `"4D"``)`

Το `Xcas` μπορεί να εμφανίσει εφέ κίνησης γράφων `2D, 3D` ή `"4D"`. Αυτό γίνεται πρώτα υπολογίζοντας μια ακολουθία γραφικών αντικειμένων, και μετά την ολοκλήρωση, εμφανίζοντας την ακολουθία σε βρόχο.

- Για να σταματήσετε ή να ξεκινήσετε (ξανά) το εφέ κίνησης, κάντε κλικ στο κουμπί ▸ ∣ (δεξιά από το παράθυρο γραφικών και δεξιά του Μενού Γραφικών `M`).
- Ο χρόνος εμφάνισης κάθε γραφικού αντικειμένου ορίζεται στο `"``Εφέ κίνησης``"` του Μενού Γραφικών ( `M`). Επιλέξτε `"``Πιο γρήγορα``"`, για να πάρετε ένα γρήγορο εφέ κίνησης.
- Εάν το εφέ κίνησης είναι σταματημένο, μπορείτε να δείτε την ακολουθία των αντικειμένων μία προς μία κάνοντας κλικ με το ποντίκι μέσα στο γραφικό περιβάλλον.

- Εφέ κίνησης διδιάστατου (`2D`) γράφου : `animate`
- Εφέ κίνησης τρισδιάστατου (`3D`) γράφου :
  `animate3d`
- Εφέ κίνησης μιας ακολουθίας γραφικών αντικειμένων : `animation`

# Chapter 3 Αριθμητικοί υπολογισμοί

Οι πραγματικοί αριθμοί μπορεί να έχουν `ακριβή` αναπαράσταση (π.χ. ρητοί, συμβολικές παραστάσεις που περιλαμβάνουν τετραγωνικές ρίζες ή σταθερές όπως π, ...) ή `προσεγγιστική` αναπαράσταση, που σημαίνει ότι ο πραγματικός αναπαρίσταται από έναν ρητό (με παρονομαστή που είναι μια δύναμη της βάσης της αναπαράστασης) που είναι κοντά στον πραγματικό. Στο `Xcas`, ο συνήθης επιστημονικός συμβολισμός χρησιμοποιείται για την προσεγγιστική αναπαράσταση, δηλαδή το κλασματικό μέρος ( `mantissa`) (με μία `τελίτσα` για δεκαδικό οριοθέτη, αντί για κόμμα που χρησιμοποιούμε στην Ελλάδα) που ακολουθείται προαιρετικά από το γράμμμα `e` και έναν ακέραιο εκθέτη.

Σημειώστε ότι ο πραγματικός αριθμός 10−4 είναι ένας ακριβής αριθμός αλλά ο 1e−4 είναι η προσεγγιστική αναπαράσταση του πρώτου.

## 3.1 Αναπαράσταση κινητής υποδιαστολής.

Σε αυτήν την ενότητα, θα δούμε πως αναπαρίστανται οι πραγματικοί αριθμοί.

- `Digits`
- Αναπαράσταση με αριθμούς μηχανής κινητής
  υποδιαστολής
- Παραδείγματα αναπαράστασεων κανονικοποιημένων αριθμών κινητής υποδιαστολής
- Διαφορά μεταξύ των αναπαραστάσεων της (3.1-3) και του 0.1

## 3.2 Προσεγγιστική αποτίμηση : `evalf approx`
και `Digits`

`evalf` ή `approx` υπολογίζει μία αριθμητική προσέγγιση (εάν αυτό είναι δυνατό).
Είσοδος :

`evalf(sqrt(2))`

Έξοδος, εάν στις Ρυθμίσεις `CAS` (από το μενού `Ρυθμίσεις`) έχουμε ορίσει `Digits=7` (εδώ χρησιμοποιούνται αριθμοί μηχανής κινητής υποδιαστολής και εμφανίζονται 7 ψηφία) :

`1.414214`

Μπορούμε να αλλάξουμε τον αριθμό των ψηφίων κάνοντας ανάθεση τιμής στην μεταβλητή `DIGITS` ή `Digits` στην γραμμή εντολών. Είσοδος :

`DIGITS:=20`
`evalf(sqrt(2))`

Έξοδος :

`1.4142135623730950488`

Είσοδος ( `DIGITS:=7`) :

`evalf(10```^```-5)`

Έξοδος :

`1e-05`

Είσοδος :

`evalf(10```^```15)`

Έξοδος :

`1e+15`

Είσοδος :

`evalf(sqrt(2))*10```^```-5`

Έξοδος :

`1.414214e-05`

## 3.3 Αριθμητικοί αλγόριθμοι

- Προσεγγιστική επίλυση εξισώσεων : `newton`
- Προσεγγιστικός υπολογισμός παραγώγων :
  `nDeriv`
- Προσεγγιστικός υπολογισμός ολοκληρωμάτων :
  `romberg nInt`
- Προσεγγιστική επίλυση της `y``′``=f(t,y)` : `odesolve`
- Προσεγγιστική επίλυση του συστήματος `v``′``=f(t,v)`:
  `odesolve`

## 3.4 Επίλυση εξισώσεων με `fsolve nSolve`

`fsolve` ή `nSolve` λύνει αριθμητικές εξισώσεις (σε αντίθεση με την `solve` ή την `proot`, δεν περιορίζεται σε πολυωνυμικές εξισώσεις) της μορφής:

f(x)=0, x ∈ ]a,b[

`fsolve` ή `nSolve` δέχεται ένα τελευταίο προαιρετικό όρισμα, το όνομα ενός επαναληπτικού αλγορίθμου που χρησιμοποιείται από τον επιλυτή. Οι διαφορετικές μέθοδοι εξηγούνται στην συνέχεια.

- `fsolve` ή `nSolve` με την επιλογή `bisection_solver`
- `fsolve` ή `nSolve` με την επιλογή `brent_solver`
- `fsolve` ή `nSolve` με την επιλογή `falsepos_solver`
- `fsolve` ή `nSolve` με την επιλογή `newton_solver`
- `fsolve` ή `nSolve` με την επιλογή `secant_solver`
- `fsolve` ή `nSolve` με την επιλογή `steffenson_solver`

## 3.5 Επίλυση συστημάτων με `fsolve`

Tο `Xcas` παρέχει έξι μεθόδους (από την `GSL`) για την επίλυση αριθμητικών συστημάτων εξισώσεων της μορφής f(x)=0:

- Τρεις μέθοδοι χρησιμοποιούν τον Ιακωβιανό πίνακα ( `jacobian`) f′(x) και τα ονόματά τους τελειώνουν σε `j_solver`.
- Οι άλλες τρεις μέθοδοι προσεγγίζουν την f′(x) και χρησιμοποιούν μόνο f.

Όλες οι μέθοδοι χρησιμοποιούν μια επανάληψη τύπου `Newton`

xn+1=xn−f′(xn)−1*f(xn)

Οι τέσσερις μέθοδοι `hybrid*_solver` χρησιμοποιούν επίσης μια μέθοδο μεγίστης καθόδου όταν η επανάληψη `Newton` θα έκανε ένα πολύ μεγάλο βήμα. Το μήκος του βήματος υπολογίζεται χωρίς κλιμάκωση για `hybrid_solver` και `hybridj_solver` ή με κλιμάκωση (υπολογίζεται από f′(xn)) για
`hybrids_solver` και `hybridsj_solver`.

- `fsolve` με την επιλογή `dnewton_solver`
- `fsolve` με την επιλογή `hybrid_solver`
- `fsolve` με την επιλογή `hybrids_solver`
- `fsolve` με την επιλογή `newtonj_solver`
- `fsolve` με την επιλογή `hybridj_solver`
- `fsolve` με την επιλογή `hybridsj_solver`

## 3.6 Αριθμητικές ρίζες πολυωνύμων : `proot`

`proot` παίρνει σαν όρισμα ένα `squarefree` πολυώνυμο, είτε σε συμβολική μορφή είτε σαν μια λίστα πολυωνυμικών συντελεστών (γραμμένων σε φθίνουσα σειρά).
`proot` επιστρέφει μια λίστα των αριθμητικών ριζών αυτού του πολυωνύμου.
Για να βρείτε τις αριθμητικές ρίζες της P(x)=x3+1, εισάγετε :

`proot([1,0,0,1])`

ή :

`proot(x```^```3+1)`

Έξοδος :

`[-1.0,0.5+0.866025403784*i,0.5-0.866025403784*i]`

Για να βρείτε τις αριθμητικές ρίζες του x2−3, εισάγετε :

`proot([1,0,-3])`

ή :

`proot(x```^```2-3)`

Έξοδος :

`[-1.73205080757,1.73205080757]`

## 3.7 Αριθμητική παραγοντοποίηση πίνακα :
`cholesky qr lu svd`

Αριθμητικές παραγοντοποιήσεις πίνακα του

- `` `Cholesky,`
- `QR,`
- `LU,`
- `svd,`

`` περιγράφονται στην ενότητα 1.48.

# Chapter 4 Μονάδες και φυσικές σταθερές

Το μενού `Φυσ` περιλαμβάνει:

- τις φυσικές σταθερές (στο υπομενού `Σταθερά`),
- τις συναρτήσεις για μετατροπές μονάδων (στο υπομενού `Μετατροπέας`),
- τα διάφορα προθέματα μονάδων (στο υπομενού `Προθέματα Μονάδων`)
- τις μονάδες οργανομένες κατά κατηγορία

## 4.1 Μονάδες

- Συμβολισμός των μονάδων
- Υπολογισμός με μονάδες
- Μετατροπή μονάδων σε μονάδες `MKSA` : `mksa`
- Μετατροπή μονάδων : `convert`
- Παραγοντοποίηση μονάδων : `ufactor`
- Απλοποίηση μονάδων : `usimplify`
- Προθέματα μονάδων

## 4.2 Σταθερές

- Συμβολισμός φυσικών σταθερών
- Βιβλιοθήκη Σταθερών

> This document was translated from LATEX by H E V E A.