This is the math Reference Manual, version 0.0.3, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 06:58:59 2024 GMT+0.
math/src/math
math/core/src/core
math/coord/src/coord
math/matr/src/matr
math/stat/src/stat
math/geom/src/geom
math/equation/src/equation
math/smooth/src/smooth
math/rnd/src/rnd
math/ls-gauss/src/ls-gauss
math/ls-gsll/src/ls-gsll
math/ls-rotation/src/ls-rotation
math/gnuplot/src/gnuplot
math/appr/src/appr
math/series/src/series
math/half-div/src/half-div
math/math.asd
math/src/math/math.lisp
math/core/src/core/core.lisp
math/core/src/core/core-doc.lisp
math/coord/src/coord/coord.lisp
math/coord/src/coord/coord-doc.lisp
math/matr/src/matr/matr.lisp
math/matr/src/matr/generics.lisp
math/matr/src/matr/methods/add.lisp
math/matr/src/matr/methods/anti-diagonal.lisp
math/matr/src/matr/methods/append.lisp
math/matr/src/matr/methods/average.lisp
math/matr/src/matr/methods/col.lisp
math/matr/src/matr/methods/cols.lisp
math/matr/src/matr/methods/copy.lisp
math/matr/src/matr/methods/dimensions.lisp
math/matr/src/matr/methods/equivalent.lisp
math/matr/src/matr/methods/main-diagonal.lisp
math/matr/src/matr/methods/mref.lisp
math/matr/src/matr/methods/multiply.lisp
math/matr/src/matr/methods/prepend.lisp
math/matr/src/matr/methods/rotate.lisp
math/matr/src/matr/methods/row.lisp
math/matr/src/matr/methods/rows.lisp
math/matr/src/matr/methods/squarep.lisp
math/matr/src/matr/methods/swap-cols.lisp
math/matr/src/matr/methods/swap-rows.lisp
math/matr/src/matr/methods/transpose.lisp
math/matr/src/matr/methods/unite-cols.lisp
math/matr/src/matr/methods/unite-rows.lisp
math/matr/src/matr/matr-doc.lisp
math/stat/src/stat/stat.lisp
math/stat/src/stat/stat-doc.lisp
math/geom/src/geom/geom.lisp
math/geom/src/geom/geom-doc.lisp
math/equation/src/equation/equation.lisp
math/equation/src/equation/equation-doc.lisp
math/smooth/src/smooth/smooth.lisp
math/smooth/src/smooth/smooth-doc.lisp
math/rnd/src/rnd/rnd.lisp
math/rnd/src/rnd/rnd-doc.lisp
math/ls-gauss/src/ls-gauss/ls-gauss.lisp
math/ls-gauss/src/ls-gauss/ls-gauss-doc.lisp
math/ls-gsll/src/ls-gsll/ls-gsll.lisp
math/ls-gsll/src/ls-gsll/ls-gsll-doc.lisp
math/ls-rotation/src/ls-rotation/ls-rotation.lisp
math/ls-rotation/src/ls-rotation/ls-rotation-doc.lisp
math/gnuplot/src/gnuplot/gnuplot.lisp
math/gnuplot/src/gnuplot/gnuplot-doc.lisp
math/appr/src/appr/appr.lisp
math/appr/src/appr/appr-doc.lisp
math/series/src/series/series.lisp
math/series/src/series/series-doc.lisp
math/half-div/src/half-div/half-div.lisp
math/half-div/src/half-div/half-div-doc.lisp
The main system appears first, followed by any subsystem dependency.
math
math/core
math/coord
math/matr
math/stat
math/geom
math/equation
math/smooth
math/rnd
math/ls-gauss
math/ls-gsll
math/ls-rotation
math/gnuplot
math/appr
math/series
math/half-div
math
Math is a math library, implementing some algorithms:
@begin(list)
@item(linear algebra;)
@item(operations with matrices;)
@item(statistical functions;)
@item(linear and bilinear interpolation;)
@item(finding approximating polynomials, implemented in Common
Lisp.)
@end(list)
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
0.0.3
cl-utilities
(system).
math/core
(system).
math/coord
(system).
math/matr
(system).
math/geom
(system).
math/equation
(system).
math/stat
(system).
math/smooth
(system).
math/rnd
(system).
math/ls-gauss
(system).
math/ls-gsll
(system).
math/ls-rotation
(system).
math/gnuplot
(system).
math/appr
(system).
math/series
(system).
math/half-div
(system).
src/math
(module).
math/core
Содержит некоторые функции и обобщенные функции, используемые в проекте повсеместно
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
src/core
(module).
math/coord
Содержит функции преобразования
- угловой меры;
- координат точки между декартовой, полярной, сферической системами координат.
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/core
(system).
src/coord
(module).
math/matr
@b(Описание:) система @b(math/matr) содержит некоторых операций над матрицами
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
cl-utilities
(system).
math/coord
(system).
math/stat
(system).
closer-mop
(system).
src/matr
(module).
math/stat
Describe math here
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/core
(system).
gsll
(system).
src/stat
(module).
math/geom
Функции вычисления площадей и объемов геометрических фигур и тел.
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
src/geom
(module).
math/equation
@b(Описание:) система @b(math/equation) содержит
функции для нахождения корней линейных, квадратных, кубических и
уравнений 4-ой степени (последнее не реализовано).
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
src/equation
(module).
math/smooth
Весовые функции для методов сглаживания
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
src/smooth
(module).
math/rnd
Содержит функции для генерирования случайных списков и 2d-списков.
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/matr
(system).
src/rnd
(module).
math/ls-gauss
Решение систем линейных уравнений методом Гаусса
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/matr
(system).
src/ls-gauss
(module).
math/ls-gsll
Решение систем линейных уравнений при помощи библиотеки gsll
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
gsll
(system).
math/matr
(system).
src/ls-gsll
(module).
math/ls-rotation
Реализация решение системы линейных уравнений методом вращения
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/matr
(system).
src/ls-rotation
(module).
math/gnuplot
Интерфейс к программе построения графиков gnuplot
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/core
(system).
font-discovery
(system).
vgplot
(system).
src/gnuplot
(module).
math/appr
Describe math here
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/core
(system).
math/matr
(system).
math/ls-gauss
(system).
math/smooth
(system).
src/appr
(module).
math/series
@b(Описание:) система @b(math/series) определяет некоторые операции с прогрессиями.
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
math/half-div
(system).
math/equation
(system).
src/series
(module).
math/half-div
Describe half-div here
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
src/half-div
(module).
Modules are listed depth-first from the system components tree.
math/src/math
math/core/src/core
math/coord/src/coord
math/matr/src/matr
math/stat/src/stat
math/geom/src/geom
math/equation/src/equation
math/smooth/src/smooth
math/rnd/src/rnd
math/ls-gauss/src/ls-gauss
math/ls-gsll/src/ls-gsll
math/ls-rotation/src/ls-rotation
math/gnuplot/src/gnuplot
math/appr/src/appr
math/series/src/series
math/half-div/src/half-div
math/core/src/core
math/core
(system).
core.lisp
(file).
core-doc.lisp
(file).
math/coord/src/coord
math/coord
(system).
coord.lisp
(file).
coord-doc.lisp
(file).
math/matr/src/matr
math/matr
(system).
matr.lisp
(file).
generics.lisp
(file).
methods/add.lisp
(file).
methods/anti-diagonal.lisp
(file).
methods/append.lisp
(file).
methods/average.lisp
(file).
methods/col.lisp
(file).
methods/cols.lisp
(file).
methods/copy.lisp
(file).
methods/dimensions.lisp
(file).
methods/equivalent.lisp
(file).
methods/main-diagonal.lisp
(file).
methods/mref.lisp
(file).
methods/multiply.lisp
(file).
methods/prepend.lisp
(file).
methods/rotate.lisp
(file).
methods/row.lisp
(file).
methods/rows.lisp
(file).
methods/squarep.lisp
(file).
methods/swap-cols.lisp
(file).
methods/swap-rows.lisp
(file).
methods/transpose.lisp
(file).
methods/unite-cols.lisp
(file).
methods/unite-rows.lisp
(file).
matr-doc.lisp
(file).
math/stat/src/stat
math/stat
(system).
stat.lisp
(file).
stat-doc.lisp
(file).
math/geom/src/geom
math/geom
(system).
geom.lisp
(file).
geom-doc.lisp
(file).
math/equation/src/equation
math/equation
(system).
equation.lisp
(file).
equation-doc.lisp
(file).
math/smooth/src/smooth
math/smooth
(system).
smooth.lisp
(file).
smooth-doc.lisp
(file).
math/rnd/src/rnd
math/rnd
(system).
rnd.lisp
(file).
rnd-doc.lisp
(file).
math/ls-gauss/src/ls-gauss
math/ls-gauss
(system).
ls-gauss.lisp
(file).
ls-gauss-doc.lisp
(file).
math/ls-gsll/src/ls-gsll
math/ls-gsll
(system).
ls-gsll.lisp
(file).
ls-gsll-doc.lisp
(file).
math/ls-rotation/src/ls-rotation
math/ls-rotation
(system).
ls-rotation.lisp
(file).
ls-rotation-doc.lisp
(file).
math/gnuplot/src/gnuplot
math/gnuplot
(system).
gnuplot.lisp
(file).
gnuplot-doc.lisp
(file).
math/appr/src/appr
math/appr
(system).
appr.lisp
(file).
appr-doc.lisp
(file).
math/series/src/series
math/series
(system).
series.lisp
(file).
series-doc.lisp
(file).
math/half-div/src/half-div
math/half-div
(system).
half-div.lisp
(file).
half-div-doc.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
math/math.asd
math/src/math/math.lisp
math/core/src/core/core.lisp
math/core/src/core/core-doc.lisp
math/coord/src/coord/coord.lisp
math/coord/src/coord/coord-doc.lisp
math/matr/src/matr/matr.lisp
math/matr/src/matr/generics.lisp
math/matr/src/matr/methods/add.lisp
math/matr/src/matr/methods/anti-diagonal.lisp
math/matr/src/matr/methods/append.lisp
math/matr/src/matr/methods/average.lisp
math/matr/src/matr/methods/col.lisp
math/matr/src/matr/methods/cols.lisp
math/matr/src/matr/methods/copy.lisp
math/matr/src/matr/methods/dimensions.lisp
math/matr/src/matr/methods/equivalent.lisp
math/matr/src/matr/methods/main-diagonal.lisp
math/matr/src/matr/methods/mref.lisp
math/matr/src/matr/methods/multiply.lisp
math/matr/src/matr/methods/prepend.lisp
math/matr/src/matr/methods/rotate.lisp
math/matr/src/matr/methods/row.lisp
math/matr/src/matr/methods/rows.lisp
math/matr/src/matr/methods/squarep.lisp
math/matr/src/matr/methods/swap-cols.lisp
math/matr/src/matr/methods/swap-rows.lisp
math/matr/src/matr/methods/transpose.lisp
math/matr/src/matr/methods/unite-cols.lisp
math/matr/src/matr/methods/unite-rows.lisp
math/matr/src/matr/matr-doc.lisp
math/stat/src/stat/stat.lisp
math/stat/src/stat/stat-doc.lisp
math/geom/src/geom/geom.lisp
math/geom/src/geom/geom-doc.lisp
math/equation/src/equation/equation.lisp
math/equation/src/equation/equation-doc.lisp
math/smooth/src/smooth/smooth.lisp
math/smooth/src/smooth/smooth-doc.lisp
math/rnd/src/rnd/rnd.lisp
math/rnd/src/rnd/rnd-doc.lisp
math/ls-gauss/src/ls-gauss/ls-gauss.lisp
math/ls-gauss/src/ls-gauss/ls-gauss-doc.lisp
math/ls-gsll/src/ls-gsll/ls-gsll.lisp
math/ls-gsll/src/ls-gsll/ls-gsll-doc.lisp
math/ls-rotation/src/ls-rotation/ls-rotation.lisp
math/ls-rotation/src/ls-rotation/ls-rotation-doc.lisp
math/gnuplot/src/gnuplot/gnuplot.lisp
math/gnuplot/src/gnuplot/gnuplot-doc.lisp
math/appr/src/appr/appr.lisp
math/appr/src/appr/appr-doc.lisp
math/series/src/series/series.lisp
math/series/src/series/series-doc.lisp
math/half-div/src/half-div/half-div.lisp
math/half-div/src/half-div/half-div-doc.lisp
math/src/math/math.lisp
src/math
(module).
math
.
mult-matr-vect
(function).
math/core/src/core/core.lisp
src/core
(module).
*semi-equal-relativ*
(special variable).
*semi-equal-zero*
(special variable).
+significant-digits+
(special variable).
depth-sphere-along-cone
(function).
distance
(generic function).
distance-relative
(generic function).
exclude-nil-from-list
(function).
matr-name-*
(generic function).
norma
(generic function).
round-to-significant-digits
(function).
semi-equal
(generic function).
split-range
(function).
split-range-at-center
(function).
split-range-by-func
(function).
square
(function).
summ-distance
(generic function).
e-value
(function).
math/coord/src/coord/coord.lisp
src/coord
(module).
cartesian->polar
(function).
cartesian->spherical
(function).
double-float-list
(function).
dtr
(function).
point-3d->4d
(function).
point-4d->3d
(function).
polar->cartesian
(function).
rtd
(function).
single-float-list
(function).
spherical->cartesian
(function).
math/coord/src/coord/coord-doc.lisp
coord.lisp
(file).
src/coord
(module).
math/matr/src/matr/matr.lisp
src/matr
(module).
<matrix>
(class).
detach-last-col
(function).
get-last-col
(function).
initialize-instance
(method).
lm-print
(function).
lv-print
(function).
make
(function).
make-vector-n
(function).
matr-eval-*
(method).
matr-new
(function).
matrix->2d-list
(method).
matrix-data
(reader method).
(setf matrix-data)
(writer method).
max-col-not-nil-value
(function).
max-row-not-nil-value
(function).
move-v
(method).
move-xyz
(method).
normalize
(function).
print-object
(method).
transform
(method).
matr-name-*
(method).
math/matr/src/matr/generics.lisp
matr.lisp
(file).
src/matr
(module).
add
(generic function).
anti-diagonal
(generic function).
(setf anti-diagonal)
(generic function).
append-col
(generic function).
append-row
(generic function).
average-col-not-nil-value
(generic function).
average-col-value
(generic function).
average-not-nil-value
(generic function).
average-row-not-nil-value
(generic function).
average-row-value
(generic function).
average-value
(generic function).
col
(generic function).
(setf col)
(generic function).
cols
(generic function).
copy
(generic function).
dimensions
(generic function).
equivalent
(generic function).
main-diagonal
(generic function).
(setf main-diagonal)
(generic function).
matr-eval-*
(generic function).
mref
(generic function).
(setf mref)
(generic function).
multiply
(generic function).
prepend-col
(generic function).
prepend-row
(generic function).
prepend-rows
(generic function).
rotate-around
(generic function).
rotate-v
(generic function).
rotate-x
(generic function).
rotate-y
(generic function).
rotate-z
(generic function).
row
(generic function).
(setf row)
(generic function).
rows
(generic function).
squarep
(generic function).
swap-cols
(generic function).
swap-cols*
(generic function).
swap-rows
(generic function).
swap-rows*
(generic function).
transform
(generic function).
transpose
(generic function).
unite-cols
(generic function).
unite-rows
(generic function).
matr-equal*
(generic function).
matr-name-*
(generic function).
math/matr/src/matr/methods/add.lisp
generics.lisp
(file).
src/matr
(module).
add
(method).
math/matr/src/matr/methods/anti-diagonal.lisp
methods/add.lisp
(file).
src/matr
(module).
anti-diagonal
(method).
(setf anti-diagonal)
(method).
math/matr/src/matr/methods/append.lisp
methods/anti-diagonal.lisp
(file).
src/matr
(module).
append-col
(method).
append-row
(method).
math/matr/src/matr/methods/average.lisp
methods/append.lisp
(file).
src/matr
(module).
average-col-not-nil-value
(method).
average-col-value
(method).
average-not-nil-value
(method).
average-row-not-nil-value
(method).
average-row-value
(method).
average-value
(method).
math/matr/src/matr/methods/col.lisp
methods/average.lisp
(file).
src/matr
(module).
col
(method).
col
(method).
col
(method).
(setf col)
(method).
(setf col)
(method).
(setf col)
(method).
(setf col)
(method).
math/matr/src/matr/methods/cols.lisp
methods/col.lisp
(file).
src/matr
(module).
math/matr/src/matr/methods/copy.lisp
methods/cols.lisp
(file).
src/matr
(module).
math/matr/src/matr/methods/dimensions.lisp
methods/copy.lisp
(file).
src/matr
(module).
dimensions
(method).
dimensions
(method).
dimensions
(method).
math/matr/src/matr/methods/equivalent.lisp
methods/dimensions.lisp
(file).
src/matr
(module).
equivalent
(method).
equivalent
(method).
equivalent
(method).
equivalent
(method).
math/matr/src/matr/methods/main-diagonal.lisp
methods/equivalent.lisp
(file).
src/matr
(module).
main-diagonal
(method).
(setf main-diagonal)
(method).
(setf main-diagonal)
(method).
math/matr/src/matr/methods/mref.lisp
methods/main-diagonal.lisp
(file).
src/matr
(module).
mref
(method).
mref
(method).
mref
(method).
(setf mref)
(method).
(setf mref)
(method).
(setf mref)
(method).
math/matr/src/matr/methods/multiply.lisp
methods/mref.lisp
(file).
src/matr
(module).
math/matr/src/matr/methods/prepend.lisp
methods/multiply.lisp
(file).
src/matr
(module).
prepend-col
(method).
prepend-row
(method).
prepend-rows
(method).
math/matr/src/matr/methods/rotate.lisp
methods/prepend.lisp
(file).
src/matr
(module).
rotate-around
(method).
rotate-v
(method).
rotate-x
(method).
rotate-y
(method).
rotate-z
(method).
math/matr/src/matr/methods/row.lisp
methods/rotate.lisp
(file).
src/matr
(module).
row
(method).
row
(method).
row
(method).
(setf row)
(method).
(setf row)
(method).
(setf row)
(method).
(setf row)
(method).
math/matr/src/matr/methods/rows.lisp
methods/row.lisp
(file).
src/matr
(module).
math/matr/src/matr/methods/squarep.lisp
methods/rows.lisp
(file).
src/matr
(module).
math/matr/src/matr/methods/swap-cols.lisp
methods/squarep.lisp
(file).
src/matr
(module).
swap-cols
(method).
swap-cols*
(method).
math/matr/src/matr/methods/swap-rows.lisp
methods/swap-cols.lisp
(file).
src/matr
(module).
swap-rows
(method).
swap-rows*
(method).
math/matr/src/matr/methods/transpose.lisp
methods/swap-rows.lisp
(file).
src/matr
(module).
math/matr/src/matr/methods/unite-cols.lisp
methods/transpose.lisp
(file).
src/matr
(module).
unite-cols
(method).
math/matr/src/matr/methods/unite-rows.lisp
methods/unite-cols.lisp
(file).
src/matr
(module).
unite-rows
(method).
math/matr/src/matr/matr-doc.lisp
methods/unite-rows.lisp
(file).
src/matr
(module).
math/stat/src/stat/stat.lisp
src/stat
(module).
aver-dmax-dmin
(function).
aver-max-min
(function).
average
(function).
average-not-nil-value
(function).
average-value
(function).
clean-flagrant-error
(function).
clean-max-flagrant-error
(function).
clean-min-flagrant-error
(function).
combinations
(function).
delta-max-value
(function).
delta-min-value
(function).
dispersion
(function).
dispersion-not-nil
(function).
factorial
(function).
grubbs
(function).
grubbs-max
(function).
grubbs-min
(function).
make-random-value-list
(function).
max-not-nil-value
(function).
max-value
(function).
min-not-nil-value
(function).
min-value
(function).
permutations
(function).
standard-deviation
(function).
standard-deviation-not-nil
(function).
variation-coefficient
(function).
variation-coefficient-not-nil
(function).
*g-t*
(special variable).
remove-first
(function).
remove-last
(function).
math/geom/src/geom/geom.lisp
src/geom
(module).
circle-area-by-diameter
(function).
circle-area-by-radius
(function).
diameter-by-radius
(function).
equivalent-diameter
(function).
radius-by-diameter
(function).
regular-tetrahedron-side-by-volume
(function).
regular-tetrahedron-volume-by-side
(function).
regular-triangle-area-by-side
(function).
regular-triangle-side-by-area
(function).
triangle-area-by-sides
(function).
math/equation/src/equation/equation.lisp
src/equation
(module).
<cubic>
(class).
<linear>
(class).
<quadric>
(class).
<quartic>
(class).
coeff-a
(reader method).
coeff-a
(reader method).
coeff-a
(reader method).
coeff-a
(reader method).
(setf coeff-a)
(writer method).
(setf coeff-a)
(writer method).
(setf coeff-a)
(writer method).
(setf coeff-a)
(writer method).
coeff-b
(reader method).
coeff-b
(reader method).
coeff-b
(reader method).
coeff-b
(reader method).
(setf coeff-b)
(writer method).
(setf coeff-b)
(writer method).
(setf coeff-b)
(writer method).
(setf coeff-b)
(writer method).
coeff-c
(reader method).
coeff-c
(reader method).
coeff-c
(reader method).
(setf coeff-c)
(writer method).
(setf coeff-c)
(writer method).
(setf coeff-c)
(writer method).
coeff-d
(reader method).
coeff-d
(reader method).
(setf coeff-d)
(writer method).
(setf coeff-d)
(writer method).
coeff-e
(reader method).
(setf coeff-e)
(writer method).
func
(generic function).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
roots
(generic function).
tab
(generic function).
math/equation/src/equation/equation-doc.lisp
equation.lisp
(file).
src/equation
(module).
math/smooth/src/smooth/smooth.lisp
src/smooth
(module).
cauchy-smoothing
(function).
exp-smoothing
(function).
gauss-smoothing
(function).
hann-smoothing
(function).
weight-func-list
(function).
weight-func-p
(function).
math/smooth/src/smooth/smooth-doc.lisp
smooth.lisp
(file).
src/smooth
(module).
math/rnd/src/rnd/rnd.lisp
src/rnd
(module).
make-1d-list
(function).
make-2d-list
(function).
make-ls-system
(function).
math/ls-gauss/src/ls-gauss/ls-gauss.lisp
src/ls-gauss
(module).
backward-run
(generic function).
convert-to-triangular
(generic function).
determiant
(method).
determiant
(method).
singular-p
(method).
singular-p
(method).
solve-x
(generic function).
math/ls-gauss/src/ls-gauss/ls-gauss-doc.lisp
ls-gauss.lisp
(file).
src/ls-gauss
(module).
math/ls-gsll/src/ls-gsll/ls-gsll.lisp
src/ls-gsll
(module).
math/ls-gsll/src/ls-gsll/ls-gsll-doc.lisp
ls-gsll.lisp
(file).
src/ls-gsll
(module).
math/ls-rotation/src/ls-rotation/ls-rotation.lisp
src/ls-rotation
(module).
solve-x
(generic function).
math/ls-rotation/src/ls-rotation/ls-rotation-doc.lisp
ls-rotation.lisp
(file).
src/ls-rotation
(module).
math/gnuplot/src/gnuplot/gnuplot.lisp
src/gnuplot
(module).
*default-gnuplot-direcroty*
(special variable).
*palette-defined*
(special variable).
*palette-defined-01*
(special variable).
*pm3d-map*
(special variable).
*term-pdfcairo*
(special variable).
*term-pngcairo*
(special variable).
gnuplot-data-plot
(function).
gnuplot-data-splot
(function).
gnuplot-data-to-file
(generic function).
gnuplot-plot
(function).
gnuplot-splot
(function).
make-plot-data-file
(function).
make-table
(function).
print-object
(method).
print-object
(method).
print-object
(method).
rgb
(function).
table-apply
(function).
<term>
(class).
file-name
(function).
find-font-family
(function).
gnuplot-vector
(class).
gnuplot-vector-direction
(reader method).
(setf gnuplot-vector-direction)
(writer method).
gnuplot-vector-origin
(reader method).
(setf gnuplot-vector-origin)
(writer method).
make-2d-list-by-func
(function).
move
(generic function).
output
(method).
output
(method).
plot
(method).
table-apply-0
(function).
table-apply-1
(function).
term-pdfcairo
(class).
term-pngcairo
(class).
math/gnuplot/src/gnuplot/gnuplot-doc.lisp
gnuplot.lisp
(file).
src/gnuplot
(module).
math/appr/src/appr/appr.lisp
src/appr
(module).
*apr-args-1*
(special variable).
*apr-args-2*
(special variable).
*apr-func-1-2*
(special variable).
*apr-func-1-3*
(special variable).
*apr-func-1-4*
(special variable).
*apr-func-1-5*
(special variable).
*apr-func-2-4*
(special variable).
*apr-func-2-5*
(special variable).
*apr-func-2-6*
(special variable).
*apr-func-2-7*
(special variable).
*apr-func-2-8*
(special variable).
*apr-func-2-9*
(special variable).
<appr-bilinear>
(class).
<appr-linear>
(class).
appr-bilinear-a2d-func
(reader method).
(setf appr-bilinear-a2d-func)
(writer method).
appr-bilinear-x1
(reader method).
(setf appr-bilinear-x1)
(writer method).
appr-bilinear-x2
(reader method).
(setf appr-bilinear-x2)
(writer method).
appr-linear-a1d-func
(reader method).
(setf appr-linear-a1d-func)
(writer method).
appr-linear-x1
(reader method).
(setf appr-linear-x1)
(writer method).
appr-table
(function).
approximate
(method).
approximate
(method).
averaging-function-defun
(function).
averaging-function-lambda
(function).
initialize-instance
(method).
initialize-instance
(method).
make-appr-linear
(function).
make-approximation-defun
(macro).
make-approximation-lambda
(macro).
make-least-squares-matrix
(function).
make-linear-interpolation
(function).
make-refine-smoothing
(method).
make-refine-smoothing
(method).
make-refine-smoothing
(method).
print-object
(method).
print-object
(method).
refine-smoothing-by-points
(generic function).
smooth-by-points
(generic function).
approximation-bilinear
(function).
approximation-linear
(function).
averaging-function-body
(function).
index-by-value
(function).
make-bilinear-approximation-array
(function).
make-bilinear-interpolation
(function).
make-linear-approximation-array
(function).
math/series/src/series/series.lisp
src/series
(module).
<arithmetic>
(class).
<arithmetic>-a
(reader method).
(setf <arithmetic>-a)
(writer method).
<arithmetic>-d
(reader method).
(setf <arithmetic>-d)
(writer method).
<geometric>
(class).
<geometric>-b
(reader method).
(setf <geometric>-b)
(writer method).
<geometric>-q
(reader method).
(setf <geometric>-q)
(writer method).
first-by-number&summ
(generic function).
item
(generic function).
print-object
(method).
print-object
(method).
scale-by-number&summ
(generic function).
summ
(generic function).
<series>
(class).
items-by-summ
(generic function).
math/series/src/series/series-doc.lisp
series.lisp
(file).
src/series
(module).
math/half-div/src/half-div/half-div.lisp
src/half-div
(module).
boole-to-int
(function).
epsylon
(function).
same-znak
(function).
math/half-div/src/half-div/half-div-doc.lisp
half-div.lisp
(file).
src/half-div
(module).
Packages are listed by definition order.
math/rnd
math
math/core
math/gnuplot
math/appr
math/ls-gauss
math/coord
math/half-div
math/smooth
math/equation
math/ls-rotation
math/ls-gsll
math/series
math/stat
math/geom
math/matr
math/rnd
@b(Описание:) пакет @b(math/rnd) содержит функции, предназначенные для создания случайных одномерных (1d-list) и двумерных (2d-list) списков, а также систем линейных уравнений со сручайным наперед заданным решением.
common-lisp
.
make-1d-list
(function).
make-2d-list
(function).
make-ls-system
(function).
math/core
common-lisp
.
*semi-equal-relativ*
(special variable).
*semi-equal-zero*
(special variable).
+significant-digits+
(special variable).
depth-sphere-along-cone
(function).
distance
(generic function).
distance-relative
(generic function).
exclude-nil-from-list
(function).
matr-name-*
(generic function).
norma
(generic function).
round-to-significant-digits
(function).
semi-equal
(generic function).
split-range
(function).
split-range-at-center
(function).
split-range-by-func
(function).
square
(function).
summ-distance
(generic function).
e-value
(function).
math/gnuplot
common-lisp
.
math/core
.
*default-gnuplot-direcroty*
(special variable).
*palette-defined*
(special variable).
*palette-defined-01*
(special variable).
*pm3d-map*
(special variable).
*term-pdfcairo*
(special variable).
*term-pngcairo*
(special variable).
gnuplot-data-plot
(function).
gnuplot-data-splot
(function).
gnuplot-data-to-file
(generic function).
gnuplot-plot
(function).
gnuplot-splot
(function).
make-plot-data-file
(function).
make-table
(function).
rgb
(function).
table-apply
(function).
<term>
(class).
file-name
(function).
find-font-family
(function).
gnuplot-vector
(class).
gnuplot-vector-direction
(generic reader).
(setf gnuplot-vector-direction)
(generic writer).
gnuplot-vector-origin
(generic reader).
(setf gnuplot-vector-origin)
(generic writer).
make-2d-list-by-func
(function).
move
(generic function).
output
(generic function).
plot
(generic function).
table-apply-0
(function).
table-apply-1
(function).
term-pdfcairo
(class).
term-pngcairo
(class).
math/appr
common-lisp
.
*apr-args-1*
(special variable).
*apr-args-2*
(special variable).
*apr-func-1-2*
(special variable).
*apr-func-1-3*
(special variable).
*apr-func-1-4*
(special variable).
*apr-func-1-5*
(special variable).
*apr-func-2-4*
(special variable).
*apr-func-2-5*
(special variable).
*apr-func-2-6*
(special variable).
*apr-func-2-7*
(special variable).
*apr-func-2-8*
(special variable).
*apr-func-2-9*
(special variable).
<appr-bilinear>
(class).
<appr-linear>
(class).
appr-bilinear-a2d-func
(generic reader).
(setf appr-bilinear-a2d-func)
(generic writer).
appr-bilinear-x1
(generic reader).
(setf appr-bilinear-x1)
(generic writer).
appr-bilinear-x2
(generic reader).
(setf appr-bilinear-x2)
(generic writer).
appr-linear-a1d-func
(generic reader).
(setf appr-linear-a1d-func)
(generic writer).
appr-linear-x1
(generic reader).
(setf appr-linear-x1)
(generic writer).
appr-table
(function).
approximate
(generic function).
averaging-function-defun
(function).
averaging-function-lambda
(function).
make-appr-linear
(function).
make-approximation-defun
(macro).
make-approximation-lambda
(macro).
make-least-squares-matrix
(function).
make-linear-interpolation
(function).
make-refine-smoothing
(generic function).
refine-smoothing-by-points
(generic function).
smooth-by-points
(generic function).
approximation-bilinear
(function).
approximation-linear
(function).
averaging-function-body
(function).
index-by-value
(function).
make-bilinear-approximation-array
(function).
make-bilinear-interpolation
(function).
make-linear-approximation-array
(function).
math/ls-gauss
common-lisp
.
backward-run
(generic function).
convert-to-triangular
(generic function).
determiant
(generic function).
singular-p
(generic function).
solve-x
(generic function).
math/coord
coord
common-lisp
.
math/core
.
cartesian->polar
(function).
cartesian->spherical
(function).
double-float-list
(function).
dtr
(function).
point-3d->4d
(function).
point-4d->3d
(function).
polar->cartesian
(function).
rtd
(function).
single-float-list
(function).
spherical->cartesian
(function).
math/half-div
@b(Описание:) пакет @b( half-div) реализует алгоритм половинного деления для выполнения поиска корня функции на отрезке.
common-lisp
.
boole-to-int
(function).
epsylon
(function).
same-znak
(function).
math/smooth
common-lisp
.
cauchy-smoothing
(function).
exp-smoothing
(function).
gauss-smoothing
(function).
hann-smoothing
(function).
weight-func-list
(function).
weight-func-p
(function).
math/equation
common-lisp
.
<cubic>
(class).
<linear>
(class).
<quadric>
(class).
<quartic>
(class).
coeff-a
(generic reader).
(setf coeff-a)
(generic writer).
coeff-b
(generic reader).
(setf coeff-b)
(generic writer).
coeff-c
(generic reader).
(setf coeff-c)
(generic writer).
coeff-d
(generic reader).
(setf coeff-d)
(generic writer).
coeff-e
(generic reader).
(setf coeff-e)
(generic writer).
func
(generic function).
roots
(generic function).
tab
(generic function).
math/ls-gsll
@b(Описание:) пакет @b(math/ls-gsll) пределяет функции для решения СЛАУ методом LU-разложения при помощи системσ GSLL.
common-lisp
.
math/series
@b(Описание:) пакет @b(math/series) определяет некоторые операции с прогрессиями.
common-lisp
.
<arithmetic>
(class).
<arithmetic>-a
(generic reader).
(setf <arithmetic>-a)
(generic writer).
<arithmetic>-d
(generic reader).
(setf <arithmetic>-d)
(generic writer).
<geometric>
(class).
<geometric>-b
(generic reader).
(setf <geometric>-b)
(generic writer).
<geometric>-q
(generic reader).
(setf <geometric>-q)
(generic writer).
first-by-number&summ
(generic function).
item
(generic function).
scale-by-number&summ
(generic function).
summ
(generic function).
<series>
(class).
items-by-summ
(generic function).
math/stat
common-lisp
.
math/core
.
aver-dmax-dmin
(function).
aver-max-min
(function).
average
(function).
average-not-nil-value
(function).
average-value
(function).
clean-flagrant-error
(function).
clean-max-flagrant-error
(function).
clean-min-flagrant-error
(function).
combinations
(function).
delta-max-value
(function).
delta-min-value
(function).
dispersion
(function).
dispersion-not-nil
(function).
factorial
(function).
grubbs
(function).
grubbs-max
(function).
grubbs-min
(function).
make-random-value-list
(function).
max-not-nil-value
(function).
max-value
(function).
min-not-nil-value
(function).
min-value
(function).
permutations
(function).
standard-deviation
(function).
standard-deviation-not-nil
(function).
variation-coefficient
(function).
variation-coefficient-not-nil
(function).
*g-t*
(special variable).
remove-first
(function).
remove-last
(function).
math/geom
common-lisp
.
circle-area-by-diameter
(function).
circle-area-by-radius
(function).
diameter-by-radius
(function).
equivalent-diameter
(function).
radius-by-diameter
(function).
regular-tetrahedron-side-by-volume
(function).
regular-tetrahedron-volume-by-side
(function).
regular-triangle-area-by-side
(function).
regular-triangle-side-by-area
(function).
triangle-area-by-sides
(function).
math/matr
@b(Описание:) пакет @b(math/matr) определяет некоторые операции
над матрицами, представленными в виде:
@begin(list)
@item(2d-list - списком состоящим из списков;)
@item(array - массив c размерностью 2d;)
@item(<matrix> - матрица c размерностью 2d.)
@end(list)
common-lisp
.
math/coord
.
<matrix>
(class).
add
(generic function).
anti-diagonal
(generic function).
(setf anti-diagonal)
(generic function).
append-col
(generic function).
append-row
(generic function).
average-col-not-nil-value
(generic function).
average-col-value
(generic function).
average-not-nil-value
(generic function).
average-row-not-nil-value
(generic function).
average-row-value
(generic function).
average-value
(generic function).
col
(generic function).
(setf col)
(generic function).
cols
(generic function).
copy
(generic function).
detach-last-col
(function).
dimensions
(generic function).
equivalent
(generic function).
get-last-col
(function).
lm-print
(function).
lv-print
(function).
main-diagonal
(generic function).
(setf main-diagonal)
(generic function).
make
(function).
make-vector-n
(function).
matr-eval-*
(generic function).
matr-new
(function).
matrix->2d-list
(generic function).
matrix-data
(generic reader).
(setf matrix-data)
(generic writer).
max-col-not-nil-value
(function).
max-row-not-nil-value
(function).
move-v
(generic function).
move-xyz
(generic function).
mref
(generic function).
(setf mref)
(generic function).
multiply
(generic function).
normalize
(function).
prepend-col
(generic function).
prepend-row
(generic function).
prepend-rows
(generic function).
rotate-around
(generic function).
rotate-v
(generic function).
rotate-x
(generic function).
rotate-y
(generic function).
rotate-z
(generic function).
row
(generic function).
(setf row)
(generic function).
rows
(generic function).
squarep
(generic function).
swap-cols
(generic function).
swap-cols*
(generic function).
swap-rows
(generic function).
swap-rows*
(generic function).
transform
(generic function).
transpose
(generic function).
unite-cols
(generic function).
unite-rows
(generic function).
matr-equal*
(generic function).
matr-name-*
(generic function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Аргументы для функции одного параметра. @begin[lang=lisp](code) ’(x1 yy) @end(code)
Аргументы для функции двух параметров. @begin[lang=lisp](code) ’(x1 x2 yy) @end(code)
Шаблон для построения линейной функции одного параметра: x1 с двумя
коэффициентами.
@begin[lang=lisp](code) ’((x1) (1.0) (yy)) @end(code) @begin[lang=scribe](code) yy(x@sub(1))=a·x@sub(1)+b @end(code)
Шаблон для построения квадратичной функции одного параметра: x1 c тремя коэффициентами. @begin[lang=lisp](code) ’((x1 x1) (x1) (1.0) (yy)) @end(code) @begin[lang=scribe](code) yy(x@sub(1))=a·x@sub(1)@sup(2)+b·x@sub(1)+c @end(code)
Шаблон для построения квадратичной функции одного параметра: x1 c
четырьмя коэффициентами.
@begin[lang=lisp](code) ’((x1 x1 x1) (x1 x1) (x1) (1.0) (yy)) @end(code)
@begin[lang=scribe](code) yy(x@sub(1))=a·x@sub(1)@sup(3)+b·x@sub(1)@sup(2)+c·x@sub(1)+d @end(code)
Шаблон для построения квадратичной функции одного параметра: x1 c пятью коэффициентами.
@begin[lang=lisp](code) ’((x1 x1 x1 x1) (x1 x1 x1) (x1 x1) (x1) (1.0) (yy)) @end(code)
@begin[lang=scribe](code) yy(x@sub(1))=a·x@sub(1)@sup(4)+b·x@sub(1)@sup(3)+c·x@sub(1)@sup(2)+d·x@sub(1)+e @end(code)
@b(Описание:) *apr-func-2-4* шаблон для построения функции двух параметров:
x1 и x2 c четырьмя коэффициентами.
@begin[lang=lisp](code) ’((x1 x2) (x1) (x2) (1.0) (yy)) @end(code)
@begin[lang=scribe](code)
yy(x@sub(1))=a@sub(1)·x@sub(1)·x@sub(2)+a@sub(2)·x@sub(1)+a@sub(3)·x@sub(2)+a@sub(4) @end(code)
@b(Описание:) *apr-func-2-5* шаблон для построения функции двух параметров:
x1 и x2 c пятью коэффициентами.
@begin[lang=lisp](code) ’((x1 x1) (x2 x2) (x1) (x2) (1.0) (yy)) @end(code)
@begin[lang=scribe](code)
yy(x@sub(1))=a@sub(1)·x@sub(1)@sup(2)+a@sub(2)·x@sub(2)@sup(2)+a@sub(3)·x@sub(1)+a@sub(4)·x@sub(2)+a@sub(5) @end(code)
@b(Описание:) *apr-func-2-6* шаблон для построения функции двух
параметров: x1 и x2 c шестью коэффициентами.
@begin[lang=lisp](code) ’((x1 x1) (x2 x2) (x1 x2) (x1) (x2) (1.0) (yy)) @end(code)
@begin[lang=scribe](code)
yy(x@sub(1))=a@sub(1)·x@sub(1)@sup(2)+a@sub(2)·x@sub(2)@sup(2)+a@sub(3)·x@sub(1)·x@sub(2)+a@sub(5)·x@sub(1)+a@sub(6)·x@sub(2)+a@sub(7) @end(code)
@b(Описание:) *apr-func-2-7* шаблон для построения функции двух
параметров: x1 и x2 c семью коэффициентами.
@begin[lang=lisp](code) ’((x1 x1 x2) (x1 x2 x2) (x1 x1) (x2 x2) (x1) (x2) (1.0) (yy)) @end(code)
@begin[lang=scribe](code)
yy(x@sub(1))=a@sub(1)·x@sub(1)@sup(2)·x@sub(2)+a@sub(2)·x@sub(1)·x@sub(2)@sup(2)+a@sub(3)·x@sub(1)@sup(2)+a@sub(4)·x@sub(2)@sup(2)+a@sub(5)·x@sub(1)+a@sub(6)·x@sub(2)+a@sub(7)@end(code)
@b(Описание:) *apr-func-2-8* шаблон для построения функции двух параметров: x1 и x2 c восемью коэффициентами.
@begin[lang=lisp](code) ’((x1 x1 x2) (x1 x2 x2) (x1 x1) (x2 x2) (x1 x2) (x1) (x2) (1.0) (yy)) @end(code)
@begin[lang=scribe](code)
yy(x@sub(1))=a@sub(1)·x@sub(1)@sup(2)·x@sub(2)+a@sub(2)·x@sub(1)·x@sub(2)@sup(2)+a@sub(3)·x@sub(1)@sup(2)+a@sub(4)·x@sub(2)@sup(2)+a@sub(5)·x@sub(1)·x@sub(2)+a@sub(6)·x@sub(1)+a@sub(7)·x@sub(2)+a@sub(8)@end(code)
Шаблон для построения функции двух параметров: x1 и x2 c девятью коэффициентами.
@begin[lang=lisp](code) ’((x1 x1 x2 x2) (x1 x1 x2) (x1 x2 x2) (x1 x1) (x2 x2) (x1 x2) (x1) (x2) (1.0) (yy)) @end(code)
@begin[lang=scribe](code)
yy(x@sub(1))=a@sub(1)·x@sub(1)@sup(2)·x@sub(2)@sup(2)+ a@sub(2)·x@sub(1)@sup(2)·x@sub(2)+ a@sub(3)·x@sub(1)·x@sub(2)@sup(2)+ a@sub(4)·x@sub(1)@sup(2)+ a@sub(5)·x@sub(2)@sup(2)+ a@sub(6)·x@sub(1)·x@sub(2)+ a@sub(7)·x@sub(1)+ a@sub(8)·x@sub(2)+ a@sub(9)
@end(code)
Каталог для вывода по умолчанию.
STUB
STUB
STUB
@b(Описание:) переменная @b(*semi-equal-relativ*) определяет относительную величину, на которую могут отличаться значения считающиеся равными при срвнении из с помощью функции @b(semi-equal).
@b(Описание:) переменная @b(*semi-equal-zero*) определяет абсолютную величину, на которую могут отличаться значения считающиеся равными при срвнении из с помощью функции @b(semi-equal).
Определяет количество значащих цифр при округлении по умолчанию.
@b(Описание:) макрос @b(make-approximation-defun) определяет
аппроксимиующую функцию с именем @b(func-name), построенной на
основании списка, каждый элемент которого является списком, содержащим значения
аргументов функции и значение функции, соответствующее этим аргументам.
@b(Пример использования:)
@begin[lang=lisp](code)
(make-approximation-defun (xx yy)
((xx xx) (xx) (1.0) (yy))
((0.0 0.0) (1.0 1.0) (2.0 4.0) (3.0 9.0))
square-func)
(square-func 1.0) => 1.0d0
(square-func 3.0) => 9.0d0
(square-func 5.0) => 25.0d0
@end(code)
@b(Описание:) макрос @b(make-approximation-lambda) определяет аппроксимиующую lambda-функцию, построенную на основании списка, каждый элемент которого является списком, содержащим значения аргументов функции и значение функции, соответствующее этим аргументам.
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((func
(make-approximation-lambda (xx yy)
((xx xx) (xx) (1.0) (yy))
((0.0 0.0) (1.0 1.0) (2.0 4.0) (3.0 9.0)))))
(funcall func 1.0) ;=> 1.0d0
(funcall func 3.0) ;=> 9.0d0
(funcall func 5.0)) ;=> 25.0d0
@end(code)
@b(Описание:) функция @b(appr-table) возвращает результат линейной интерполяции (или экстраполяции) для значения @b(x) на таблице @b(table).
@b(Пример использования:)
@begin[lang=lisp](code)
(appr-table 0.5 ’((0.0 0.0) (1.0 1.0) (2.0 4.0) (4.0 0.0))) => 0.5
(appr-table 1.5 ’((0.0 0.0) (1.0 1.0) (2.0 4.0) (4.0 0.0))) => 2.5
(appr-table 3.0 ’((0.0 0.0) (1.0 1.0) (2.0 4.0) (4.0 0.0))) => 2.0
Тест: (test-approximation-appr-table)
@end(code)
@b(Описание:) функция @b(aver-max-min) возвращает список, состоящий из:
@begin(list)
@item(из среднего значения величины;)
@item(отклонения максимального занчения в выборке от среднего;)
@item(отклонения минимального занчения в выборке от среднего.)
@end(list)
Входящие в список величины округляются до количества значащих цифр равных
@b(significant-digits).
@b(Пример использования:)
@begin[lang=lisp](code)
(aver-dmax-dmin ’(17.3869333 19.938901 12.41331 11.828626 10.348187 12.323172))
=> (14.04 5.9 -3.69)
@end(code)
@b(Описание:) функция @b(aver-max-min) возвращает список, состоящий из:
@begin(list)
@item(среднего значения величины;)
@item(максимального значения величины;)
@item( минимального значения величины.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(aver-max-min ’(7.3869333 9.938901 8.541331 10.828626 9.348187 11.323172))
=> (9.561192 11.323172 7.3869333)
@end(code)
@b(Описание:) функция @b(average) возврвщает среднее значение для
перечня величин.
@b(Пример использования:)
@begin[lang=lisp](code)
(average 1.1 1.0 0.9 1.2 0.8) => 1.0
@end(code)
@b(Описание:) функция @b(average-not-nil-value) возвращает среднее
значение для списка величин.
@b(Переменые:)
@begin(list)
@item(x - список, содержащий числа или nil.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(average-not-nil-value ’(1.1 1.0 nil 0.9 nil 1.2 nil 0.8)) => 1.0
@end(code)
@b(Описание:) функция @b(average-value) возвращает среднее значение
для списка величин.
@b(Пример использования:) @begin[lang=lisp](code)
(average-value ’(1.1 1.0 0.9 1.2 0.8)) => 1.0
@end(code)
@b(Описание:) функция @b(averaging-function-defun) возвращает исходный код
именований аппроксимиующей функции, построенной на основании списка,
каждый элемент которого является списком, содержащим значения
аргументов функции и значение функции, соответствующее этим аргументам.
@b(Переменые:)
@begin(list)
@item(args-fuc-names - список, содержащий имена аргументов и функции ;)
@item(func-view - вид функциональной зависимости. Функциональная
зависимость должна использовать имена из args-fuc-names ;)
@item(args-results - списка, каждый элемент которого является списком,
содержащим значения аргументов функции и значение функции
(соответствующее этим аргументам).)
@item(func-name - имя функции.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(averaging-function-defun ’(xx yy)
’((xx xx) (xx) (1.0) (yy))
’((0.0 0.0) (1.0 1.0) (2.0 4.0) (3.0 9.0))
’square-func)
=> (DEFUN SQUARE-FUNC (XX) (+ (* 1.0d0 XX XX) (* 0.0d0 XX) (* 0.0d0 1.0)))
(averaging-function-defun ’(xx yy)
’((xx xx xx) (xx xx) (xx) (1.0) (yy))
’((-2.0 -8.0) (-1.0 -1.0) (0.0 0.0) (1.0 1.0) (2.0 8.0))
’cubic-func)
=> (DEFUN CUBIC-FUNC (XX) (+ (* 1.0d0 XX XX XX) (* 0.0d0 XX XX) (* 0.0d0 XX) (* 0.0d0 1.0)))
@end(code)
@b(Описание:) функция @b(averaging-function-lambda) возвращает исходный код
аппроксимиующей lambda-функции, построенной на основании списка,
каждый элемент которого является списком, содержащим значения
аргументов функции и значение функции, соответствующее этим аргументам.
@b(Переменые:)
@begin(list)
@item(args-fuc-names - список, содержащий имена аргументов и функции ;)
@item(func-view - вид функциональной зависимости. Функциональная
зависимость должна использовать имена из args-fuc-names ;)
@item(args-results - списка, каждый элемент которого является списком,
содержащим значения аргументов функции и значение функции
(соответствующее этим аргументам).)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(averaging-function-lambda ’(xx yy)
’((xx xx) (xx) (1.0) (yy))
’((0.0 0.0) (1.0 1.0) (2.0 4.0) (3.0 9.0)))
=> (LAMBDA (XX) (+ (* 1.0d0 XX XX) (* 0.0d0 XX) (* 0.0d0 1.0)))
(averaging-function-lambda ’(xx yy)
’((xx xx xx) (xx xx) (xx) (1.0) (yy))
’((-2.0 -8.0) (-1.0 -1.0) (0.0 0.0) (1.0 1.0) (2.0 8.0)))
=> (LAMBDA (XX) (+ (* 1.0d0 XX XX XX) (* 0.0d0 XX XX) (* 0.0d0 XX) (* 0.0d0 1.0)))
@end(code)
@b(Описание:) функция @b(cartesian->polar) переводит декартовы координаты в полярные.
@b(Переменые:)
@begin(list)
@item(radius-angle - список, состоящий из двух элементов: радиус-вектора
и угла, заданного в радианах.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(cartesian->polar (list 10.0 10)) (14.142136 0.7853982)
@end(code)
@b(Описание:) функция @b(cartesian->spherical) выполняет преобразование координат
из декартовых в сферические.
@b(Переменые:)
@begin(list)
@item(x-y-z - список, содержащий соответствующие координаты.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(cartesian->spherical ’(61.237243569579455d0 35.35533905932737d0 70.71067811865476d0))
=>(100.0d0 0.5235987755982988d0 0.7853981633974483d0)
@end(code)
@b(Описание:) функция @b(cauchy-smoothing)
@b(Пример использования:)
@begin[lang=lisp](code)
(loop :for d :from 0 :to 4 :by 1/10 :collect
(list d (cauchy-smoothing d)))
@end(code)
@b(Описание:) функция @b(circle-area-by-radius)
@b(Описание:) функция @b(clean-flagrant-error) удаляет из статистики грубые промахи.
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((lst ’(10.0 10.1 10.15 10.2 12.0 9.9 5.0 9.9 10.1)))
(clean-flagrant-error lst)) (9.9 9.9 10.0 10.1 10.1 10.15 10.2)
@end(code)
@b(Описание:) функция @b(clean-max-flagrant-error) удаляет из статистики грубые промахи.
@b(Описание:) функция @b(clean-min-flagrant-error) удаляет из статистики грубые промахи.
Возвращает отклонение максимальной величины от среднего значения
для списка величин.
@b(Пример использования:)
@begin[lang=lisp](code)
(delta-max-value ’(1.1 1.0 0.9 1.2 0.8)) => 0.20000005
@end(code)
@b(Описание:) функция @b(delta-min-value)
возвращает отклонение минимальной величины от среднего значения
для списка величин.
@b(Пример использования:)
@begin[lang=lisp](code)
(delta-min-value ’(1.1 1.0 0.9 1.2 0.8)) -0.19999999
@end(code)
@b(Описание:) функция @b(depth-sphere-along-cone) возвращает заглубление сферы с радиусом R в конуc с углом при вершине равным alpha от линии пересечения конуса с цилиндром.
@b(Описание:) функция @b(detach-last-col) возвращает матрицу,
представленную в виде списка, образованную удалением последнего столбца
(последнего элемента каждой строки).
@b(Пример использования:)
@begin[lang=lisp](code)
(detach-last-col
’((1 2 3 6)
(2 3 4 9)
(3 4 5 12))) => ((1 2 3)
(2 3 4)
(3 4 5))
@end(code)
@b(Описание:) функция dispersion возвращает дисперсию для списка
величин.
@b(Пример использования:)
@begin[lang=lisp](code)
(dispersion ’(1.1 1.0 0.9 1.2 0.8)) => 0.025000006
@end(code)
@b(Описание:) функция @b(dtr) переводит значение, заданное в градусах, в радианы.
@b(Пример использования:)
@begin[lang=lisp](code)
(dtr (rtd 1/2)) => 0.5d0
@end(code)
@link[uri="https://ru.wikipedia.org/wiki/Гидравлический_диаметр/"](Гидравлический_диаметр)
@link[uri="https://en.wikipedia.org/wiki/Hydraulic_diameter/"](Hydraulic_diameter)
@b(Описание:) функция @b(exclude-nil-from-list) возвращает список в
котором нет nil-элементов (они исключаются).
@b(Пример использования:) @begin[lang=lisp](code)
(exclude-nil-from-list ’(1.1 1.0 nil 0.9 nil 1.2 nil 0.8))
=> (1.1 1.0 0.9 1.2 0.8)
@end(code)
@b(Описание:) функция @b(exp-smoothing)
@b(Пример использования:)
@begin[lang=lisp](code)
(loop :for d :from 0 :to 4 :by 1/10 :collect
(list d (exp-smoothing d)))
@end(code)
@b(Описание:) функция @b(gauss-smoothing)
@b(Пример использования:)
@begin[lang=lisp](code)
(loop :for d :from 0 :to 4 :by 1/10 :collect
(list d (gauss-smoothing d)))
@end(code)
@b(Описание:) функция @b(get-last-col) возвращает последний столбец
матрицы, представленной в виде списка.
@b(Пример использования:)
@begin[lang=lisp](code)
(get-last-col
’((1 2 3 6)
(2 3 4 9)
(3 4 5 12))) =>(6 9 12)
@end(code)
@b(Описание:) функция @b(gnuplot-data-plot)
@b(Пример использования:)
@begin[lang=lisp](code)
;;;; Пример 1
(math:gnuplot-data-plot
"plot2"
(mapcar #’(lambda (x) (list x (sin x)(sqrt x)) )
(math:split-range 0.0 10 1000) )
:plot "plot ’plot2.data’ u 1:2 with lines lt 1, ’plot2.data’ u 1:3 with lines lt 2 ")
@end(code)
STUB
STUB
Осуществляет подготовку данных, содержащихся в файле f-name с расширением data. Данные в файле должны иметь формат gp-list.
@b(Описание:) функция grubbs вычисляет значение критерия
Граббса (см. п. 6.1 см. ГОСТ Р 8.736-2011).
@b(Переменые:)
@begin(list)
@item(n - количество повторяющихся измерений величины.)
@item(q - уровень значимости в доях.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((lst ’(10.0 10.1 10.15 10.2 10.8 9.9 9.85 9.9 10.1)))
(grubbs (length lst))) => 2.215
@end(code)
@b(Описание:) функция grubbs-max возврвщает значения критерия Граббса
для максимального значения списка величин.
@b(Переменые:)
@begin(list)
@item(x - список, содержащий числовые значения.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((lst ’(10.0 10.1 10.15 10.2 10.8 9.9 9.85 9.9 10.1)))
(grubbs-max lst)) => 2.4095862
@end(code)
@b(Описание:) функция grubbs-min возврвщает значения критерия Граббса
для минимального значения списка величин.
@b(Переменые:)
@begin(list)
@item(x - список, содержащий числовые значения.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((lst ’(10.0 10.1 10.15 10.2 10.8 9.9 9.7 9.9 10.1)))
(grubbs-min lst)) => 1.2863455
@end(code)
@b(Описание:) функция @b(h-div) возвращает результат решения
уравнения func(x)=0 методом половинного деления.
Поиск решения выполняется на отрезке [a,b].
@b(Переменые:)
@begin(list)
@item(a - левая граница отрезка;)
@item(b - правая граница отрезка;)
@item(func - вид функциональной зависимости;)
@item(eps - комплексная точность поиска решения;)
@item(iters - максимальное количество итераций для достижения заданной точности.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(defun x2(x) (- (* x (log x)) 10000.))
(h-div 2.0 100000.0 #’x2 :iters 50)
@end(code)
@b(Описание:) функция @b(h-div-lst) возвращает результат решения
уравнения func(X[0],X[1],...,X[n],...,X[m])=0 методом половинного
деления.
Поиск решения выполняется на отрезке [a,b] для аргумента с номером
n (первый аргумет имеет номер 0).
@b(Переменые:)
@begin(list)
@item(a - левая граница отрезка;)
@item(b - правая граница отрезка;)
@item(func - вид функциональной зависимости;)
@item(n - номер аргумента в списке аргументов функции при изменении
которого на отрезке [a,b] выполняется поиск решения;)
@item(p_lst - список аргуметов функции;)
@item(eps - комплексная точность поиска решения;)
@item(iters - максимальное количество итераций для достижения
заданной точности.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(defun xy2(x y) (- (* x (log x)) y))
(h-div-lst 2.0 100000.0 #’xy2 0 ’(t 10000.) :iters 50)
@end(code)
@b(Описание:) функция @b(hann-smoothing)
@b(Пример использования:)
@begin[lang=lisp](code)
(loop :for d :from 0 :to 4 :by 0.1 :do
(format t "~{~5F~^ ~}~%"
(list d
(gauss-smoothing d)
(exp-smoothing d)
(cauchy-smoothing d)
(hann-smoothing d))))
@end(code)
@b(Описание:) функция @b(lm-print) красивый вывод матрицы (списка списков).
@b(Описание:) функция @b(lv-print) красивый вывод вектора (списка).
@b(Описание:) функция @b(make) генерирует матрицу
(список списков) из вектора (списка).
@b(Пример использования:)
@begin[lang=lisp](code)
(math:make 2 3 ’(0 1 2 3 4 5 6 7 8 9 10 11 12))
=> ((0 1 2)
(3 4 5))
(math:make 2 3 ’nil)
=> ((NIL NIL NIL)
(NIL NIL NIL))
@end(code)
@b(Описание:) функция @b(make-1d-list) возвращает 1d-list длиной
@b(size), состоящий из случайных целых чисел в диапазоне от 0 до
@b(arg).
@b(Пример использования:)
@begin[lang=lisp](code)
(make-1d-list 1) => (8)
(make-1d-list 2) => (10 7)
(make-1d-list 5) => (8 13 5 6 11)
@end(code)
@b(Описание:) функция @b(make-1d-list) возвращает 2d-list размером
@b(size)*@b(size), состоящий из случайных целых чисел.
@b(Пример использования:)
@begin[lang=lisp](code)
(make-2d-list 1) => ((9))
(make-2d-list 2) => ((9 4) (12 1))
(make-2d-list 5) ’((2 12 5 4 8)
(12 13 0 3 14)
(10 9 13 2 3)
( 6 6 0 6 0)
( 1 0 3 10 6))
@end(code)
@b(Описание:) функция @b(make-appr-linear) возвращает функцию, являющуюся линейной интерполяцией функции одного переменного.
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((f1 (math/appr:make-appr-linear
(loop :for i :from 0 :to 10
:collect (list (* 1.0d0 i) (* 0.1d0 i i))))))
(loop :for i :from 0 :to 10 :by 1/5
:collect
(list (* 1.0 i) (coerce (funcall f1 (* 1d0 i))’single-float ))))
=> ’((0.0 0.0) (0.2 0.02) (0.4 0.04) (0.6 0.06) (0.8 0.08)
(1.0 0.1) (1.2 0.16) (1.4 0.22) (1.6 0.28) (1.8 0.34)
(2.0 0.4) (2.2 0.50) (2.4 0.60) (2.6 0.70) (2.8 0.80)
(3.0 0.9) (3.2 1.04) (3.4 1.18) (3.6 1.32) (3.8 1.46)
(4.0 1.6) (4.2 1.78) (4.4 1.96) (4.6 2.14) (4.8 2.32)
(5.0 2.5) (5.2 2.72) (5.4 2.94) (5.6 3.16) (5.8 3.38)
(6.0 3.6) (6.2 3.86) (6.4 4.12) (6.6 4.38) (6.8 4.64)
(7.0 4.9) (7.2 5.20) (7.4 5.50) (7.6 5.80) (7.8 6.10)
(8.0 6.4) (8.2 6.74) (8.4 7.08) (8.6 7.42) (8.8 7.76)
(9.0 8.1) (9.2 8.48) (9.4 8.86) (9.6 9.24) (9.8 9.62)
(10.0 10.0))
@end(code)
@b(Описание:) функция @b(make-least-squares-matrix) возвращает матрицу
для расчета коэффициентов полиномиальной зависимости вида @b(ff) со
списком имен факторов влияния и имени функции отклика @b(vv),
которая приближается к экспериментальным точкам @b(ex_pts),
методом наименьших квадратов.
@b(Переменые:)
@begin(list)
@item(vv - список, состоящий из имен факторов влияния и имени функции отклика;)
@item(ff - задает вид функциональной зависимости;)
@item(ex_pts - задает значения факторов влияния и значение функции отклика;)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
;;;; Для аппроксимации экспериментальных точек полиномом второй степени функции одной переменной.
;;;; Здесь коэффициенты a1, a2, a3 можно найти решив САУ, получаемую в результате.
;;;; (defun yy (xx) (+ (* a1 xx xx) (* a2 xx) a3))
(make-least-squares-matrix
’(xx yy)
’((xx xx) (xx) (1.0) (yy))
’((-1.0 1.0) (0.0 0.0) (2.0 4.0) (3.0 9.0)))
=> Matr 3х4
[ 98.0d0 34.0d0 14.0d0 98.0d0 ]
[ 34.0d0 14.0d0 4.0d0 34.0d0 ]
[ 14.0d0 4.0d0 4.0d0 14.0d0 ]
;;;; Для аппроксимации экспериментальных точек полиномом второй степени функции двух переменных.
;;;; Здесь коэффициенты a1, a2, a3 можно найти решив САУ, получаемую в результате.
(defun yy (x1 x2) (+ (* 1.0 x1 x1) (* 2.0 x2 x2) (* 3.0 x1 x2) (* 4.0 x1) (* 5.0 x2) 6.0))
(make-least-squares-matrix
’(x1 x2 yy)
’((x1 x1) (x2 x2) (x1 x2) (x1) (x2) (1.0) (yy))
(let ((pts nil))
(loop :for i :from -2 :to 2 :do
(loop :for j :from -2 to 2 :do
(push (list i j (yy i j)) pts)))
pts))
; => Matr 6х7
; [ 170.0d0 100.0d0 0.0d0 0.0d0 0.0d0 50.0d0 670.0d0 ]
; [ 100.0d0 170.0d0 0.0d0 0.0d0 0.0d0 50.0d0 740.0d0 ]
; [ 0.0d0 0.0d0 100.0d0 0.0d0 0.0d0 0.0d0 300.0d0 ]
; [ 0.0d0 0.0d0 0.0d0 50.0d0 0.0d0 0.0d0 200.0d0 ]
; [ 0.0d0 0.0d0 0.0d0 0.0d0 50.0d0 0.0d0 250.0d0 ]
; [ 50.0d0 50.0d0 0.0d0 0.0d0 0.0d0 25.0d0 300.0d0 ]
(solve-x *)
; => Matr 1х6
; [ 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0 6.0d0 ]
@end(code)
См. также math/ls-gauss/solve-x; math/ls-rotation/solve.
@b(Описание:) функция @b(make-linear-interpolation) возвращает функциональной зависимость, аппроксимируемую по функции одного переменного, заданной таблично.
@b(Переменые:)
@begin(list)
@item(points - список, состоящий из аргумента и значения ;)
@item(ff - вид функциональной зависимости см. *apr-func-1-2* — *apr-func-1-5*.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(let* ((points-01 ’((0.0 0.0) (1.0 1.0) (2.0 2.0)))
(func-1 (make-linear-interpolation points-01)))
(loop :for x :from 0 :to 2 :by 1/10
:collect (mapcar #’(lambda (el) (coerce el ’single-float))
(list x
(funcall func-1 x)))))
=> ((0.0 0.0) (0.1 0.1) (0.2 0.2) (0.3 0.3) (0.4 0.4) (0.5 0.5) (0.6 0.6)
(0.7 0.7) (0.8 0.8) (0.9 0.9) (1.0 1.0) (1.1 1.1) (1.2 1.2) (1.3 1.3)
(1.4 1.4) (1.5 1.5) (1.6 1.6) (1.7 1.7) (1.8 1.8) (1.9 1.9) (2.0 2.0))
(let* ((points-02 ’((0.0 0.0) (1.0 1.0) (2.0 4.0) (3.0 9.0)))
(func-2 (make-linear-interpolation points-02 :ff *apr-func-1-3*)))
(loop :for x :from 1 :to 3 :by 1/10
:collect (mapcar #’(lambda (el) (coerce el ’single-float))
(list x
(funcall func-2 x)))))
=> ((1.0 1.0) (1.1 1.21) (1.2 1.44) (1.3 1.69) (1.4 1.96) (1.5 2.25) (1.6 2.56)
(1.7 2.89) (1.8 3.24) (1.9 3.61) (2.0 4.0) (2.1 4.41) (2.2 4.84) (2.3 5.29)
(2.4 5.76) (2.5 6.25) (2.6 6.76) (2.7 7.29) (2.8 7.84) (2.9 8.41) (3.0 9.0))
@end(code)
@b(Описание:) функция @b(make-ls-system) возвращает 2d-list,
представляющий из себя расширенную матрицу (матрицу с правыми
частями), являющуюся представлением системы линейных уравнений, при
решении которой результатом будет @b(vec).
@b(Пример использования:)
@begin[lang=lisp](code)
(let* ((n 1)
(m (make-2d-list n))
(v (make-1d-list n)))
(values (make-ls-system m v) v))
=> ((2 14)), (7)
(let* ((n 3)
(m (make-2d-list n))
(v (make-1d-list n)))
(values (make-ls-system m v) v))
=> ((14 1 1 133)
(0 2 12 84)
(4 3 2 50)),
(9 0 7)
@end(code)
@b(Описание:) функция @b(make-plot-data-file) выполняет вывод данных @b(data) в файл с именем f-name и расширением data.
@b(Пример использования:)
@begin[lang=lisp](code)
;;;; Пример 1
(make-plot-data-file
"plot2"
(mapcar
#’(lambda (x)
(list x (sin x) (sqrt x)))
(math:split-range 0.0 10 1000)))
@end(code)
@b(Описание:) функция @b(make-random-value-list) возвращает список
случайных величин:
@b(Переменые:)
@begin(list)
@item(mid-value - среднее значение; )
@item(std-deviation - стандартное отклонение;)
@item(n - количество точек; )
@item(top-level - дискретизация точек)
@end(list)
@b(Описание:) make-table выполняет формирование списка точек, разделенного на группы.
@b(Пример использования:)
@begin[lang=lisp](code)
(make-table (split-range 1.0 0.0 2) (split-range -3 0 3))
=> (((1.0 -3.0) (1.0 -2.0) (1.0 -1.0) (1.0 0.0))
((0.5 -3.0) (0.5 -2.0) (0.5 -1.0) (0.5 0.0))
((0.0 -3.0) (0.0 -2.0) (0.0 -1.0) (0.0 0.0)))
@end(code)
@b(Описание:) функция @b(make-vector-n) возвращает вектор, в котором
содержится @b(n) элеметро @b(element).
@b(Пример использования:)
@begin[lang=lisp](code)
(make-vector-n 1.5 3) => #(1.5 1.5 1.5)
@end(code)
@b(Описание:) функция @b(matr-new) возвращает объект <matrix> с числом
строк @b(rows) и числом столбцов @b(cols). Если опциональный аргумент
@b(lst) отличается от nil элементы марицы инициализируются значениями,
находящимися в списке @(lst) построчно.
@b(Пример использования:)
@begin[lang=lisp](code)
(matr-new 3 4 ’(1 2 3 4 5 6 7 8 9 10))
#<<MATRIX> 3х4
1 2 3 4
5 6 7 8
9 10 NIL NIL >
@end(code)
@b(Описание:) функция @b(max-col-not-nil-value) вычисляет среднее значение по столбцам матрицы (списка списков).
@b(Описание:) функция max-not-nil-value возвращает максимальное значение для списка величин.
@b(Переменые:)
@begin(list)
@item(x - список, содержащий числовые значения или nil.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(max-not-nil-value ’(nil 20 nil 5 nil 10)) => 20
@end(code)
@b(Описание:) функция @b(max-row-not-nil-value) вычисляет максимальные
значения по строкам матрицы (списка списков).
@b(Пример использования:)
@begin[lang=lisp](code)
(max-row-not-nil-value ’((1.0 2.1 1.5 2.0)
(2.0 2.5 3.2 3.0))) => (2.1 3.2)
@end(code)
@b(Описание:) функция max-value возвращает максимальное значение для списка величин
@b(Пример использования:)
@begin[lang=lisp](code)
(max-value ’(1.1 1.0 0.9 1.2 0.8)) => 1.2
@end(code)
@b(Описание:) функция min-not-nil-value возвращает минимальное значение для списка величин.
@b(Переменые:)
@begin(list)
@item(x - список, содержащий числовые значения или nil.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(min-not-nil-value ’(nil 20 nil 5 nil 10)) => 5
@end(code)
@b(Описание:) функция @b(min-value) возвращает максимальное значение
для списка величин.
@b(Пример использования:)
@begin[lang=lisp](code)
(min-value ’(1.1 1.0 0.9 1.2 0.8)) => 0.8
@end(code)
@b(Описание:) функция @b(mult-matr-vect) возвращает вектор, являющийся
результатом умножения матрицы @b(matr) на вектор @b(vect). Количество
элементов в результирующем векторе равно количеству элементов в
векторе @b(vect).
@b(Пример использования:)
@begin[lang=lisp](code)
(defparameter *m-test*
(make-array ’(3 4)
:initial-contents
’((10.0d0 11.0d0 12.0d0 4.0d0)
(15.0d0 17.0d0 21.0d0 2.0d0)
(70.0 8.0 10.0 3.0))))
(mult-matr-vect
*m-test* ; Проверка правильности решения (системы линейных алгебраических уравнений) СЛАУ
(solve-linear-system-rotation (cl-utilities:copy-array *m-test*)))
@end(code)
@b(Описание:) функция @b(normalize) возвращает нормализованный вектор.
Длина нормализованного вектора равна 1.0.
@b(Пример использования:)
@begin[lang=lisp](code)
(normalize ’(1 2 3)) => (0.26726124 0.5345225 0.8017837)
(normalize ’(2 -3)) => (0.5547002 -0.8320503)
@end(code)
@b(Описание:) функция @b(point-3d->4d) возвращает координаты точки
@b(point-3d) в однородных координатах, добавляя к ним четвертую
координату @b(coord-4).
@b(Пример использования:)
@begin[lang=lisp](code)
(point-3d->4d ’(1.0 2.0 3.0)) => (1.0 2.0 3.0 0.0d0)
(point-3d->4d ’(1.0 2.0 3.0) 0.0) => (1.0 2.0 3.0 0.0)
@end(code)
@b(Описание:) функция @b(point-4d->3d) преобразует координаты точки
@b(point-4d) из однородных в 3d и возвращает последние.
@b(Пример использования:)
@begin[lang=lisp](code)
(point-4d->3d ’(1.0 2.0 3.0 0.0d0)) => (1.0 2.0 3.0)
@end(code)
@b(Описание:) функция @b(polar->cartesian) переводит полярные координаты в декартовы.
@b(Переменые:)
@begin(list)
@item(radius-angle - список, состоящий из двух элементов: радиус-вектора
и угла, заданного в радианах.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(polar->cartesian ‘(10.0 ,(dtr 45))) => (7.0710678118654755d0 7.071067811865475d0)
@end(code)
@b(Описание:) функция @b(regular-tetrahedron-volume-by-side) возвращает объем правильного тетраэдра с ребром @b(a).
@b(Пример использования:)
@begin[lang=lisp](code)
(regular-tetrahedron-side-by-volume 1.00) => 2.039649
(regular-tetrahedron-side-by-volume 10.0) => 4.3942904
@end(code)
@b(Описание:) функция @b(regular-tetrahedron-volume-by-side) возвращает объем правильного тетраэдра с ребром @b(a).
@b(Пример использования:)
@begin[lang=lisp](code)
(regular-tetrahedron-volume-by-side 1.00) => 0.11785113
(regular-tetrahedron-volume-by-side 10.0) => 117.85112
@end(code)
@b(Описание:) функция @b(triangle-area-by-sides) возвращает
площадь правильного треугольника со стороной @b(a).
@b(Пример использования:)
@begin[lang=lisp](code)
(regular-triangle-area-by-side 1.0 1.0 1.0) => 0.4330127 ; (/ (sqrt 3) 4)
(regular-triangle-area-by-side 2.0 2.0 2.0) => 1.7320508 ; (sqrt 3)
@end(code)
@b(Описание:) функция @b(regular-triangle-side-by-area) длину стороны
правильного треугольника с площадью @b(s).
@b(Пример использования:)
@begin[lang=lisp](code)
(regular-triangle-side-by-area 0.4330127) => 1.0
(regular-triangle-side-by-area 1.7320508) => 2.0
@end(code)
@b(Описание:) функция @b(rgb) возвращает строковое представление цвета.
@b(Переменые:)
@begin(list)
@iterm(aa = 0..255 яркость;)
@iterm(rr = 0..255 насыщенность красного;)
@iterm(gg = 0..255 насыщенность зеленого;)
@iterm(bb = 0..255 насыщенность синего.)
@end(list)
@b(Описание:) функция @b(round-to-significant-digits) округляет значение val до количества значащих цифр, задаваемых аргументом significant-digits.
@b(Пример использования:)
@begin[lang=lisp](code)
(round-to-significant-digits 456.32738915923 ) => 456.3
(round-to-significant-digits 456.32738915923 6 ) => 456.327
(round-to-significant-digits 456.32738915923 6 53562.23) => 456.3
@end(code)
@b(Описание:) функция @b(rtd) переводит значение,
заданное в радианах, в градусы.
@b(Пример использования:)
@begin[lang=lisp](code)
(rtd (dtr 45)) => 45.0d0
@end(code)
@b(Описание:) функция| @b(solve) возвращает корни решения СЛАУ
(системы линейных алгебраических уравнений),
используя LU-разложение матрицы @b(matrix).
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((m (grid:make-foreign-array
’double-float :initial-contents
’((1 2 3)
(2 1 1)
(3 0 1))))
(v (grid:make-foreign-array
’double-float :initial-contents
’(14 7 6))))
(solve m v))
=> #(1.0000000000000002d0 2.0000000000000004d0 2.9999999999999996d0)
@end(code)
@b(Описание:) функция| @b(solve) возвращает корни решения СЛАУ
(системы линейных алгебраических уравнений), используя LU-разложение
матрицы @b(m-v).
@b(Переменые:)
@begin(list)
@item(m-v - матрица, представленная в виде 2d-list, (списком
состоящим из списков));
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((m ’((1 2 3 14)
(2 1 1 7)
(3 0 1 6))))
(solve-x m))
=> #(1.0000000000000002d0 2.0000000000000004d0 2.9999999999999996d0)
@end(code)
@b(Описание:) функция @b(spherical->cartesian) выполняет
преобразование координат из сферических в декартовы.
@b(Переменые:)
@begin(list)
@item(r-φ-θ - список состоящий из трех величин:
@begin(list)
@item(r - расстояние от начала координат до заданной точки;)
@item(φ - азимутальный угол (в плоскости X0Y);)
@item(θ - зенитный угол.)
@end(list))
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(spherical->cartesian ‘(100 ,(dtr 30) ,(dtr 45)))
=> (61.237243569579455d0 35.35533905932737d0 70.71067811865476d0)
@end(code)
@b(Описание:) split-range
@b(Пример использования:)
@begin[lang=lisp](code)
(split-range 10 20 5) => (10.0 12.0 14.0 16.0 18.0 20.0)
@end(code)
@b(Описание:) функция @b(split-range-in-center) делит интервал от
@b(from) до @b(to) на @b(subdivisions) интервалов, возвращая их
середины.
@b(Пример использования:)
@begin[lang=lisp](code)
(split-range-at-center 0.0 10.0 10)
=> (0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5)
@end(code)
@b(Описание:) split-range-by-func
@b(Пример использования:)
@begin[lang=lisp](code)
(split-range-by-func 1 10 5) => (1.0 1.5848932 2.5118864 3.981072 6.3095737 10.0)
(split-range-by-func 1 10 10) =>
(1.0 1.2589254 1.5848932 1.9952624 2.5118864 3.1622777 3.981072 5.0118723 6.3095737 7.943282 10.0)
@end(code)
@b(Описание:) функция @b(square) возвращает квадрат значения.
@b(Переменые:)
@begin(list)
@item(x - число.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(square 5) => 25
(square -4) => 16
@end(code)
@b(Описание:) функция standard-deviation возвращает среднеквадратичное
(стандартное) отклонение для списка величин.
@b(Переменые:)
@begin(list)
@item(x - список, содержащий числовые значения.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(standard-deviation ’(1.1 1.0 0.9 1.2 0.8)) => 0.1581139
@end(code)
@b(Описание:) функция @b(table-apply)
@b(Пример использования:)
@begin[lang=lisp](code)
(make-table (split-range 1 4 3) (split-range 5 7 2))
=>
(((1.0 5.0) (1.0 6.0) (1.0 7.0))
((2.0 5.0) (2.0 6.0) (2.0 7.0))
((3.0 5.0) (3.0 6.0) (3.0 7.0))
((4.0 5.0) (4.0 6.0) (4.0 7.0)))
(table-apply (make-table (split-range 1 4 3) (split-range 5 7 2)) #’* 10.)
=>
(((1.0 5.0 50.0) (1.0 6.0 60.0) (1.0 7.0 70.0))
((2.0 5.0 100.0) (2.0 6.0 120.0) (2.0 7.0 140.0))
((3.0 5.0 150.0) (3.0 6.0 180.0) (3.0 7.0 210.0))
((4.0 5.0 200.0) (4.0 6.0 240.0) (4.0 7.0 280.0)))
(table-apply (make-table (split-range 1 4 3) (split-range 5 7 2)) #’vector)
=>
(((1.0 5.0 #(1.0 5.0)) (1.0 6.0 #(1.0 6.0)) (1.0 7.0 #(1.0 7.0)))
((2.0 5.0 #(2.0 5.0)) (2.0 6.0 #(2.0 6.0)) (2.0 7.0 #(2.0 7.0)))
((3.0 5.0 #(3.0 5.0)) (3.0 6.0 #(3.0 6.0)) (3.0 7.0 #(3.0 7.0)))
((4.0 5.0 #(4.0 5.0)) (4.0 6.0 #(4.0 6.0)) (4.0 7.0 #(4.0 7.0))))
@end(code)
@b(Описание:) функция @b(triangle-area-by-sides) возвращает площадь
треугольника со сторонами @b(a), @b(b), @b(c).
@b(Пример использования:)
@begin[lang=lisp](code)
(triangle-area-by-sides 1.0 1.0 1.0) => 0.4330127 ; (/ (sqrt 3) 4)
(triangle-area-by-sides 2.0 2.0 2.0) => 1.7320508 ; (sqrt 3)
(triangle-area-by-sides 3.0 4.0 5.0) => 6.0
(triangle-area-by-sides 1.0 2.0 3.0) => 0.0
@end(code)
@b(Описание:) возвращает
@link[uri="https://ru.wikipedia.org/wiki/Коэффициент_вариации"](коэффициент вариации)
для списка величин.
@b(Пример использования:)
@begin[lang=lisp](code)
(variation-coefficient ’(1.1 1.0 0.9 1.2 0.8))
@end(code)
<arithmetic>
)) ¶<arithmetic>
)) ¶Первый член арифметической прогрессии (нумерация начинается с нуля).
a
.
<arithmetic>
)) ¶<arithmetic>
)) ¶Разность арифметической прогрессии.
d
.
<geometric>
)) ¶<geometric>
)) ¶Первый член геометрической прогрессии (нумерация начинается с нуля).
b
.
<geometric>
)) ¶<geometric>
)) ¶Знаменатель геометрической прогрессии.
q
.
@b(Описание:) обобщенная функция @b(add) выполняет сложение аргументов @b(a) и @b(b).
@b(Описание:) обобщенная функция @b(anti-diagonal)
возвращает список элементов, находящихся на побочной диагонали матрицы.
В результирующем списке элементы следуют по строкам.
Д.б опредена только для квадратной матрицы.
<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(defparameter *mm*
(make-instance ’<matrix>
:initial-contents ’((1d0 2d0 3d0)
(4d0 5d0 6d0)
(7d0 8d0 9d0))))
=>
Matr 3х3
[ 1.0d0 2.0d0 3.0d0 ]
[ 4.0d0 5.0d0 6.0d0 ]
[ 7.0d0 8.0d0 9.0d0 ]
(anti-diagonal *mm*) => (3.0d0 5.0d0 7.0d0) @end(code)
@b(Описание:) обобщенная функция @b((setf anti-diagonal)) устанавливет новые значения элементам матрицы @b(matrix), на побочной диагонали матрицы.
Элементы @b(elements) устанавливаются в порядке возрастания строк.
@b(Описание:) функция @b(append-col) добавляет столбец @b(col) к матрице @b(matrix).
cons
) (2d-list cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(math:append-col ’(10 11 12)
’((1 2 3)
(4 5 6)
(7 8 9))) => ((1 2 3 10)
(4 5 6 11)
(7 8 9 12))
@end(code)
@b(Описание:) функция @b(append-row) возвращает новую матрицу, формируемую путем добавления строки @b(row) к матрице @b(matrix).
cons
) (2d-list cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(math:append-row ’(10 11 12)
’((1 2 3)
(4 5 6)
(7 8 9))) =>((1 2 3)
(4 5 6)
(7 8 9)
(10 11 12))
(math:append-row ’(10 11 )
’((1 2 3)
(4 5 6)
(7 8 9)))
=>((1 2 3)
(4 5 6)
(7 8 9)
(10 11 NIL))
(math:append-row ’(10 11 12 13)
’((1 2 3)
(4 5 6)
(7 8 9))) =>(( 1 2 3)
( 4 5 6)
( 7 8 9)
(10 11 12))
@end(code)
<appr-bilinear>
)) ¶<appr-bilinear>
)) ¶Двумерный массив функций размерности которого, на единицу меньше
количества реперных значений по соответствующему
направлению (измерению).
<appr-bilinear>
)) ¶<appr-bilinear>
)) ¶Вектор реперных значений по первому направлению (измерению).
<appr-bilinear>
)) ¶<appr-bilinear>
)) ¶Вектор реперных значений по второму направлению (измерению).
<appr-linear>
)) ¶<appr-linear>
)) ¶Вектор функций.
<appr-linear>
)) ¶<appr-linear>
)) ¶Вектор аргументов.
<appr-bilinear>
)) ¶@b(Описание:) метод @b(approximate)
number
) (a-l <appr-linear>
)) ¶@b(Описание:) метод @b(approximate) возвращает значение функции одного переменного в точке point для функции заданой таблично и аппроксимированной объектом @b(a-l).
@b(Описание:) функция @b(average-col-not-nil-value) вычисляет среднее значение по элементам матрицы (списка списков).
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(average-col-not-nil-value ’((nil 2.1 4.5)
(2.0 nil 3.2))) => (2.0 2.1 3.85)
@end(code)
@b(Описание:) функция @b(average-col-value) вычисляет среднее значение по столбцам матрицы (списка списков).
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(average-col-value ’((3.0 2.1 4.5)
(2.0 2.5 3.2))) => (2.5 2.3 3.85)
@end(code)
@b(Описание:) функция @b(average-not-nil-value) вычисляет среднее значение по элементам матрицы (списка списков) с исключением nil-элементов.
cons
)) ¶@b(Описание:) функция @b(average-row-not-nil-value) вычисляет среднее значение по элементам матрицы (списка списков).
cons
)) ¶@b(Описание:) функция @b(average-row-value) вычисляет средние значения в строках матрицы (списка списков).
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(average-row-value ’((1.0 1.5 2.0)
(2.0 2.5 3.0))) => (1.5 2.5)
@end(code)
@b(Описание:) функция @b(average-value) вычисляет среднее значение по элементам матрицы (списка списков).
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(average-value ’((1.0 1.5 2.0)
(2.0 2.5 3.0))) => 2.0
@end(code)
Кандидат в intern.
Обратный ход при вычислении решения системы линейных уравнений.
Матрица matr должна быть приведена к треугольной;
<quartic>
)) ¶<quartic>
)) ¶Коэффициент при степени 4.
a
.
<cubic>
)) ¶<cubic>
)) ¶Коэффициент при степени 3.
a
.
<quartic>
)) ¶<quartic>
)) ¶Коэффициент при степени 3.
b
.
<cubic>
)) ¶<cubic>
)) ¶Коэффициент при степени 2.
b
.
<quartic>
)) ¶<quartic>
)) ¶Коэффициент при степени 2.
c
.
@b(Описание:) обобщенная функция @b(col) возвращает строку @b(col) матрицы @b(matrix).
integer
) (a array
)) ¶@b(Описание:) метод @b(col) возвращает столбец @b(col) из масства @b(a).
Столбец возвращается в виде вектора (vector).
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((arr (make-array ’(5 2)
:initial-contents ’((0 1)
(2 3)
(4 5)
(6 7)
(8 9)))))
(col 0 arr) ;=> #(0 2 4 6 8)
(col 1 arr) ;=> #(1 3 5 7 9)
)
@end(code)
cons
)) ¶@b(Описание:) обобщенная функция @b((setf col)) заменяет столбец @b(col) матрицы @b(matrix) элементами, находящимися в списке @b(values).
@b(Описание:) обобщенная функция @b(cols) возврвщает количество столбцов матрицы @b(matrix).
<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(To-Do)
@end(code)
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(To-Do)
@end(code)
array
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(To-Do)
@end(code)
@b(Описание:) обобщенная_функция @b(convert-to-triangular) выполняет приведение матрицы @b(matrix) к треугольному виду, для решения системы ЛУ методом Гаусса.
cons
)) ¶<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(convert-to-triangular
(make-instance ’<matrix>
:initial-contents ’((0.0 0.0 4.0 12.0)
(2.0 0.0 2.0 8.0)
(0.0 3.0 0.0 6.0))))
=> Matr 3х4
[ 1.0 0.0 1.0 4.0 ]
[ 0.0 1.0 0.0 2.0 ]
[ 0.0 0.0 1.0 3.0 ]
@end(code)
@b(Пример использования:)
@begin[lang=lisp](code)
(convert-to-triangular
(make-instance ’math/matr:<matrix>
:initial-contents ’((1.0d0 2.0d0 3.0d0 4.0d0)
(5.0d0 6.0d0 7.0d0 8.0d0)
(9.0d0 10.0d0 11.0d0 12.0d0))))
=> Matr 3х4
[ 1.0d0 2.0d0 3.0d0 4.0d0 ]
[ -0.0d0 1.0d0 2.0d0 2.9999999999999996d0 ]
[ 0.0d0 0.0d0 0.0d0 8.881784197001252d-16 ]
@end(code)
@b(Описание:) обобщенная функция @b(copy) возвращает ссылку на новый объект, созданный на основе @b(obj).
@b(Описание:) обобщенная функция @b(dimensions) возвращает список, содержащий размерности матрицы @b(matrix).
<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(dimensions
(make-instance ’<matrix>
:initial-contents ’((1 2 3)
(4 5 6 ))))
@end(code)
array
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(dimensions
(make-array ’(2 3)
:initial-contents ’((1 2 3)
(4 5 6)))) => (2 3)
@end(code)
cons
)) ¶@b(Пример использования:) @begin[lang=lisp](code) (dimensions ’((1 2 3) (4 5 6))) @end(code)
@b(Описание:) обобщенная функция @b(distance)
возвращает расстояние между x1 и x2. Как корень квадратный из
сумм квадратов расстояний по каждому направлению.
cons
) (x2 vector
)) ¶vector
) (x2 cons
)) ¶vector
) (x2 vector
)) ¶@b(Описание:) метод @b(distance) возвращает расстояние
между точками @b(x1-lst) и @b(x2-lst).
@b(Пример использования:)
@begin[lang=lisp](code)
(distance #(1 1 1) #(0 0 0)) => 1.7320508
(distance #(2 2 2) #(0 0 0)) => 3.4641016
(distance #(2 1 2) #(0 0 0)) => 3.0
@end(code)
cons
) (x2-lst cons
)) ¶@b(Описание:) метод @b(distance) возвращает расстояние
между точками @b(x1-lst) и @b(x2-lst).
@b(Пример использования:)
@begin[lang=lisp](code)
(distance ’(1 1 1) ’(0 0 0)) => 1.7320508 = (sqrt (+ 1 1 1))
(distance ’(2 2 2) ’(0 0 0)) => 3.4641016 = (sqrt (+ 4 4 4))
(distance ’(2 1 2) ’(0 0 0)) => 3.0 = (sqrt (+ 4 1 4))
@end(code)
number
) (x2 number
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(distance (complex 1 2) 0) => 2.236068
(distance 0 (complex 1 2)) => 2.236068
(distance (complex 0 2) (complex 1 2)) => 1.0
@end(code)
real
) (x2 real
)) ¶@b(Пример использования:) @begin[lang=lisp](code) (distance 1 0 ) => 1 (distance 2 0 ) => 2 (distance 2 1 ) => 1 @end(code)
@b(Описание:) обобщенная функция @b(distance-relative)
возвращает относительную длину между x0 и x1, длина приведения dx.
Корень квадратный из сумм квадратов расстояний по каждому направлению
отнесенному к длине приведения.
vector
) (xi vector
) (dx vector
)) ¶@b(Описание:) метод @b(distance-relative) возвращает относительное
расстояние от точки @b(x) до точки @b(xi) по отношению к базовым длинам,
находящимся в @b(dx).
@b(Пример использования:)
@begin[lang=lisp](code)
(distance-relative #(1 1 1) #(0 0 0) #(1 1 1)) => 1.7320508
(distance-relative #(1 1 1) #(0 0 0) #(2 2 2)) => 0.8660254
(distance-relative #(1 2 3) #(0 0 0) #(3 2 1)) => 3.1797974 = (sqrt (+ (* 1/3 1/3) (* 2/2 2/2) (* 3/1 3/1)))
@end(code)
cons
) (xi-lst cons
) (dx-lst cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(distance-relative ’(1 1 1) ’(0 0 0) ’(1 1 1)) => 1.7320508
(distance-relative ’(2 2 2) ’(0 0 0) ’(1 1 1)) => 3.4641016
(distance-relative ’(2 2 2) ’(0 0 0) ’(1 2 2)) => 2.4494898
@end(code)
number
) (xi number
) (dx number
)) ¶@b(Пример использования:) @begin[lang=lisp](code) (distance-relative 1 0 1) => 1.0 (distance-relative 2 0 1) => 2.0 (distance-relative 2 0 2) => 1.0 @end(code)
@b(Описание:) обобщенная функция @b(equivalent) возвращает T,
если матирицы @b(matrix-1) и @b(matrix-2) имеют одинаковые размерности и их
соответствующие элементы равны (для них функция @b(test) возвращает T ).
@b(Описание:) обобщенная функция @b(first-by-number&summ) возвращает первый член прогрессии, такой чтобы сумма n членов равнялась @b(S). При этом прогрессия сама поргрессия @b(series) изменяется.
<arithmetic>
) n s) ¶<geometric>
) n s) ¶@b(Описание:) обобщенная_функция @b(func) функцию одного переменного, представляющее полином.
<quartic>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(funcall (func (make-instance ’<quartic>)) 0) => -1.0
@end(code)
<cubic>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(funcall (func (make-instance ’<cubic>)) 5) => 124.0
@end(code)
array
)) ¶@b(Описание:) метод @b(gnuplot-data-to-file) выводит данные
@b(data) в файл с именем @b(f-name), расположенный в каталоге поумолчанию
(см. переменную *default-gnuplot-direcroty*).
Данные должны быть представлены 2d-array.
@b(Пример использования:)
@begin[lang=lisp](code)
(gnuplot-data-to-file "data"
(loop :for i :from 0 :to 4 :by 1/10 :collect (list i (* i i))))
(gnuplot-data-to-file "data" (make-array ’(5 2) :initial-contents ’((0 0)(1 1)(2 4)(3 9)(4 16))))
@end(code)
cons
)) ¶@b(Описание:) метод @b(gnuplot-data-to-file) выводит данные
@b(data) в файл с именем @b(f-name), расположенный в каталоге поумолчанию
(см. переменную *default-gnuplot-direcroty*).
Данные должны быть представлены 2d-list.
@b(Пример использования:)
@begin[lang=lisp](code)
(gnuplot-data-to-file "data"
(loop :for i :from 0 :to 4 :by 1/10 :collect (list i (* i i))))
@end(code)
@b(Описание:) обобщенная_функция @b(item) возвращает значение @b(i)-того члена прогрессии.
<arithmetic>
) (i integer
)) ¶<geometric>
) (i integer
)) ¶@b(Описание:) обобщенная функция @b(main-diagonal) извлекает главную
диагональ матрицы.
Элементы возвращаются в порядке возрастания строк.
<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(defparameter *mm*
(make-instance ’<matrix> :initial-contents
’(( 1d0 2d0 3d0)
( 4d0 5d0 6d0)
( 7d0 8d0 9d0)
(10d0 11d0 12d0))))
*mm* => Matr 4х3
[ 1.0d0 2.0d0 3.0d0 ]
[ 4.0d0 5.0d0 6.0d0 ]
[ 7.0d0 8.0d0 9.0d0 ]
[ 10.0d0 11.0d0 12.0d0 ]
(main-diagonal *mm*) => (1.0d0 5.0d0 9.0d0) @end(code)
@b(Описание:) обобщенная функция @b((setf main-diagonal))
устанавливает новые значения элементам матрицы @b(matrix),
находящимся на главной диагонали.
Элементы @b(elements) устанавливаются в порядке возрастания строк.
<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(defparameter *mm*
(make-instance ’<matrix>
:initial-contents ’(( 1d0 2d0 3d0)
( 4d0 5d0 6d0)
( 7d0 8d0 9d0)
(10d0 11d0 12d0))))
*mm* => Matr 4х3
[ 1.0d0 2.0d0 3.0d0 ]
[ 4.0d0 5.0d0 6.0d0 ]
[ 7.0d0 8.0d0 9.0d0 ]
[ 10.0d0 11.0d0 12.0d0 ]
(setf (main-diagonal *mm*) 11d0)
Matr 4х3
[ 11.0d0 2.0d0 3.0d0 ]
[ 4.0d0 11.0d0 6.0d0 ]
[ 7.0d0 8.0d0 11.0d0 ]
[ 10.0d0 11.0d0 12.0d0 ]
*mm* => Matr 4х3
[ 11.0d0 2.0d0 3.0d0 ]
[ 4.0d0 11.0d0 6.0d0 ]
[ 7.0d0 8.0d0 11.0d0 ]
[ 10.0d0 11.0d0 12.0d0 ]
@end(code)
<matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(defparameter *mm*
(make-instance ’<matrix>
:initial-contents ’(( 1d0 2d0 3d0)
( 4d0 5d0 6d0)
( 7d0 8d0 9d0)
(10d0 11d0 12d0))))
*mm* => Matr 4х3
[ 1.0d0 2.0d0 3.0d0 ]
[ 4.0d0 5.0d0 6.0d0 ]
[ 7.0d0 8.0d0 9.0d0 ]
[ 10.0d0 11.0d0 12.0d0 ]
(setf (main-diagonal *mm*) ’(11d0 22d0 33d0))
*mm* => Matr 4х3
[ 11.0d0 2.0d0 3.0d0 ]
[ 4.0d0 22.0d0 6.0d0 ]
[ 7.0d0 8.0d0 33.0d0 ]
[ 10.0d0 11.0d0 12.0d0 ]
@end(code)
array
) (nod-values vector
) (base-dist-s vector
) &key weight-func delta iterations) ¶@b(Описание:) метод @b(make-refine-smoothing) в случе
нахождения сглаживания для функции двух переменных.
@b(Пример использования:)
@begin[lang=lisp](code)
(let* ((nod-lst ’((-1.0 -1.0) (1.0 -1.0) (-1.0 1.0) (1.0 1.0)))
(nod-rez #(-10.0 0.0 0.0 10.0))
(nod-pts (make-array ’(4 2) :initial-contents nod-lst))
(base-dists-1_5 #(1.5 1.5))
(base-dists-1_0 #(1.0 1.0))
(base-dists-0_6 #(0.6 0.6))
(base-dists-0_4 #(0.4 0.4))
(func (make-refine-smoothing nod-pts nod-rez base-dists-1_5)))
(funcall func 0.0 0.5))
@end(code)
cons
) (nod-values cons
) (base-dist-s number
) &key weight-func delta iterations) ¶vector
) (nod-values vector
) (base-dist-s number
) &key weight-func delta iterations) ¶@b(Описание:) метод @b(make-refine-smoothing) в случе
нахождения сглаживания для функции одного переменного.
@b(Пример использования:)
@begin[lang=lisp](code)
(let* ((nod-pts #(-2.0 -1.0 -0.5 0.0 0.5 1.0 2.0))
(nod-rez #( 4.0 1.0 0.25 0.0 0.25 1.0 4.0))
(base-dists-1_5 1.5 )
(base-dists-1_0 1.0 )
(base-dists-0_6 0.6 )
(base-dists-0_4 0.4 )
(func (make-refine-smoothing nod-pts nod-rez base-dists-1_5)))
(loop :for i :from -2 :to 2 :by 1/10
:collect (list (* 1.0 i)
(* 1.0 i i)
(funcall func (* 1.0 i))
(* 100 (1- (/ (* 1.0 i i)
(funcall func (* 1.0 i))))))))
=> ’(( 0.0 0.00 0.00350)
( 0.1 0.01 0.01315)
( 0.2 0.04 0.04218)
( 0.3 0.09 0.09071)
( 0.4 0.16 0.15898)
( 0.5 0.25 0.24730)
( 0.6 0.36 0.35599)
( 0.7 0.49 0.48542)
( 0.8 0.64 0.63591)
( 0.9 0.81 0.80774)
( 1.0 1.00 1.00107)
( 1.1 1.21 1.21590)
( 1.2 1.44 1.45205)
( 1.3 1.69 1.70909)
( 1.4 1.96 1.98635)
( 1.5 2.25 2.28284)
( 1.6 2.56 2.59730)
( 1.7 2.89 2.92817)
( 1.8 3.24 3.27363)
( 1.9 3.61 3.63161)
( 2.0 4.00 3.99986))
@end(code)
Matr
@b(Описание:) обобщенная функция @b(mref) возвращает элемент матрицы, находяшийся в строке @b(row) и столбце @b(col). Нумерация строк и столбцов начинается с нуля.
@b(Описание:) обобщенная функция @b((setf mref)) устанавливает значение @b(value) элементу матрицы, находящемуся в строке @b(row) и столбце @b(col). Нумерация строк и столбцов начинается с нуля.
@b(Описание:) обобщенная функция @b(multiply) выполняет перемножение аргументов @b(a) и @b(b).
number
) (v cons
)) ¶@b(Пример использования:) @begin[lang=lisp](code) (multiply 10 ’(1 2 3)) => (10 20 30) @end(code)
number
) (b <matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(multiply 10
(matr-new 2 3 ’(1.0 2.0 3.0
4.0 5.0 6.0)))
=> Matr 2х3
[ 10.0 20.0 30.0 ]
[ 40.0 50.0 60.0 ]
@end(code)
<matrix>
) (b <matrix>
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(multiply (matr-new 2 3 ’(1.0 2.0 3.0
4.0 5.0 6.0))
(matr-new 3 2 ’(1.0 2.0
3.0 4.0
5.0 6.0)))
=> Matr 2х2
[ 22.0 28.0 ]
[ 49.0 64.0 ]
(multiply (matr-new 3 2 ’(1.0 2.0
3.0 4.0
5.0 6.0))
(matr-new 2 3 ’(1.0 2.0 3.0
4.0 5.0 6.0)))
=> Matr 3х3
[ 9.0 12.0 15.0 ]
[ 19.0 26.0 33.0 ]
[ 29.0 40.0 51.0 ]
@end(code)
@b(Описание:) функция @b(prepend-col) возвращает новую матрицу, формируемую путем добавления столбца @b(col) к матрице @b(matrix) перед ее первым столбцом (имеющим индекс 0).
cons
) (matrix cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(prepend-col ’(10 11 12)
’((1 2 3)
(4 5 6)
(7 8 9))) => ((10 1 2 3)
(11 4 5 6)
(12 7 8 9))
@end(code)
@b(Описание:) функция @b(prepend-row) возвращает новую матрицу, формируемую путем добавления строки @b(row) к матрице @b(matrix) перед ее первой строкой (имеющей индекс 0).
cons
) (matrix cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(prepend-row ’(10 11 12)
’((1 2 3)
(4 5 6)
(7 8 9))) =>((10 11 12)
( 1 2 3)
( 4 5 6)
( 7 8 9))
(prepend-row ’(10 11)
’((1 2 3)
(4 5 6)
(7 8 9))) =>((10 11 NIL)
( 1 2 3)
( 4 5 6)
( 7 8 9))
(prepend-row ’(10 11 12 13)
’((1 2 3)
(4 5 6)
(7 8 9))) =>((10 11 12)
( 1 2 3)
( 4 5 6)
( 7 8 9))
@end(code)
@b(Описание:) функция @b(prepend-rows) возвращает новую матрицу, формируемую путем добавления строк @b(rows) к матрице @b(matrix) перед ее первой строкой (имеющей индекс 0).
cons
) (matrix cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(prepend-rows
’((10 20 30)
(11 22 33))
’((11 12 13)
(12 13 14)
(13 14 15)))
@end(code)
@b(Описание:) обобщенная функция @b(refine-smoothing-by-points)
возвращает массив значений @b(rez-values@sub(i)) такой, что
для точек @b(nod-points@sub(i)) сумма отклонений между @b(nod-values@sub(i)) и
@b((smooth-by-points point-s@sub(i) base-dist-s nod-points rez-values@sub(i) :weight-func weight-func))
не превысит @b(delta).
Вторым значением возвращается:
@begin(list)
@item(T - если такой массив удалось найти за указанной в параметре @b(iterations) количестве итераций;)
@item(nil - если за указанной количество итераций @b(iterations) такой массив удалось найти не удалось.)
@end(list)
array
) (nod-values vector
) (base-dist-s vector
) &key weight-func delta iterations) ¶@b(Описание:) метод @b(refine-smoothing-by-points) в случе
нахождения сглаживания для функции двух переменных.
@b(Пример использования:)
@begin[lang=lisp](code)
(let* ((nod-lst ’((-1.0 0.0) (1.0 0.0) (-1.0 1.0) (1.0 1.0)))
(nod-rez #(-10.0 0.0 0.0 10.0))
(nod-pts (make-array ’(4 2) :initial-contents nod-lst))
(base-dists-1_5 #(1.5 1.5))
(base-dists-1_0 #(1.0 1.0))
(base-dists-0_6 #(0.6 0.6))
(base-dists-0_4 #(0.4 0.4)))
(refine-smoothing-by-points nod-pts nod-rez base-dists-0_4)
(refine-smoothing-by-points nod-pts nod-rez base-dists-0_6)
(refine-smoothing-by-points nod-pts nod-rez base-dists-1_0)
(refine-smoothing-by-points nod-pts nod-rez base-dists-1_5)
)
=> #(-10.019267 -0.019267347 0.019267347 10.019267), T, 1, 2.9726332e-4, #(-9.999926 7.424513e-5 -7.424499e-5 9.999926), #(-10.0 0.0 0.0 10.0), #(0.4 0.4)
=> #(-10.663013 -0.66271365 0.6627135 10.663013), T, 4, 4.3922185e-4, #(-9.99989 1.0987265e-4 -1.1000411e-4 9.99989), #(-10.0 0.0 0.0 10.0), #(0.6 0.6)
=> #(-16.005812 -5.632663 5.6326632 16.00581), T, 15, 9.807203e-4, #(-9.999755 2.451054e-4 -2.4542634e-4 9.999755), #(-10.0 0.0 0.0 10.0), #(1.0 1.0)
=> #(-29.902119 -15.834344 15.834344 29.902119), T, 40, 8.0980576e-4, #(-9.999799 2.0380187e-4 -2.0355334e-4 9.999799), #(-10.0 0.0 0.0 10.0), #(1.5 1.5)
@end(code)
vector
) (nod-values vector
) (base-dist-s number
) &key weight-func delta iterations) ¶@b(Описание:) метод @b(refine-smoothing-by-points) в случе нахождения сглаживания для функции одного переменного.
@b(Описание:) обобщенная_функция @b(roots) возвращает корни уравнения @b(eq).
<quartic>
)) ¶@b(Описание:) метод @b(roots) возвращает список корней кубического уравнения @b(eq).
<cubic>
)) ¶@b(Пример использования:) @begin[lang=lisp](code)
(roots (make-instance ’<cubic> :a 2 :b -3 :c -3 :d 2))
=> (#C(-1.0d0 -0.0d0)
#C(0.5000000000000004d0 2.9605947323337506d-16)
#C(1.9999999999999996d0 -2.9605947323337506d-16))
(roots (make-instance ’<cubic> :a 1 :b 2 :c 10 :d -20))
=> (#C(-1.6844040539106864d0 -3.4313313501976914d0)
#C(1.3688081078213714d0 1.9558293600573398d-16)
#C(-1.684404053910686d0 3.4313313501976905d0))
(roots (make-instance ’<cubic> :a 1 :b -6 :c 12 :d -8))
=> (2.0d0 2.0d0 2.0d0)
@end(code)
@b(Описание:) метод @b(rotate-around) возвращает однородную матрицу преобразования, которая вращает протсранство вокруг оси, заданной точками @b(p1) и @b(p2), на угол @b(angle).
cons
) (point-2 cons
) θ) ¶@b(Пример использования:) @begin[lang=lisp](code)
@end(code)
@b(Описание:) метод @b(rotate-v) возвращает однородную матрицу преобразования, которая вращает систему координат на угол @b(angle) вокруг оси, заданной вектором @b(v). Вектор @b(vector) должен быть нормализованным (иметь единичную длину).
number
) (v cons
)) ¶@b(Пример использования:) @begin[lang=lisp](code)
@end(code)
@b(Описание:) метод @b(rotate-x) возвращает однородную матрицу преобразования, которая вращает систему координат на выраженный в радианах угол @b(angle) вокруг оси X.
number
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(progn (defparameter *p* (make-instance ’math/matr:<matrix> :dimensions ’(1 4)))
(setf (math/matr:row *p* 0) ’(10.0 20.0 30.0 1.0))
(multiply *p* (rotate-y (dtr 90.0))))
@end(code)
@b(Описание:) метод @b(rotate-y) возвращает однородную матрицу преобразования, которая вращает систему координат на выраженный в радианах угол @b(angle) вокруг оси Y.
number
)) ¶@b(Пример использования:) @begin[lang=lisp](code)
@end(code)
@b(Описание:) метод @b(rotate-z) возвращает однородную матрицу преобразования, которая вращает систему координат на выраженный в радианах угол @b(angle) вокруг оси Z.
number
)) ¶@b(Пример использования:) @begin[lang=lisp](code)
@end(code)
@b(Описание:) обобщенная функция @b(row) возвращает строку @b(row) матрицы @b(matrix).
cons
)) ¶integer
) (a array
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(let ((arr (make-array ’(5 2)
:initial-contents ’((0 1)
(2 3)
(4 5)
(6 7)
(8 9)))))
(row 0 arr) ;=> #(0 1)
(row 2 arr) ;=> #(4 5)
(row 4 arr) ;=> #(8 9))
@end(code)
@b(Описание:) обобщенная функция @b((setf row)) заменяет строку @b(row) матрицы @b(matrix) элементами, находящимися в списке @b(values).
@b(Описание:) обобщенная функция @b(rows) возвращает количество строк матрицы @b(matrix).
@b(Описание:) обобщенная_функция @b(scale-by-number&summ) возвращает масштаб (разность для арифмеической прогрессии или степень для геометрической прогрессии) такую, чтобы сумма @b(n) членов прогрессии равнялась @b(S).
<arithmetic>
) n s &key from to) ¶<geometric>
) n s &key from to) ¶cons
) (x2 vector
) &key tolerance) ¶vector
) (x2 cons
) &key tolerance) ¶vector
) (y vector
) &key tolerance) ¶cons
) (y cons
) &key tolerance) ¶number
) (y number
) &key tolerance) ¶@b(Описание:) функция @b(semi-equal) возвращает T, если
расстояние между значениями меньше tolerance. При этом
имеется в виду, что значения примерно равны.
@b(Пример использования:)
@begin[lang=lisp](code)
(semi-equal 1.0 1.000001) T
(semi-equal 1.0 1.00001) nil
@end(code)
@b(Описание:) обобщенная функция @b(smooth-by-points) возвращает
значение в точке @b(point-s), являющееся результатом сглаживания
зависимости заданной:
@begin(list)
@item(таблицей узловых точек @b(nod-points);)
@item(таблицей значений @b(nod-values);)
@item(функцией @b(weight-func) учета веса значений от относительного
расстояния до аргумента (при которых эти значения определены);)
@item(базовой длины (базовых длинн) @b(base-dist-s), по которой (которым)
вычисляются относительные расстояния.)
@end(list)
vector
) (dx vector
) (points array
) (values vector
) &key weight-func) ¶@b(Описание:) метод @b(smooth-by-points) возвращает значение, являющееся результатом
сглаживания зависимости заданной:
@begin(list)
@item(аргументами @b(points);)
@item(значениями в этих точках @b(values);)
@item(функцией @b(weight-func) учета веса значений от относительного
расстояния до аргумента (при которых эти значения определены);)
@item(базовой длины, по которой вычисляются относительные расстояния.)
@end(list)
Этот вариант метода примерняется для сглаживания функции двух аргументов.
@b(Пример использования:)
@begin[lang=lisp](code)
(smooth-by-points #(0.0 0.0) #(1.0 1.0) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 0.53788286
(smooth-by-points #(0.0 0.0) #(0.6 0.6) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 0.117073804
(smooth-by-points #(0.0 0.0) #(0.4 0.4) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 0.0038534694
(smooth-by-points #(1.0 0.0) #(1.0 1.0) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(1.0 0.0) #(0.6 0.6) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 0.9999999
(smooth-by-points #(1.0 0.0) #(0.4 0.4) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(0.0 1.0) #(1.0 1.0) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(0.0 1.0) #(0.6 0.6) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(0.0 1.0) #(0.4 0.4) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(1.0 1.0) #(1.0 1.0) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.4621171
(smooth-by-points #(1.0 1.0) #(0.6 0.6) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.8829262
(smooth-by-points #(1.0 1.0) #(0.4 0.4) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.9961466
(smooth-by-points #(0.5 0.5) #(1.0 1.0) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(0.5 0.5) #(0.6 0.6) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
(smooth-by-points #(0.5 0.5) #(0.4 0.4) (make-array ’(4 2) :initial-contents ’((0.0 0.0) (1.0 0.0) (0.0 1.0) (1.0 1.0))) #(0.0 1.0 1.0 2.0)) 1.0
@end(code)
number
) (dx number
) (points vector
) (values vector
) &key weight-func) ¶@b(Описание:) метод @b(smooth-by-points) возвращает значение,
являющееся результатом сглаживания зависимости заданной:
@begin(list)
@item(аргументами @b(points);)
@item(значениями в этих точках @b(values);)
@item(функцией @b(weight-func) учета веса значений от относительного
расстояния до аргумента (при которых эти значения определены);)
@item(базовой длины, по которой вычисляются относительные расстояния.)
@end(list)
Этот вариант метода примерняется для сглаживания функции одного аргумента.
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((args #(-2.0 -1.0 0.0 1.0 2.0))
(vals #( 4.0 1.0 0.0 1.0 4.0))
(dx-2_0 2.0)
(dx-1_0 1.0)
(dx-0_6 0.6))
(loop :for i :from 0 :to 2 :by 1/5
:collect (list (* i 1.0)
(* i i 1.0)
(smooth-by-points i dx-0_6 args vals)
(smooth-by-points i dx-1_0 args vals)
(smooth-by-points i dx-2_0 args vals))))
=> ’((0.0 0.0 0.11070304 0.4977933 1.3665789)
(0.2 0.04 0.1735467 0.5375060 1.3774427)
(0.4 0.16 0.3702085 0.6551497 1.4096088)
(0.6 0.36 0.6500492 0.8464661 1.4618422)
(0.8 0.64 0.8946066 1.1046556 1.5322074)
(1.0 1.00 1.1105981 1.4196386 1.6182360)
(1.2 1.44 1.4516152 1.7761649 1.7171193)
(1.4 1.96 2.0848030 2.1525292 1.8259060)
(1.6 2.56 2.9039226 2.5225418 1.9416808)
(1.8 3.24 3.5229838 2.8611753 2.0617056)
(2.0 4.00 3.8243356 3.1507930 2.1835241))
@end(code)
@b(Описание:) обобщенная_функция @b(solve-x)
возвращает матрицу, содержащую корни решения системы линейных уравений.
Решение системы линейных уравнений выполняется методом Гаусса.
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(solve-x ’((1 2 2)
(3 5 4)))
=> #(-2 2)
@end(code)
<matrix>
)) ¶@b(Пример использования 1.1:)
@begin[lang=lisp](code)
(solve-x
(math/matr:matr-new
3 4 ’(1 2 3 14
2 1 1 7
3 0 1 2)))
=> Matr 1х3
[ 1/3 16/3 1 ]
@end(code)
@b(Пример использования 1.2:)
@begin[lang=lisp](code)
(solve-x
(math/matr:matr-new
3 4 ’(1.0 2 3 14
2 1 1 7
3 0 1 2)))
=> Matr 1х3
[ 0.33333397 5.333332 1.0000007 ]
@end(code)
@b(Пример использования 2:)
@begin[lang=lisp](code)
(solve-x
(math/matr:matr-new
3 4 ’(1 0 1 4
0 1 0 2
0 0 1 3)))
=> Matr 1х3
[ 1 2 3 ]
@end(code)
@b(Описание:) функция @b(solve-x) решает систему линейных
алгебраических уравнений (СЛАУ) методом вращения, состоящего из:
@begin(list)
@item(сведения СЛАУ к треугольной системе;)
@item(нахождение корней методом обратного хода метода Гаусса. )
@end(list)
@b(Переменые:)
@begin(list)
@item(matr - массив, у которого количество строк (первая размерность)
должно быть на единицу меньше количества столбцов (вторая размерность).
Данная матрица меняется в процессе в процессе вычисления функции)
@end(list)
@b(Возвращает:) вектор с количеством элементов равным количеству строк в СЛАУ.
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(require :cl-utilities)
(let* ((data ’((0.0d0 0.0d0 1.0d0 3.0d0)
(0.0d0 1.0d0 0.0d0 2.0d0)
(1.0d0 0.0d0 1.0d0 4.0d0)))
(mtr (make-array ’(3 4) :initial-contents data))
(m (cl-utilities:copy-array mtr)))
(values (math:solve-x mtr)))
=> #(1.0d0 2.0d0 3.0d0)
(let* ((data ’((1.0d0 0.0d0 1.0d0 4.0d0)
(0.0d0 0.0d0 1.0d0 3.0d0)
(0.0d0 1.0d0 0.0d0 2.0d0)))
(mtr (make-array ’(3 4) :initial-contents data))
(m (cl-utilities:copy-array mtr)))
(values (math:solve-x mtr)))
=> #(1.0d0 2.0d0 3.0d0)
(let ((m-test (make-array ’(3 4)
:initial-contents
’((10.0d0 11.0d0 12.0d0 4.0d0)
(15.0d0 17.0d0 21.0d0 2.0d0)
(70.0 8.0 10.0 3.0)))))
(solve-x (cl-utilities:copy-array m-test)))
=>#(0.03588235294117642d0 2.182352941176469d0 -1.6970588235294102d0)
@end(code)
Есть необходимость доработки с точки зрения решения разреженной СЛАУ!
array
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(require :cl-utilities)
(let* ((data ’((0.0d0 0.0d0 1.0d0 3.0d0)
(0.0d0 1.0d0 0.0d0 2.0d0)
(1.0d0 0.0d0 1.0d0 4.0d0)))
(mtr (make-array ’(3 4) :initial-contents data))
(m (cl-utilities:copy-array mtr)))
(values (math:solve-x mtr)))
=> #(1.0d0 2.0d0 3.0d0)
(let* ((data ’((1.0d0 0.0d0 1.0d0 4.0d0)
(0.0d0 0.0d0 1.0d0 3.0d0)
(0.0d0 1.0d0 0.0d0 2.0d0)))
(mtr (make-array ’(3 4) :initial-contents data))
(m (cl-utilities:copy-array mtr)))
(values (math:solve-x mtr)))
=> #(1.0d0 2.0d0 3.0d0)
(let ((m-test (make-array ’(3 4)
:initial-contents
’((10.0d0 11.0d0 12.0d0 4.0d0)
(15.0d0 17.0d0 21.0d0 2.0d0)
(70.0 8.0 10.0 3.0)))))
(solve-x (cl-utilities:copy-array m-test)))
=>#(0.03588235294117642d0 2.182352941176469d0 -1.6970588235294102d0)
@end(code)
Есть необходимость доработки с точки зрения решения разреженной СЛАУ!
@b(Описание:) обобщенная функция @b(squarep) возвращает T, если матрица @b(matrix) является квадратной.
cons
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(squarep ’((1 2 3)(4 5 6))) => NIL
(squarep ’((1 2 3)(4 5 6) (7 8 9))) => T
@end(code)
array
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(defparameter *aa*
(make-array ’(2 3) :initial-contents ’((1 2 3)(4 5 6))))
(squarep *aa*) => NIL
(defparameter *aa*
(make-array ’(3 3) :initial-contents ’((1 2 3)(4 5 6) (7 8 9))))
(squarep *aa*) => T
@end(code)
@b(Описание:) обобщенная_функция @b(summ) возвращает сумму @b(n) членов прогрессии.
<arithmetic>
) (n integer
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(summ (make-instance ’<arithmetic> :a 2 :d 1.2) 5) ; => 22.0
@end(code)
<geometric>
) (n integer
)) ¶@b(Пример использования:)
@begin[lang=lisp](code)
(summ (make-instance ’<geometric> :b 2 :q 1.2) 5) => 14.883203
@end(code)
@b(Описание:) обобщенная функция @b(summ-distance) возвращает сумму расстояний по каждому направлению.
cons
) (x2 cons
)) ¶@b(Описание:) функция @b(summ-distance) возвращает сумму
расстояний по каждому направлению.
@b(Пример использования:)
@begin[lang=lisp](code)
(summ-distance ’(1 2 3) ’(3 2 1)) => 4 = (+ 2 0 2)
@end(code)
vector
) (x2 vector
)) ¶@b(Описание:) метод @b(summ-distance) возвращает сумму
расстояний по каждому направлению.
@b(Пример использования:)
@begin[lang=lisp](code)
(summ-distance #(1 2 3) #(3 2 1)) => 4 = (+ 2 0 2)
@end(code)
@b(Описание:) обобщенная функция @b(swap-cols) возвращает новый объект, совпадающий по типу с @b(matrix), у которого столбцы @b(i) и @b(j) меняются местами.
@b(Описание:) обобщенная функция @b(swap-cols*) меняет местами столбцы @b(i) и @b(j) в матрице @b(matrix) и возвращает его в качестве результата.
@b(Описание:) обобщенная функция @b(swap-rows) возвращает новый объект, совпадающий по типу с @b(matrix), у которого строки @b(i) и @b(j) меняются местами.
@b(Описание:) обобщенная функция @b(swap-rows*) меняет местами строки @b(i) и @b(j) в матрице @b(matrix) и возвращает его в качестве результата.
@b(Описание:) обобщенная_функция @b(tab) возвращает значение фукции @b(eq) в точке @b(x).
@b(Описание:) обобщенная функция @b(transform) возвращает координаты точки @b(point), преобразованные с помощью матрицы @b(matrix).
@b(Описание:) обобщенная функция @b(transpose) возвращает матрицу того же типа, что и @b(matrix) являющуютя результатом ее транспонирования.
@b(Описание:) обобщенная функция @b(unite-cols) объединяет столбцы матрицы (список списков) в вектор (список).
cons
)) ¶@b(Пример использования:) @begin[lang=lisp](code) (unite-cols ’((1 2 3) (4 5 6))) =>(1 2 3 4 5 6) @end(code)
@b(Описание:) обобщенная @b(unite-rows) объединяет строки матрицы (список списков) в вектор (список).
cons
)) ¶@b(Пример использования:) @begin[lang=lisp](code) (unite-rows ’((1 2 3) (4 5 6))) =>(1 2 3 4 5 6) @end(code)
<appr-bilinear>
) &key x1 x2 a2d) ¶<appr-linear>
) &key x1 a1d) ¶<matrix>
) &key dimensions initial-element initial-contents data element-type) ¶term-pdfcairo
) os) ¶gnuplot-vector
) s) ¶term-pngcairo
) os) ¶<appr-bilinear>
) stream) ¶<appr-linear>
) stream) ¶<geometric>
) stream) ¶<arithmetic>
) stream) ¶@b(Описание:) Класс @b(<appr-bilinear>) представляет билинейную интерполяцию.
Вектор реперных значений по первому направлению (измерению).
Вектор реперных значений по второму направлению (измерению).
Двумерный массив функций размерности которого, на единицу меньше
количества реперных значений по соответствующему
направлению (измерению).
@b(Описание:) Класс @b(<appr-linear>) представляет линейную интерполяцию.
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((a1 (make-instance ’<appr-linear>
:x1 (vector 1 2 3)
:a1d (vector 1 4 9)))
(a2 (make-instance ’<appr-linear>
:x1 (vector 2 3 4)
:a1d (vector 4 9 16))))
(loop :for i :from 0 :to 5 :by 1/5 :do
(format t "| ~5F | ~5F | ~5F |~%" i (approximate i a1) (approximate i a2))))
=>
| 0.0 | -2.0 | -6.0 |
| 0.2 | -1.4 | -5.0 |
| 0.4 | -0.8 | -4.0 |
| 0.6 | -0.2 | -3.0 |
| 0.8 | 0.4 | -2.0 |
| 1.0 | 1.0 | -1.0 |
| 1.2 | 1.6 | -0.0 |
| 1.4 | 2.2 | 1.0 |
| 1.6 | 2.8 | 2.0 |
| 1.8 | 3.4 | 3.0 |
| 2.0 | 4.0 | 4.0 |
| 2.2 | 5.0 | 5.0 |
| 2.4 | 6.0 | 6.0 |
| 2.6 | 7.0 | 7.0 |
| 2.8 | 8.0 | 8.0 |
| 3.0 | 9.0 | 9.0 |
| 3.2 | 10.0 | 10.4 |
| 3.4 | 11.0 | 11.8 |
| 3.6 | 12.0 | 13.2 |
| 3.8 | 13.0 | 14.6 |
| 4.0 | 14.0 | 16.0 |
| 4.2 | 15.0 | 17.4 |
| 4.4 | 16.0 | 18.8 |
| 4.6 | 17.0 | 20.2 |
| 4.8 | 18.0 | 21.6 |
| 5.0 | 19.0 | 23.0 |
@end(code)
@b(Описание:) класс @b(<linear>) представляет кубическое уравнение вида:
@begin[lang=c](code)
f(x)=@b(a)*x@sup(3)+@b(b)*x@sup(2)+@b(c)*x+@b(d)
@end(code)
.
Коэффициент при степени 3.
1.0
:a
Коэффициент при степени 2.
0.0
:b
Коэффициент при степени 1.
0.0
:c
Коэффициент при степени 0.
-1.0
:d
@b(Описание:) класс @b(<geometric>) представляет геометрическую прогрессию.
@b(Описание:) класс @b(<linear>) представляет линейное уравнение вида:
@b(Пример использования:)
@begin[lang=c](code)
f(x)=@b(a)*x+@b(b)
@end(code)
.
@b(Описание:) класс @b(<matrix>) представляет матрицу, определенную
через массив.
Создание:
@begin(list)
@item(при помощи функции matr-new)
@item( )
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(matr-new 2 3)
=> Matr 2х3
[ 0.0d0 0.0d0 0.0d0 ]
[ 0.0d0 0.0d0 0.0d0 ]
(matr-new 3 2 ’(1 2 3 4 5))
=> Matr 3х2
[ 1 2 ]
[ 3 4 ]
[ 5 NIL ]
@end(code)
add
.
(setf anti-diagonal)
.
anti-diagonal
.
backward-run
.
(setf col)
.
col
.
cols
.
convert-to-triangular
.
copy
.
determiant
.
dimensions
.
equivalent
.
equivalent
.
equivalent
.
initialize-instance
.
(setf main-diagonal)
.
(setf main-diagonal)
.
main-diagonal
.
matr-eval-*
.
matr-name-*
.
matrix->2d-list
.
(setf matrix-data)
.
matrix-data
.
(setf mref)
.
mref
.
multiply
.
multiply
.
print-object
.
(setf row)
.
row
.
rows
.
singular-p
.
solve-x
.
squarep
.
swap-cols
.
swap-cols*
.
swap-rows
.
swap-rows*
.
transform
.
transpose
.
Сдержимое матрицы.
:data
@b(Описание:) класс @b(<linear>) представляет квадратное уравнение вида:
@begin[lang=c](code)
f(x)=@b(a)*x@sup(2)+@b(b)*x+@b(c)
@end(code)
.
@b(Описание:) класс @b(<linear>) представляет уравнение четвертой степени вида:
@begin[lang=c](code)
f(x)=@b(a)*x@sup(4)+@b(b)*x@sup(3)+@b(c)*x@sup(2)+@b(d)*x+@b(e)
@end(code)
.
Коэффициент при степени 4.
1.0
:a
Коэффициент при степени 3.
0.0
:b
Коэффициент при степени 2.
0.0
:c
Коэффициент при степени 1.
0.0
:d
Коэффициент при степени 1.
-1.0
:e
Критические значения Gt для критерия Граббса. |—-+————————————-| | n | Одно наибольшее или одно наименьшее | | | значение при уровне значимости q | |—-+——————+——————| | | сыше 1% | свыше 5% | |—-+————————————-| | 3 | 1.155 | 1.155 | ............................................ ............................................ ............................................ | 40 | 3.381 | 3.036 | |—-+——————+——————| см. ГОСТ Р 8.736-2011
Функция для вычисления комплексной точности.
Определяет имя файла в каталоге поумолчанию.
@b(Описание:) функция @b(find-font-family) возвращает имя шрифта,
установленного в систему похожего на тот, что указан.
@b(Пример использования:)
@begin[lang=lisp](code)
(find-font-family :family "Arial")
(find-font-family :family "Courier New")
(find-font-family :family "Times New Roman")
@end(code)
Пример использования:
(table-apply-0 (make-table (split-range 1 4 3) (split-range 5 7 2)) #’vector) =>
((#(1.0 5.0) #(1.0 6.0) #(1.0 7.0))
(#(2.0 5.0) #(2.0 6.0) #(2.0 7.0))
(#(3.0 5.0) #(3.0 6.0) #(3.0 7.0))
(#(4.0 5.0) #(4.0 6.0) #(4.0 7.0)))
Пример использования:
;;(table-apply-1 (make-table (split-range 1 4 3) (split-range 5 7 2)) #’* 10.)
=>
(((1.0 5.0 50.0) (1.0 6.0 60.0) (1.0 7.0 70.0))
((2.0 5.0 100.0) (2.0 6.0 120.0) (2.0 7.0 140.0))
((3.0 5.0 150.0) (3.0 6.0 180.0) (3.0 7.0 210.0))
((4.0 5.0 200.0) (4.0 6.0 240.0) (4.0 7.0 280.0)))
gnuplot-vector
)) ¶automatically generated reader method
gnuplot-vector
)) ¶automatically generated writer method
gnuplot-vector
)) ¶automatically generated reader method
gnuplot-vector
)) ¶automatically generated writer method
@b(Описание:) обобщенная функция @b(items-by-summ) возвращает количество членов прогрессии, чтобы их сумма равнялась @b(summ).
<arithmetic>
) s) ¶@b(Описание:) функция @b(n) количество членов геометрической прогрессии, чтобы их сумма равнялась @b(S).
<geometric>
) s) ¶@b(Описание:) функция @b(n) количество членов геометрической прогрессии, чтобы их сумма равнялась @b(S).
gnuplot-vector
) (displacement vector
)) ¶term-pngcairo
) (f-name string
) os) ¶term-pdfcairo
) (f-name string
) os) ¶plot
.
:enhanced
math/gnuplot::no-enhanced
:mono
math/gnuplot::mono/color
(math/gnuplot::find-font-family :family "times new roman")
math/gnuplot::font
12
math/gnuplot::fontscale
0.5
math/gnuplot::linewidth
:rounded
math/gnuplot::rounded/butt/square
1.0
math/gnuplot::dashlength
(math/gnuplot:rgb 255 255 255 255)
math/gnuplot::background
(quote (15 10))
math/gnuplot::size
По умолчанию - пиксели|пиксели=72*in|пиксели=72/25.4*cm
:cm
math/gnuplot::size-units
@b(Пример использования:)
@begin[lang=gnuplot](code)
set term pngcairo
{{no}enhanced} {mono|color}
{{no}transparent} {{no}crop} {background <rgbcolor>}
{font <font>} {fontscale <scale>}
{linewidth <lw>} {rounded|butt|square} {dashlength <dl>}
{pointscale <ps>}
{size <XX>{unit},<YY>{unit}}
@end(code)
Jump to: | (
<
A B C D E F G H I L M N O P R S T U V W |
---|
Jump to: | (
<
A B C D E F G H I L M N O P R S T U V W |
---|
Jump to: | *
+
A B C D E F L M N O P Q R S X |
---|
Jump to: | *
+
A B C D E F L M N O P Q R S X |
---|
Jump to: | <
A C E F G H L M P R S T |
---|
Jump to: | <
A C E F G H L M P R S T |
---|