含有章节索引的中文 文章模板

::-- hoxide [2005-07-30 14:02:03]

1. Maxima

1.1. 简介

  • 用LISP语言编写的强大的计算机代数系统.

1.2. 官方页面

http://maxima.sourceforge.net/

1.3. 例子

1.4. 讨论

  • 暂时还不太会用, 比较复杂.

含有章节索引的中文 文章模板

::-- hoxide [2005-07-30 12:36:55]

2. Mathomatic

2.1. 简介

  • 是 Mathomatic 不是 Mathematica , 公元2005年7月30日, 在更新 cygwin 的时候偶然发现的. Mathematica 是一个轻便的通用计算机代数系统 CAS (Computer Algebra System), 它是用C写成的, 使用 GNU LGPL license.

2.2. 官方页面

http://mathomatic.orgserve.de/math/

2.3. 文档

2.4. 例子

2.4.1. 一些简单的例子

Mathomatic Version 12.3.2 (www.mathomatic.com)
Copyright (C) 1987-2005 George Gesslein II.
40 equation spaces allocated (total size is 9600 KBytes).

1-> ; Simplification tests.
1-> 
1-> clear all
1-> t=2*(x^2 - y^2)^6 - (x^2 - y^2)^5*(2 x^2 - 3)

#1: t = (2*(((x^2) - (y^2))^6)) - ((((x^2) - (y^2))^5)*((2*(x^2)) - 3))

1-> simplify

#1: t = (((y^2) - (x^2))^5)*((2*(y^2)) - 3)

1-> t=a^3/((a-b)*(a-c)) + b^3/((b-c)*(b-a)) + c^3/((c-a)*(c-b))

              (a^3)               (b^3)               (c^3)
#2: t = ----------------- + ----------------- + -----------------
        ((a - b)*(a - c))   ((b - c)*(b - a))   ((c - a)*(c - b))

2-> simplify

#2: t = a + b + c

2-> t=(x^6+a^6)*(x+1)/((x^6+a^6)*(x^2-a^2)+a^2*x^2*(x^4-a^4))+a^2*x^2*(x+1)/(x^6-a^6-a^2*x^2*(x^2-a^2))

                              ((x^6) + (a^6))*(x + 1)                                       (a^2)*(x^2)*(x + 1)
#3: t = ------------------------------------------------------------------- + -----------------------------------------------
        ((((x^6) + (a^6))*((x^2) - (a^2))) + ((a^2)*(x^2)*((x^4) - (a^4))))   ((x^6) - (a^6) - ((a^2)*(x^2)*((x^2) - (a^2))))

3-> simplify
Found polynomial Greatest Common Divisor.  Division simplified.
Found polynomial Greatest Common Divisor.  Division simplified.

            (x + 1)
#3: t = ---------------
        ((x^2) - (a^2))

3-> t=((a*n + b*m)^2 + (a*m - b*n)^2) / ((a*p + b*q)^2 + (a*q - b*p)^2)

        ((((a*n) + (b*m))^2) + (((a*m) - (b*n))^2))
#4: t = -------------------------------------------
        ((((a*p) + (b*q))^2) + (((a*q) - (b*p))^2))

4-> simplify

        ((n^2) + (m^2))
#4: t = ---------------
        ((p^2) + (q^2))

4-> y=((p*x^2+(k-s)*x+r)^2-(p*x^2+(k+s)*x+r)^2)/((p*x^2+(k+t)*x+r)^2-(p*x^2+(k-t)*x+r)^2)

        ((((p*(x^2)) + ((k - s)*x) + r)^2) - (((p*(x^2)) + ((k + s)*x) + r)^2))
#5: y = -----------------------------------------------------------------------
        ((((p*(x^2)) + ((k + t)*x) + r)^2) - (((p*(x^2)) + ((k - t)*x) + r)^2))

5-> simplify

        -1*s
#5: y = ----
         t

5-> t=(1 - (1-(y+1)/(x+y+1)) / (1-x/(x+y+1))) / ((y+1)^2 - x / (1+x/(y-x+1))*(x*(y+1)/(y-x+1) - x))

                          (y + 1)
                   (1 - -----------)
                        (x + y + 1)
              (1 - -----------------)
                             x
                   (1 - -----------)
                        (x + y + 1)
