annotate WWW/readme.html @ 4720:e759d01692db ss-2-1-53

[project @ 2004-01-23 04:13:37 by jwe]
author jwe
date Fri, 23 Jan 2004 04:13:37 +0000
parents 6929a31e7624
children b2ce28713791
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
1 <!doctype html public "-//IETF//DTD HTML Strict//EN">
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
2 <html>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
3 <head>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
4 <title> Octave -- a high-level language for numerical computations </title>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
5 </head>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
6
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
7 <h1>A Brief Introduction to Octave</h1>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
8
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
9 <ul>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
10 <li><a href="readme.html#Overview">Overview</a></li>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
11 <li><a href="readme.html#Language Features">Language Features</a></li>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
12 <li><a href="readme.html#Distribution Terms">Distribution Terms</a></li>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
13 <li><a href="readme.html#Availability">Availability</a></li>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
14 <li><a href="readme.html#Installation and Bugs">Installation and Bugs</a></li>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
15 <li><a href="readme.html#Documentation">Documentation</a></li>
2595
843a5f07e9c7 [project @ 1996-12-14 16:31:56 by jwe]
jwe
parents: 2594
diff changeset
16 <li><a href="readme.html#Implementation">Implementation</a></li>
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
17 </ul>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
18 <hr>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
19
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
20 <h2><a name="Overview">Overview</a></h2>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
21 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
22 Octave is a high-level language, primarily intended for numerical
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
23 computations. It provides a convenient command line interface for
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
24 solving linear and nonlinear problems numerically, and for performing
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
25 other numerical experiments. It may also be used as a batch-oriented
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
26 language.
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
27 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
28
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
29 <h2><a name="Language Features">Language Features</a></h2>
2594
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
30 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
31 The best way to introduce Octave's language is probably to show a few
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
32 simple examples.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
33 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
34
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
35 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
36 If you are new to Octave, I recommend that you try these examples to
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
37 begin learning Octave by using it. Lines marked with
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
38 <tt>octave:13></tt> are lines you type, ending each with a carriage
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
39 return. Octave will respond with an answer, or by displaying a graph.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
40 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
41
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
42 <h3>Creating a Matrix</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
43
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
44 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
45 To create a new matrix and store it in a variable so that it you can
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
46 refer to it later, type the command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
47
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
48 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
49 octave:1> a = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
50 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
51
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
52 Octave will respond by printing the matrix in neatly aligned columns.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
53 Ending a command with a semicolon tells Octave to not print the result
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
54 of a command. For example
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
55
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
56 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
57 octave:2> b = rand (3, 2);
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
58 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
59
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
60 will create a 3 row, 2 column matrix with each element set to a random
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
61 value between zero and one.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
62 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
63
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
64 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
65 To display the value of any variable, simply type the name of the
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
66 variable. For example, to display the value stored in the matrix
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
67 <tt>b</tt>, type the command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
68
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
69 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
70 octave:3> b
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
71 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
72
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
73 <h3>Matrix Arithmetic</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
74
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
75 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
76 Octave has a convenient operator notation for performing matrix
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
77 arithmetic. For example, to multiply the matrix <tt>a</tt> by a
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
78 scalar value, type the command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
79
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
80 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
81 octave:4> 2 * a
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
82 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
83
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
84 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
85 To multiply the two matrices <tt>a</tt> and <tt>b</tt>, type the
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
86 command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
87
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
88 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
89 octave:5> a * b
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
90 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
91
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
92 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
93 To form the matrix product <tt>transpose (a) * a</tt>, type the command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
94
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
95 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
96 octave:6> a' * a
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
97 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
98 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
99
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
100 <h3>Solving Linear Equations</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
101
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
102 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
103 To solve the set of linear equations <tt>Ax = b</tt> use the left
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
104 division operator, <tt>\</tt>:
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
105
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
106 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
107 octave:7> a \ b
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
108 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
109
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
110 This is conceptually equivalent to <tt>inv (A) * b</tt>, but avoids
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
111 computing the inverse of a matrix directly.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
112 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
113
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
114 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
115 If the coefficient matrix is singular, Octave will print a warning
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
116 message and compute a minimum norm solution.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
117 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
118
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
119 <h3>Integrating Differential Equations</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
120
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
121 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
122 Octave has built-in functions for solving nonlinear differential
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
123 equations of the form
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
124
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
125 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
126 dx
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
127 -- = f (x, t)
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
128 dt
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
129 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
130
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
131 with the initial condition
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
132
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
133 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
134 x(t = t0) = x0
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
135 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
136 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
137
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
138 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
139 For Octave to integrate equations of this form, you must first provide a
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
140 definition of the function <tt> f (x, t)</tt>. This is
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
141 straightforward, and may be accomplished by entering the function body
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
142 directly on the command line. For example, the following commands
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
143 define the right hand side function for an interesting pair of
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
144 nonlinear differential equations. Note that while you are entering a
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
145 function, Octave responds with a different prompt, to indicate that it
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
146 is waiting for you to complete your input.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
147
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
148 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
149 octave:8> function xdot = f (x, t)
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
150 >
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
151 > r = 0.25;
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
152 > k = 1.4;
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
153 > a = 1.5;
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
154 > b = 0.16;
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
155 > c = 0.9;
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
156 > d = 0.8;
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
157 >
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
158 > xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
159 > xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
160 >
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
161 > endfunction
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
162 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
163 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
164
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
165 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
166 Given the initial condition
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
167
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
168 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
169 x0 = [1; 2];
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
170 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
171
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
172 and the set of output times as a column vector (note that the first
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
173 output time corresponds to the initial condition given above)
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
174
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
175 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
176 t = linspace (0, 50, 200)';
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
177 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
178
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
179 it is easy to integrate the set of differential equations:
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
180
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
181 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
182 x = lsode ("f", x0, t);
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
183 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
184
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
185 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
186 The function <tt>lsode</tt> uses the Livermore Solver for Ordinary
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
187 Differential Equations, described in A. C. Hindmarsh, <em>ODEPACK, a
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
188 Systematized Collection of ODE Solvers</em>, in: Scientific Computing,
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
189 R. S. Stepleman et al. (Eds.), North-Holland, Amsterdam, 1983, pages
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
190 55-64.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
191 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
192
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
193 <h3>Producing Graphical Output</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
194
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
195 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
196 To display the solution of the previous example graphically, use the
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
197 command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
198
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
199 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
200 plot (t, x)
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
201 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
202 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
203
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
204 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
205 If you are using the X Window System, Octave will automatically create
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
206 a separate window to display the plot. If you are using a terminal that
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
207 supports some other graphics commands, you will need to tell Octave what
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
208 kind of terminal you have. Type the command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
209 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
210
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
211 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
212 gset term
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
213 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
214
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
215 to see a list of the supported terminal types. Octave uses
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
216 <tt>gnuplot</tt> to display graphics, and can display graphics on any
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
217 terminal that is supported by <tt>gnuplot</tt>.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
218
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
219 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
220 To capture the output of the plot command in a file rather than sending
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
221 the output directly to your terminal, you can use a set of commands like
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
222 this
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
223
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
224 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
225 gset term postscript
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
226 gset output "foo.ps"
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
227 replot
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
228 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
229
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
230 This will work for other types of output devices as well. Octave's
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
231 <tt>gset</tt> command is really just piped to the <tt>gnuplot</tt>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
232 subprocess, so that once you have a plot on the screen that you like,
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
233 you should be able to do something like this to create an output file
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
234 suitable for your graphics printer.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
235 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
236
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
237 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
238 Or, you can eliminate the intermediate file by using commands like this
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
239
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
240 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
241 gset term postscript
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
242 gset output "|lpr -Pname_of_your_graphics_printer"
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
243 replot
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
244 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
245
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
246 <h3>Editing What You Have Typed</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
247
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
248 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
249 At the Octave prompt, you can recall, edit, and reissue previous
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
250 commands using Emacs- or vi-style editing commands. The default
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
251 keybindings use Emacs-style commands.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
252 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
253
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
254 <h3>Getting Help</h3>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
255
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
256 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
257 Octave has an extensive help facility. The same documentation that is
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
258 available in printed form is also available from the Octave prompt,
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
259 because both forms of the documentation are created from the same input
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
260 file.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
261 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
262
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
263 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
264 In order to get good help you first need to know the name of the command
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
265 that you want to use. This name of the function may not always be
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
266 obvious, but a good place to start is to just type <tt>help</tt>.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
267 This will show you all the operators, reserved words, functions,
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
268 built-in variables, and function files. You can then get more
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
269 help on anything that is listed by simply including the name as an
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
270 argument to help. For example,
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
271
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
272 <pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
273 help plot
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
274 </pre>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
275
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
276 will display the help text for the <tt>plot</tt> function.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
277 </p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
278
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
279 <p>
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
280 The complete text of the manual is availabe from Octave's command line
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
281 using the command <tt>help -i</tt>. Because it is written in Texinfo,
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
282 it is also possible to put
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
283 <a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave)">the manual
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
284 on the WWW</a>.
64dcc39370e3 [project @ 1996-12-14 16:28:46 by jwe]
jwe
parents: 2591
diff changeset
285 </p>
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
286
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
287 <h2><a name="Distribution Terms">Distribution Terms</a></h2>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
288 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
289 Octave is free software; you can redistribute it and/or modify it
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
290 under the terms of the
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
291 <a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave)Copying">GNU
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
292 General Public License</a> as published by the Free Software
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
293 Foundation; either version 2, or (at your option) any later version.
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
294 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
295
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
296 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
297 Octave is distributed in the hope that it will be useful, but WITHOUT
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
298 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
299 FITNESS FOR A PARTICULAR PURPOSE. See the file COPYING for more
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
300 details.
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
301 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
302
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
303 <h2><a name="Availability">Availability</a></h2>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
304 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
305 The latest released version of Octave is always available via
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
306 anonymous ftp from
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
307 <a href="ftp://ftp.che.wisc.edu/pub/octave">ftp://ftp.che.wisc.edu/pub/octave</a>.
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
308 Complete source and binaries for several popular systems are available.
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
309 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
310
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
311 <h2><a name="Installation and Bugs">Installation and Bugs</a></h2>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
312 <p>
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
313 Octave requires approximately 125MB of disk storage to unpack and
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
314 compile from source (significantly less if you don't compile with
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
315 debugging symbols or create shared libraries). Once installed, Octave
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
316 requires approximately 65MB of disk space (again, considerably less if
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
317 you don't build shared libraries or the binaries and libraries do not
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
318 include debugging symbols).
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
319 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
320
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
321 <p>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
322 In order to build Octave, you will need a current version of g++,
3150
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
323 libstdc++, and GNU make.
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
324 </p>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
325
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
326 <p>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
327 <b>You must have GNU Make to compile Octave</b>. Octave's Makefiles
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
328 use features of GNU Make that are not present in other versions of
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
329 make. GNU Make is very portable and easy to install.
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
330 </p>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
331
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
332 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
333 See the notes in the files INSTALL and INSTALL.OCTAVE for more
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
334 specific installation instructions, including directions for
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
335 installing Octave from a binary distribution.
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
336 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
337
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
338 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
339 The file BUGS contains a recommended procedure for reporting bugs, as
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
340 well as a list of known problems and possible fixes.
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
341 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
342
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
343 <h2><a name="Documentation">Documentation</a></h2>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
344
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
345 <p>
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
346 Octave's manual has been revised for version 2.0, but it is lagging a
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
347 bit behind the development of the software. In particular, there is
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
348 currently no complete documentation of the C++ class libraries or the
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
349 support for dynamic linking and user-defined data types. If you
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
350 notice ommissions or inconsistencies, please report them as bugs to
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
351 bug-octave@bevo.che.wisc.edu. Specific suggestions for ways to
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
352 improve Octave and its documentation are always welcome.
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
353 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
354
2885
a65b62d2f630 [project @ 1997-04-26 18:56:10 by jwe]
jwe
parents: 2607
diff changeset
355 <h2><a name="Implementation">Implementation</a></h2>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
356 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
357 Octave is being developed with the Free Software Foundation's make,
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
358 bison (a replacement for YACC), flex (a replacement for lex), gcc/g++,
3150
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
359 and libstdc++ on an Intel Pentium II system running Linux/GNU. It
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
360 should be possible to install it on any machine that runs GCC/G++. It
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
361 may also be possible to install it using other implementations of
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
362 these tools, but it will most certainly require much more work. Do
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
363 yourself a favor and get the GNU development tools, either via
3285
6929a31e7624 [project @ 1999-10-13 21:59:11 by jwe]
jwe
parents: 3150
diff changeset
364 anonymous ftp from ftp.gnu.org or by writing the Free Software
3150
f60acc8381e7 [project @ 1998-02-06 22:45:32 by jwe]
jwe
parents: 2885
diff changeset
365 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
366 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
367
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
368 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
369 The underlying numerical solvers are currently standard Fortran ones
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
370 like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
371 of C++ classes (see the files in the libcruft and liboctave
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
372 subdirectories). If possible, the Fortran subroutines are compiled
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
373 with the system's Fortran compiler, and called directly from the C++
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
374 functions. If that's not possible, they are translated with f2c and
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
375 compiled with a C compiler. Better performance is usually achieved if
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
376 the intermediate translation to C is avoided.
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
377 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
378
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
379 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
380 The library of C++ classes may also be useful by itself.
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
381 </p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
382
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
383 <hr>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
384 <p>
2607
a3792f2bf9ff [project @ 1997-01-17 18:54:19 by jwe]
jwe
parents: 2595
diff changeset
385 Back to the <a href="http://www.che.wisc.edu/octave">Octave home page</a>.
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
386 </p>
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
387 <hr>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
388 <p>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
389 <a href="http://www.che.wisc.edu/~jwe">John W. Eaton</a><br>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
390 <a href="mailto:jwe@bevo.che.wisc.edu"><i>jwe@bevo.che.wisc.edu</i></a><br>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
391 University of Wisconsin<br>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
392 Department of Chemical Engineering<br>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
393 Madison WI 53719
2591
140fd45c1b84 [project @ 1996-12-14 04:33:21 by jwe]
jwe
parents: 2339
diff changeset
394 </p>
2339
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
395 </body>
8d7454ead97e [project @ 1996-07-24 07:18:22 by jwe]
jwe
parents:
diff changeset
396 </html>