Zhou Chao Bai Feng Shan
(Department of mathematics, Tsinghua University, Beijing 100084, China)
1 open Source code --- A noteworthy trend
Open Source Code The development in the last few years of the 20th century gave people a fresh feeling. Open source software, open source code mode, open source code culture, and open document writing; Richard Stallman and his GNU projects ), linus Torvalds and the Linux operating system named after him. These names have appeared on various media for countless times and have quickly become the concept of the information field. Big companies in the information industry, such as IBM, sun, and Netscape, have been involved with the open source code platform with unprecedented enthusiasm.
Recently, the Motion Picture Association of America (Motion Picture Association) controlled the decss release case, which raised the question of the issuance method and copyright of computer software. The U.S. Circuit Court ruled that computers Program Code is not only a function expression, but also an expression of thoughts, and judges the Motion Picture Association of America to defeat. The key is that decss is released with source code.
The rise of open source movement is almost explosive. Linux kernels are constantly updated, new Linux releases, and more open source software are available. Now, we can trace open-source software in almost any type of software. The following table provides some typical examples:
Operating System: Linux, BSD series, Sun solaris8.0
Office suite: Star office, koffice
Development tools: C ++: C-Forge, Java: netbeans, anfy, etc.
Network server software: Apache, Wu-FTP, Sendmail
Web Browser: Netscape series, lynx
For more information about the open source code movement, GNU program, and Linux operating systems, see references [1], [2], [6], and [7].
The software mentioned above is universal. More and more open-source software are available in numerical and symbolic computing software. This article focuses on two open-source software for numerical computation, SCILAB and GNU Ave ave, and compares them with the well-known MATLAB, indicating that both SCILAB and GNU octave can be used to replace Matlab.
2 open-source Mathematical Software
In fact, we have been using open source software for a long time. A famous example is latex typographical software. Open source code has always been an important way of working in the field of computing mathematics and science and engineering computation, and has been doing so for many years. In the field of computing mathematics, Algorithm It is natural and clear and efficient to use programs. For us, the source code representing the mathematical algorithm is a way of communication of ideas. It should not be private by some people and be protected by copyright. Netlib (www.netlib.org) is familiar to many scholars in this field and is an important medium for open-source mathematical software communication over the years.
However, in recent years, the research and user of mathematical software seem to be more attracted by commercial mathematical software, such as Mathematica, Matlab, maple, and SAS. It is undeniable that these software products are indeed very good and have good performance. However, they are expensive and proprietary. They are restricted in use and have limited after-sales service and technical support in China. Reflecting on this phenomenon, it is not difficult to find out the attractiveness of these commercial software, mainly in the friendly user interface and perfect graphic functions.
In any software, if the original code is not released, the problems in the software can only be corrected by the software developer. For example, the function in MATLAB, for (X-a) n polynomial Root result is not ideal, for example, we for (x-1) 50 root, then this result will appear, the first root is 2.73693805237014, and the last one is 0.364760488907891. We cannot replace it with a better algorithm. This issue is not involved in every upgrade of Matlab, so users have to wait again and again. If open-source software is used, the result is another way. You can modify it by yourself and share the benefits with everyone.
3 SCILAB for open source software
SCILAB is an open-source free software developed by the French INRIA lab. It was initially developed for system control and signal processing. Compared with the traditional open-source mathematical software, SCILAB has a friendly user interface and comprehensive graphic functions. SCILAB software consists of three parts: language interpreter, SCILAB routine function library, Fortran and C routine library.
SCILAB provides a computing environment that explains the operation and has distinctive features.
(1) cross-platform)
With the efforts of the INRIA lab and the cooperation of some volunteers, SCILAB can be used in almost any computer environment. On Windows 9x/NT, Common Unix/Linux-XWindow systems, and Apple's Macintosh systems, we can find the binary release version of the running SCILAB.
More environments will be supported by SCILAB. If you need to use it in some special operating system environments, You can compile an executable version by yourself.
(2) compatibility with MATLAB (MatLab-compatible)
SCILAB is an advanced language compatible with MATLAB, specifically,
It has a wide range of data types, and matrix operations are as natural as normal numerical operations. This is quite similar to MATLAB, which is easy to use.
Provides a basic function and function set for various computations. It can handle more complex matrix operations, such as fractional matrices and matrix polynomials, and can process complex objects such as charts and lists.
Provides an open and programmable environment for easy addition of basic functions.
Supports developing function libraries for special applications in the form of toolbox.
The SCICOS Toolkit can quickly and conveniently perform mathematical modeling, and its function is close to that of the MATLAB software.
(3) graphical interface
The interface is similar to MATLAB, and SCILAB is easy for users familiar with Matlab.
(4) open source code
SCILAB is a completely open mathematical computing environment for us. We can expand functions at the underlying layer, and even optimize and customize our own SCILAB. Among the releases of SCILAB, one of the releases is not available in general mathematical software, which is usually named as follows:
Scilab-2.5-src.tar.gz
The software name SCILAB and version 2.5 are followed by a SRC, which is short for the source code. Such a release represents the release package of the original code, which contains a copy of the original code of SCILAB. This release package is a typical feature of open source software.
The readme file of SCILAB clearly states that this is a free software and is free for all users. You only need to enter a user description according to the format, and then use email to register.
(5) Parallel Computing:
SCILAB integrates PVM (parallel virutal machine), so we can perform parallel computing in the network environment. MATLAB does not have this function. For more information about parallel computing of SCILAB, see [8].
It can be seen that SCILAB is a relatively complete computing environment that can meet our requirements in most cases. We compared SCILAB and Matlab in terms of usage, functions and performance. From the results, SCILAB is an excellent computing platform. Compared with expensive commercial software, SCILAB is no less than commercial software in terms of performance and ease of use.
4. Free mathematical software GNU Ave ave
GNU Ave ave is a freely released software supported by the Free Software Foundation following the GPL protocol (GNU General Public License). The author is John W. some volunteers headed by Eaton. It provides an environment that supports a high-level language called GNU Ave ave, which is compatible with MATLAB and is mainly used for numerical computation. It provides a convenient command line method for solving linear and non-linear Problems and doing some numerical simulation.
Octave also provides toolkit for solving general linear algebra problems, root-seeking of non-linear equations, integration of conventional functions, processing of polynomials, and processing of ordinary and differential equations. It also easily uses the interface method provided by Ave ave to expand and customize features.
Compared with SCILAB described earlier, the first thing they share is open source software.
Compared with SCILAB, Ave ave has better syntax compatibility with MATLAB, with almost no difference. For example, Ave ave also uses M files to Expand functions and define functions. Therefore, users familiar with Matlab are more likely to accept the octave environment.
The functions of Ave ave are simpler than those of SCILAB, which makes it less meaningful for some users than SCILAB.
Unfortunately, there is no graphical interface for Ave ave at present. We can only interact with each other through commands.
However, Ave ave has its own characteristics:
(1) It is a GPL software. The significance of GPL is not described here. We should point out that it allows users to independently release the software while following the GPL protocol, it can also be included in your product. SCILAB does not allow users to use SCILAB for free.
(2) it provides better programmable performance, more powerful octave language, and almost all system functions. Octave is closer to C syntax in terms of syntax, for example, you can provide a plus sign (++) and a similar budget sign. In this way, we can add some more powerful and easy-to-use extensions in the octave environment. Unlike in MATLAB and SCILAB environments, system resources cannot be fully utilized.
(3) Its computing libraries are all written in C, while SCILAB is basically written in FORTRAN. This is also a useful resource.
5 Conclusions and thoughts
(1) Open Source Code will become one of the important methods for software development and release. SCILAB and Ave ave described in this article are both open-source mathematical software. SCILAB is free to use, and Ave ave is not only free to use, but also can be released by users following the GPL protocol.
(2) it is foreseeable that due to its openness, the free mathematical software will be enriched with functions and its performance will be improved gradually to meet the requirements of more users.
(3) compared with the famous commercial mathematical software MATLAB, SCILAB is not inferior in terms of functionality or performance. At present, after-sales service and technical support in China are limited, and commercial mathematical software is expensive, it can completely replace Matlab.
(4) This article mainly introduces the numerical computing software. Mathematica and maple are currently popular commercial software in symbol computing. The open-source symbolic computing software has developed rapidly, and yacas is currently favored.
(5) The development and development of the domestic scientific computing environment is a problem that has been explored by computational mathematics and scientific and engineering computing workers in China for many years. With the help of the existing free mathematical software, especially the free mathematical software that can be released by users following the GPL protocol, it may be more realistic.
References (10 articles in total, omitted)
Richard Stallman: the author of software such as GCC (a c compiler) and GNU Emacs. The creator of the GNU program and FSF, and the initiator of the open source code movement.
GNU Projects: this plan created by Stallman aims to build an open and free UNIX version. GNU has not yet achieved its goal, but has produced some important tools which will be incorporated into Linux and become a fully-featured operating system. To protect his work, Stallman established the Free Software Foundation (www.fsf.org) and drafted the General Public License (GPL ). GPL has become a norm for Linux and many other programs. For more information, see [2].
Decss: a decryption algorithm based on the location and password of a DVD. The Motion Picture Association of America believes that the publication of the decss algorithm code on the Internet will promote the popularity of pirated DVDs.
Linux: an operating system that uses GPL as the publishing protocol. Common Release versions include RedHat, slackware, and Debian. For more information about Linux, see [6].
Apache: A web server with the highest market share. Apache is an open source code program under loose BSD Protocol constraints. developers can process it as needed. For more information about Apache, see [10].
Netlib: An organization that collects numerical algorithms, scientific computing, and free software in related fields. It is mainly run by the at&t Bell Laboratory, the University of Tennessee, and the Oak Ridge National Laboratory, it is the most important place for free mathematical software exchange. It not only collects the most comprehensive library of mathematical algorithms, but also provides a good algorithm search engine.
INRIA lab: For more information about this lab, see [4].
PVM: This is a popular Parallel Virtual System released by netlib. SCILAB integrates the PVM interface in the runtime environment. To use PVM, run the PVM driver first.