#6: t = -----------------------------------
                           x*(y + 1)
                       x*(----------- - x)
                          (y - x + 1)
        (((y + 1)^2) - -------------------)
                                  x
                        (1 + -----------)
                             (y - x + 1)

6-> simplify
Found polynomial Greatest Common Divisor.  Division simplified.

                            1
#6: t = -----------------------------------------
        (1 + (y^2) + (2*y) + (x*(y + 1)) + (x^2))

6-> y=((2*((x*(x + (((x^2) - 1)^(1/2)))) - 1)) + 1)/((2*x*((x^2) - 1)) + ((((x^2) - 1)^(1/2))*((2*(x^2)) - 1)))

                                         1
               ((2*((x*(x + (((x^2) - 1)^-))) - 1)) + 1)
                                         2
#7: y = -------------------------------------------------------
                                           1
        ((2*x*((x^2) - 1)) + ((((x^2) - 1)^-)*((2*(x^2)) - 1)))
                                           2

7-> simplify

               1
#7: y = ---------------
                     1
        (((x^2) - 1)^-)
                     2


Thank you for using Mathomatic!


2.5. 讨论

  • 个人感觉非常好用, 比 Maxima 简单. --- Hoxide

含有章节缩影的FLOSS中文 文章模板

::-- hoxide [2005-07-30 12:48:24]

3. Octave

3.1. 简介

  • 和Matlab语言级兼容的数学环境, 最初用来辅助化学教学, 现在成长为有广泛用户支持的第一大开源计算环境.

3.2. 官方页面

http://www.octave.org/

3.3. 下载

octave-2.1.50a-inst.exe

3.4. 文档

3.5. 例子

3.6. 讨论

  • 前一段时间一直在用Octave, 总体不错, 但是虽然有Octave-forge的支持, Octave的库和Matlab比起来还是太单薄.
    • --- Hoxide

含有章节索引的FLOSS中文 文章模板

::-- hoxide [2005-07-30 12:48:24]

4. GNU Plot

4.1. 简介

  • GNU的数学绘图工具, 功能非常强大, 可以画出非常漂亮的图像, 并能输出为各种格式.

4.2. 官方页面

4.3. 文档

4.4. 例子

4.5. 讨论

  • GNU Plot对初学者来说的确有一定难度, 不过一旦你学会了他, 也就学会了有关数学绘图的基础知识, 用起来就得心应手. --- Hoxide

含有章节索引的中文 文章模板

::-- hoxide [2005-07-29 11:38:45]

5. MetaPost

简述

5.1. 用MetaPost 3d 创建三维动画

原来的脚本是linux下的, win下不好用, 偶改成用 ImageMagick, 和GhostScrpit.

#! /bin/sh

/bin/rm -f animpoly.log
for i in `ls animpoly.*| grep 'animpoly.[0-9]'`;do
echo $i
echo '=============='
awk  < $i '{print} /^%%Page: /{print "181 156 translate\n"}' > $i.ps
gswin32c  -sDEVICE=ppm -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -r36 -q -sOutputFile=$i.ppm $i.ps
rm -f $i.ps
done
rm -f animpoly.gif
convert animpoly.*.ppm -adjoin animpoly.gif
rm -f animpoly.*.ppm

演示例子:

--- MetaPost Latex的配套绘图工具.

项目版本下载页面模板

::-- hoxide [2005-07-22 09:05:47]

6. GLPK

简述

GNU 线性规划工具箱 (GNU Linear Programming Kit). 线性规划是一类常见的规划问题, 国内普遍使用的是Lindo 和 Matlab 优化工具箱, 但这两个软件都是商业软件.

GLPK 是 GNU 的线性规划软件解决方案, 他快速通用, 不仅可处理 LP, MPS, 等标准 LP 问题描述格式文件, 而且还支持功能更强大的 GNU MathProg 建模语言.

GLPK 以标准的 GNU 代码包形式发布, 对unix上的用户简单得 configure/make/install 就可以使用了. 对windows上的用户暂未看到其他编译版本. 为此我用 Mingw 编译了一个版本, 提供下载. 另附 PdfLaTeX 编译的参考手册.

