Mercurial > octave-nkf
comparison doc/interpreter/intro.txi @ 19630:0e1f5a750d00
maint: Periodic merge of gui-release to default.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 20 Jan 2015 10:24:46 -0500 |
parents | 0850b5212619 446c46af4b42 |
children | 4197fc428c7d |
comparison
equal
deleted
inserted
replaced
19626:37d37297acf8 | 19630:0e1f5a750d00 |
---|---|
4 @c | 4 @c |
5 @c Octave is free software; you can redistribute it and/or modify it | 5 @c Octave is free software; you can redistribute it and/or modify it |
6 @c under the terms of the GNU General Public License as published by the | 6 @c under the terms of the GNU General Public License as published by the |
7 @c Free Software Foundation; either version 3 of the License, or (at | 7 @c Free Software Foundation; either version 3 of the License, or (at |
8 @c your option) any later version. | 8 @c your option) any later version. |
9 @c | 9 @c |
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT | 10 @c Octave is distributed in the hope that it will be useful, but WITHOUT |
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | 12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
13 @c for more details. | 13 @c for more details. |
14 @c | 14 @c |
15 @c You should have received a copy of the GNU General Public License | 15 @c You should have received a copy of the GNU General Public License |
16 @c along with Octave; see the file COPYING. If not, see | 16 @c along with Octave; see the file COPYING. If not, see |
17 @c <http://www.gnu.org/licenses/>. | 17 @c <http://www.gnu.org/licenses/>. |
18 | 18 |
19 @node Introduction | 19 @node Introduction |
20 @chapter A Brief Introduction to Octave | 20 @chapter A Brief Introduction to Octave |
21 @cindex introduction | 21 @cindex introduction |
22 | 22 |
23 GNU Octave is a high-level language, primarily intended for numerical | 23 GNU Octave is a high-level language, primarily intended for numerical |
24 computations. It is typically used for such problems as solving | 24 computations. It is typically used for such problems as solving |
25 linear and nonlinear equations, numerical linear algebra, statistical | 25 linear and nonlinear equations, numerical linear algebra, statistical |
26 analysis, and for performing other numerical experiments. It may also | 26 analysis, and for performing other numerical experiments. It may also |
27 be used as a batch-oriented language for automated data processing. | 27 be used as a batch-oriented language for automated data processing. |
28 | 28 |
29 Until recently GNU Octave provided a command-line interface with | 29 Until recently GNU Octave provided a command-line interface with |
30 graphical results displayed in separate windows. The current version | 30 graphical results displayed in separate windows. The current version |
31 (version 3.8, released in late 2013) also provides, by default, a | 31 (version 3.8, released in late 2013) also provides, by default, a |
32 graphical user interface. | 32 graphical user interface. |
33 | 33 |
34 GNU Octave is freely redistributable software. You may redistribute | 34 GNU Octave is freely redistributable software. You may redistribute |
35 it and/or modify it under the terms of the GNU General Public License | 35 it and/or modify it under the terms of the GNU General Public License |
36 as published by the Free Software Foundation. The GPL is included in | 36 as published by the Free Software Foundation. The GPL is included in |
37 this manual, @pxref{Copying}. | 37 this manual, @pxref{Copying}. |
38 | 38 |
39 This manual provides comprehensive documentation on how to install, | 39 This manual provides comprehensive documentation on how to install, |
40 run, use, and extend GNU Octave. Additional chapters describe how | 40 run, use, and extend GNU Octave. Additional chapters describe how |
41 to report bugs and help contribute code. | 41 to report bugs and help contribute code. |
42 | 42 |
43 This document corresponds to Octave version @value{VERSION}. | 43 This document corresponds to Octave version @value{VERSION}. |
44 | 44 |
45 @menu | 45 @menu |
55 This, by default, starts the graphical user interface (GUI). The central | 55 This, by default, starts the graphical user interface (GUI). The central |
56 window in the GUI is the Octave command-line interface. Octave displays | 56 window in the GUI is the Octave command-line interface. Octave displays |
57 an initial message and then a prompt indicating it is ready to accept | 57 an initial message and then a prompt indicating it is ready to accept |
58 input. If you have chosen the traditional command-line interface only | 58 input. If you have chosen the traditional command-line interface only |
59 the command prompt appears. In any case, you can immediately begin | 59 the command prompt appears. In any case, you can immediately begin |
60 typing Octave commands. | 60 typing Octave commands. |
61 | 61 |
62 If you get into trouble, you can usually interrupt Octave by typing | 62 If you get into trouble, you can usually interrupt Octave by typing |
63 @kbd{Control-C} (written @kbd{C-c} for short). @kbd{C-c} gets | 63 @kbd{Control-C} (written @kbd{C-c} for short). @kbd{C-c} gets |
64 its name from the fact that you type it by holding down @key{CTRL} and | 64 its name from the fact that you type it by holding down @key{CTRL} and |
65 then pressing @key{c}. Doing this will normally return you to Octave's | 65 then pressing @key{c}. Doing this will normally return you to Octave's |
84 are lines you type, ending each with a carriage return. Octave will | 84 are lines you type, ending each with a carriage return. Octave will |
85 respond with an answer, or by displaying a graph. | 85 respond with an answer, or by displaying a graph. |
86 | 86 |
87 @subsection Elementary Calculations | 87 @subsection Elementary Calculations |
88 | 88 |
89 Octave can easily be used for basic numerical calculations. Octave | 89 Octave can easily be used for basic numerical calculations. Octave |
90 knows about arithmetic operations (+,-,*,/), exponentiation (^), | 90 knows about arithmetic operations (+,-,*,/), exponentiation (^), |
91 natural logarithms/exponents (log, exp), and the trigonometric | 91 natural logarithms/exponents (log, exp), and the trigonometric |
92 functions (sin, cos, @dots{}). Moreover, Octave calculations work | 92 functions (sin, cos, @dots{}). Moreover, Octave calculations work |
93 on real or imaginary numbers (i,j). In addition, some mathematical | 93 on real or imaginary numbers (i,j). In addition, some mathematical |
94 constants such as the base of the natural logarithm (e) and the ratio | 94 constants such as the base of the natural logarithm (e) and the ratio |
95 of a circle's circumference to its diameter (pi) are pre-defined. | 95 of a circle's circumference to its diameter (pi) are pre-defined. |
96 | 96 |
97 @noindent | 97 @noindent |
98 For example, to verify Euler's Identity, | 98 For example, to verify Euler's Identity, |
99 @tex | 99 @tex |
107 @end display | 107 @end display |
108 @end ifnottex | 108 @end ifnottex |
109 | 109 |
110 @noindent | 110 @noindent |
111 type the following which will evaluate to @code{-1} within the | 111 type the following which will evaluate to @code{-1} within the |
112 tolerance of the calculation. | 112 tolerance of the calculation. |
113 | 113 |
114 @example | 114 @example |
115 octave:1> exp (i*pi) | 115 octave:1> exp (i*pi) |
116 @end example | 116 @end example |
117 | 117 |
118 @subsection Creating a Matrix | 118 @subsection Creating a Matrix |
119 | 119 |
120 Vectors and matrices are the basic building blocks for numerical analysis. | 120 Vectors and matrices are the basic building blocks for numerical analysis. |
121 To create a new matrix and store it in a variable so that you can | 121 To create a new matrix and store it in a variable so that you can |
122 refer to it later, type the command | 122 refer to it later, type the command |
123 | 123 |
124 @example | 124 @example |
125 octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ] | 125 octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ] |
126 @end example | 126 @end example |
127 | 127 |
128 @noindent | 128 @noindent |
129 Octave will respond by printing the matrix in neatly aligned columns. | 129 Octave will respond by printing the matrix in neatly aligned columns. |
130 Octave uses a comma or space to separate entries in a row, and a | 130 Octave uses a comma or space to separate entries in a row, and a |
131 semicolon or carriage return to separate one row from the next. | 131 semicolon or carriage return to separate one row from the next. |
132 Ending a command with a semicolon tells Octave not to print the result | 132 Ending a command with a semicolon tells Octave not to print the result |
133 of the command. For example, | 133 of the command. For example, |
134 | 134 |
135 @example | 135 @example |
136 octave:2> B = rand (3, 2); | 136 octave:2> B = rand (3, 2); |
139 @noindent | 139 @noindent |
140 will create a 3 row, 2 column matrix with each element set to a random | 140 will create a 3 row, 2 column matrix with each element set to a random |
141 value between zero and one. | 141 value between zero and one. |
142 | 142 |
143 To display the value of a variable, simply type the name of the | 143 To display the value of a variable, simply type the name of the |
144 variable at the prompt. For example, to display the value stored in the | 144 variable at the prompt. For example, to display the value stored in the |
145 matrix @code{B}, type the command | 145 matrix @code{B}, type the command |
146 | 146 |
147 @example | 147 @example |
148 octave:3> B | 148 octave:3> B |
149 @end example | 149 @end example |
200 but avoids computing the inverse of a matrix directly. | 200 but avoids computing the inverse of a matrix directly. |
201 | 201 |
202 If the coefficient matrix is singular, Octave will print a warning | 202 If the coefficient matrix is singular, Octave will print a warning |
203 message and compute a minimum norm solution. | 203 message and compute a minimum norm solution. |
204 | 204 |
205 A simple example comes from chemistry and the need to obtain balanced | 205 A simple example comes from chemistry and the need to obtain balanced |
206 chemical equations. Consider the burning of hydrogen and oxygen to | 206 chemical equations. Consider the burning of hydrogen and oxygen to |
207 produce water. | 207 produce water. |
208 @tex | 208 @tex |
209 $$ {\rm H_{2}} + {\rm O_{2}} \rightarrow {\rm H_{2}O} $$ | 209 $$ {\rm H_{2}} + {\rm O_{2}} \rightarrow {\rm H_{2}O} $$ |
210 @end tex | 210 @end tex |
211 @ifnottex | 211 @ifnottex |
214 H2 + O2 --> H2O | 214 H2 + O2 --> H2O |
215 @end example | 215 @end example |
216 | 216 |
217 @end ifnottex | 217 @end ifnottex |
218 @noindent | 218 @noindent |
219 The equation above is not accurate. The Law of Conservation of Mass requires | 219 The equation above is not accurate. The Law of Conservation of Mass requires |
220 that the number of molecules of each type balance on the left- and right-hand | 220 that the number of molecules of each type balance on the left- and right-hand |
221 sides of the equation. Writing the variable overall reaction with | 221 sides of the equation. Writing the variable overall reaction with |
222 individual equations for hydrogen and oxygen one finds: | 222 individual equations for hydrogen and oxygen one finds: |
223 @tex | 223 @tex |
224 \vbox{ | 224 \vbox{ |
225 $$ x_{1}{\rm H_{2}} + x_{2}{\rm O_{2}} \rightarrow {\rm H_{2}O} $$ | 225 $$ x_{1}{\rm H_{2}} + x_{2}{\rm O_{2}} \rightarrow {\rm H_{2}O} $$ |
226 $$ {\rm H:}\quad 2x_{1} + 0x_{2} \rightarrow 2 $$ | 226 $$ {\rm H:}\quad 2x_{1} + 0x_{2} \rightarrow 2 $$ |
292 function, Octave responds with a different prompt, to indicate that it | 292 function, Octave responds with a different prompt, to indicate that it |
293 is waiting for you to complete your input. | 293 is waiting for you to complete your input. |
294 | 294 |
295 @example | 295 @example |
296 @group | 296 @group |
297 octave:1> function xdot = f (x, t) | 297 octave:1> function xdot = f (x, t) |
298 > | 298 > |
299 > r = 0.25; | 299 > r = 0.25; |
300 > k = 1.4; | 300 > k = 1.4; |
301 > a = 1.5; | 301 > a = 1.5; |
302 > b = 0.16; | 302 > b = 0.16; |
440 @cindex documentation fonts | 440 @cindex documentation fonts |
441 | 441 |
442 Examples of Octave code appear in this font or form: @code{svd (a)}. | 442 Examples of Octave code appear in this font or form: @code{svd (a)}. |
443 Names that represent variables or function arguments appear | 443 Names that represent variables or function arguments appear |
444 in this font or form: @var{first-number}. Commands that you type at the | 444 in this font or form: @var{first-number}. Commands that you type at the |
445 shell prompt appear in this font or form: @samp{octave --no-init-file}. | 445 shell prompt appear in this font or form: @samp{octave --no-init-file}. |
446 Commands that you type at the Octave prompt sometimes appear in this font | 446 Commands that you type at the Octave prompt sometimes appear in this font |
447 or form: @kbd{foo --bar --baz}. Specific keys on your keyboard appear | 447 or form: @kbd{foo --bar --baz}. Specific keys on your keyboard appear |
448 in this font or form: @key{ANY}. | 448 in this font or form: @key{ANY}. |
449 | 449 |
450 @node Evaluation Notation | 450 @node Evaluation Notation |
451 @subsection Evaluation Notation | 451 @subsection Evaluation Notation |
452 @cindex evaluation notation | 452 @cindex evaluation notation |
507 @node Printing Notation | 507 @node Printing Notation |
508 @subsection Printing Notation | 508 @subsection Printing Notation |
509 @cindex printing notation | 509 @cindex printing notation |
510 | 510 |
511 Many of the examples in this manual print text when they are | 511 Many of the examples in this manual print text when they are |
512 evaluated. In this manual the printed text resulting from an example | 512 evaluated. In this manual the printed text resulting from an example |
513 is indicated by @samp{@print{}}. The value that is returned by | 513 is indicated by @samp{@print{}}. The value that is returned by |
514 evaluating the expression is displayed with @samp{@result{}} | 514 evaluating the expression is displayed with @samp{@result{}} |
515 (@code{1} in the next example) and follows on a separate line. | 515 (@code{1} in the next example) and follows on a separate line. |
516 | 516 |
517 @example | 517 @example |
518 @group | 518 @group |
519 printf ("foo %s\n", "bar") | 519 printf ("foo %s\n", "bar") |
539 | 539 |
540 @node Format of Descriptions | 540 @node Format of Descriptions |
541 @subsection Format of Descriptions | 541 @subsection Format of Descriptions |
542 @cindex description format | 542 @cindex description format |
543 | 543 |
544 Functions and commands are described in this manual in a | 544 Functions and commands are described in this manual in a |
545 uniform format. The first line of a description contains the name of | 545 uniform format. The first line of a description contains the name of |
546 the item followed by its arguments, if any. | 546 the item followed by its arguments, if any. |
547 @ifnottex | 547 @ifnottex |
548 The category---function, command, or whatever---appears at the | 548 The category---function, command, or whatever---appears at the |
549 beginning of the line. | 549 beginning of the line. |