感谢 DreamY 关于Mingw编译环境使用方面的指导, 另外感谢 huangyi 在普通机器上测试了GLPK的第一个mingw编译版本. 使用Windows+Visual C++的用户,可以使用VC++的命令行工具nmake或者IDE进行编译.

7. 官方页面

http://www.gnu.org/software/glpk/glpk.html

7.1. 版本

说明

7.1.1. 独立文件

  • glpsol.exe

    • --- 独立的 LP/MIP solver, 一般只要这个文件就够了, 命令行工具.

C:\>glpsol --help
Usage: glpsol [options...] filename

General options:
   --glp             read LP/MIP model in GNU LP format
   --mps             read LP/MIP problem in fixed MPS format (default)
   --freemps         read LP/MIP problem in free MPS format
   --cpxlp           read LP/MIP problem in CPLEX LP format
   --math            read LP/MIP model written in GNU MathProg modeling
                     language
   -m filename, --model filename
                     read model section and optional data section from
                     filename (the same as --math)
   -d filename, --data filename
                     read data section from filename (for --math only);
                     if model file also has data section, that section
                     is ignored
   -y filename, --display filename
                     send display output to filename (for --math only);
                     by default the output is sent to stdout
   --min             minimization
   --max             maximization
   --scale           scale problem (default)
   --noscale         do not scale problem
   --simplex         use simplex method (default)
   --interior        use interior point method (for pure LP only)
   -o filename, --output filename
                     write solution to filename in plain text format
   --bounds filename
                     write sensitivity bounds to filename in plain
                     text format (LP only)
   --tmlim nnn       limit solution time to nnn seconds
   --memlim nnn      limit available memory to nnn megabytes
   --check           do not solve problem, check input data only
   --name probname   change problem name to probname
   --plain           use plain names of rows and columns (default)
   --orig            try using original names of rows and columns
                     (default for --mps)
   --wglp filename   write problem to filename in GNU LP format
   --wmps filename   write problem to filename in fixed MPS format
   --wfreemps filename
                     write problem to filename in free MPS format
   --wcpxlp filename write problem to filename in CPLEX LP format
   --wtxt filename   write problem to filename in plain text format
   -h, --help        display this help information and exit
   -v, --version     display program version and exit

Options specific to simplex method:
   --std             use standard initial basis of all slacks
   --adv             use advanced initial basis (default)
   --bas filename    read initial basis from filename in MPS format
   --steep           use steepest edge technique (default)
   --nosteep         use standard "textbook" pricing
   --relax           use Harris' two-pass ratio test (default)
   --norelax         use standard "textbook" ratio test
   --presol          use presolver (default; assumes --scale and --adv)
   --nopresol        do not use presolver
   --wbas filename   write final basis to filename in MPS format

Options specific to MIP:
   --nomip           consider all integer variables as continuous
                     (allows solving MIP as pure LP)
   --first           branch on first integer variable
   --last            branch on last integer variable
   --drtom           branch using heuristic by Driebeck and Tomlin
                     (default)
   --mostf           branch on most fractional varaible
   --dfs             backtrack using depth first search
   --bfs             backtrack using breadth first search
   --bestp           backtrack using the best projection heuristic
                     (default)
   --bestb           backtrack using node with best local bound

For description of the MPS and CPLEX LP formats see Reference Manual.
For description of the modeling language see "GLPK: Modeling Language
GNU MathProg". Both documents are included in the GLPK distribution.

See GLPK web page at <http://www.gnu.org/software/glpk/glpk.html>.

Please report bugs to <[email protected]>.

7.1.2. 完整程序

7.1.3. 参考手册

  • refman.pdf

    • --- GLPK 参考手册, 包括c API调用方法, 和glpsol的用法.
  • lang.pdf

    • --- Modeling Language GNU MathProg 语言参考

含有章节索引的中文 文章模板

::-- hoxide [2005-07-29 12:02:43]

Contents

  1. 例子

7.1.4. 例子

7.1.5. What's New

7.1.6. TODO

--- GNU Linear Programming Kit, GNU 线性规划工具箱.