ebook img

Compact numerical methods for computers: lin. algebra and function minimisation PDF

288 Pages·1990·1.34 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Compact numerical methods for computers: lin. algebra and function minimisation

COMPACT NUMERICAL METHODS FOR COMPUTERS linear algebra and function minimisation Second Edition J C NASH Adam Hilger, Bristol and New York Copyright © 1979, 1990 J C Nash All rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying or otherwise, without the prior permission of the publisher. Multiple copying is only permitted under the terms of the agreement between the Committee of Vice-Chancellors and Principals and the Copyright Licensing Agency. British Library Cataloguing in Publication Data Nash, J. C. Compact numerical methods for computers: linear algebra and function minimisation - 2nd ed. 1!. Numerical analysis. Applications of microcomputer & minicomputer systems. Algorithms I. Title 519.4 ISBN 0-85274-318-1 ISBN 0-85274-319-X (pbk) ISBN 0-7503-0036-1 (5¼" IBM disc) ISBN 0-7503-0043-4 (3½" IBM disc) Library of Congress Cataloging-in-Publication Data are available First published, 1979 Reprinted, 1980 Second edition, 1990 Published under the Adam Hilger imprint by IOP Publishing Ltd Techno House, Redcliffe Way, Bristol BSl 6NX, England 335 East 45th Street, New York, NY 10017-3483, USA Filmset by Bath Typesetting Ltd, Bath, Avon Printed in Great Britain by Page Bros (Norwich) Ltd CONTENTS Preface to the Second Edition ix Preface to the First Edition xi 1. A STARTING POINT 1 1.1. Purpose and scope 1 1.2. Machine characteristics 3 1.3. Sources of programs 9 1.4. Programming languages used and structured programming 11 1.5. Choice of algorithms 13 1.6. A method for expressing algorithms 15 1.7. General notation 17 1.8. Software engineering issues 17 2. FORMAL PROBLEMS IN LINEAR ALGEBRA 19 2.1. Introduction 19 2.2. Simultaneous linear equations 19 2.3. The linear least-squares problem 21 2.4. The inverse and generalised inverse of a matrix 24 2.5. Decompositions of a matrix 26 2.6. The matrix eigenvalue problem 28 3. THE SINGULAR-VALUE DECOMPOSITION AND ITS USE TO SOLVE LEAST-SQUARES PROBLEMS 30 3.1. Introduction 30 3.2. A singular-value decomposition algorithm 31 3.3. Orthogonalisation by plane rotations 32 3.4. A fine point 35 3.5. An alternative implementation of the singular-value decomposi- tion 38 3.6. Using the singular-value decomposition to solve least-squares problems 40 4. HANDLING LARGER PROBLEMS 49 4.1. Introduction 49 4.2. The Givens’ reduction 49 4.3. Extension to a singular-value decomposition 54 4.4. Some labour-saving devices 54 4.5. Related calculations 63 5. SOME COMMENTS ON THE FORMATION OF THE CROSS- PRODUCTS MATRIX ATA 66 v vi Compact numerical methods for computers 6. LINEAR EQUATIONS-A DIRECT APPROACH 72 6.1. Introduction 72 6.2. Gauss elimination 72 6.3. Variations on the theme of Gauss elimination 80 6.4. Complex systems of equations 82 6.5. Methods for special matrices 83 7. THE CHOLESKI DECOMPOSITION 84 7.1. The Choleski decomposition 84 7.2. Extension of the Choleski decomposition to non-negative defi- nite matrices 86 7.3. Some organisational details 90 8. THE SYMMETRIC POSITIVE DEFINITE MATRIX AGAIN 94 8.1. The Gauss-Jordan reduction 94 8.2. The Gauss-Jordan algorithm for the inverse of a symmetric positive definite matrix 97 9. THE ALGEBRAIC EIGENVALUE PROBLEM 102 9.1. Introduction 102 9.2. The power method and inverse iteration 102 9.3. Some notes on the behaviour of inverse iteration 108 9.4. Eigensolutions of non-symmetric and complex matrices 110 10. REAL SYMMETRIC MATRICES 119 10.1. The eigensolutions of a real symmetric matrix 119 10.2. Extension to matrices which are not positive definite 121 10.3. The Jacobi algorithm for the eigensolutions of a real symmetric matrix 126 10.4. Organisation of the Jacobi algorithm 128 10.5. A brief comparison of methods for the eigenproblem of a real symmetric matrix 133 11. THE GENERALISED SYMMETRIC MATRIX EIGENVALUE PROBLEM 135 12. OPTIMISATION AND NONLINEAR EQUATIONS 142 12.1. Formal problems in unconstrained optimisation and nonlinear equations 142 12.2. Difficulties encountered in the solution of optimisation and nonlinear-equation problems 146 13. ONE-DIMENSIONAL PROBLEMS 148 13.1. Introduction 148 13.2. The linear search problem 148 13.3. Real roots of functions of one variable 160 Contents vii 14. DIRECT SEARCH METHODS 168 14.1. The Nelder-Mead simplex search for the minimum of a function of several parameters 168 14.2. Possible modifications of the Nelder-Mead algorithm 172 14.3. An axial search procedure 178 14.4. Other direct search methods 182 15. DESCENT TO A MINIMUM I: VARIABLE METRIC ALGORITHMS 186 15.1. Descent methods for minimisation 186 15.2. Variable metric algorithms 187 15.3. A choice of strategies 190 16. DESCENT TO A MINIMUM II: CONJUGATE GRADIENTS 197 16.1. Conjugate gradients methods 197 16.2. A particular conjugate gradients algorithm 198 17. MINIMISING A NONLINEAR SUM OF SQUARES 207 17.1. Introduction 207 17.2. Two methods 208 17.3. Hartley’s modification 210 17.4. Marquardt’s method 211 17.5. Critique and evaluation 212 17.6. Related methods 215 18. LEFT-OVERS 218 18.1. Introduction 218 18.2. Numerical approximation of derivatives 218 18.3. Constrained optimisation 221 18.4. A comparison of function minimisation and nonlinear least- squares methods 226 19. THE CONJUGATE GRADIENTS METHOD APPLIED TO PROBLEMS IN LINEAR ALGEBRA 234 19.1. Introduction 234 19.2. Solution of linear equations and least-squares problems by conjugate gradients 235 19.3. Inverse iteration by algorithm 24 241 19.4. Eigensolutions by minimising the Rayleigh quotient 243 APPENDICES 253 1. Nine test matrices 253 2. List of algorithms 255 3. List of examples 256 4. Files on the software diskette 258 BIBLIOGRAPHY 263 INDEX 271 ECAFERP OT EHT DNOCESNOITIDE The first edition of this book was written between 1975 and 1977. It may come as a surprise that the material is still remarkably useful and applicable in the solution of numerical problems on computers. This is perhaps due to the interest of researchers in the development of quite complicated computational methods which require considerable computing power for their execution. More modest techniques have received less time and effort of investigators. However, it has also been the case that the algorithms presented in the first edition have proven to be reliable yet simple. The need for simple, compact numerical methods continues, even as software packages appear which relieve the user of the task of programming. Indeed, such methods are needed to implement these packages. They are also important when users want to perform a numerical task within their own programs. The most obvious difference between this edition and its predecessor is that the algorithms are presented in Turbo Pascal, to be precise, in a form which will operate under Turbo Pascal 3.01a. I decided to use this form of presentation for the following reasons: (i) Pascal isquite similar to the Step-and-Description presentation of algorithms used previously; (ii) the codes can be typeset directly from the executable Pascal code, and the very difficult job of proof-reading and correction avoided; (iii) the Turbo Pascal environment is very widely available on microcomputer systems, and a number of similar systems exist. Section 1.6 and appendix 4 give some details about the codes and especially the driver and support routines which provide examples of use. The realization of this edition was not totally an individual effort. My research work, of which this book represents a product, is supported in part by grants from the Natural Sciences and Engineering Research Council of Canada. The Mathema- tics Department of the University of Queensland and the Applied Mathematics Division of the New Zealand Department of Scientific and Industrial Research provided generous hospitality during my 1987-88 sabbatical year, during which a great part of the code revision was accomplished. Thanks are due to Mary Walker- Smith for reading early versions of the codes, to Maureen Clarke of IOP Publishing Ltd for reminders and encouragement, and to the Faculty of Administration of the University of Ottawa for use of a laser printer to prepare the program codes. Mary Nash has been a colleague and partner for two decades, and her contribution to this project in many readings, edits, and innumerable other tasks has been a large one. In any work on computation, there are bound to be errors, or at least program ix x Compact numerical methods for computers structures which operate in unusual ways in certain computing environments. I encourage users to report to me any such observations so that the methods may be improved. J. C. Nash Ottawa, 12 June 1989 ECAFERP OT EHT TSRIFNOITIDE This book is designed to help people solve numerical problems. In particular, it is directed to those who wish to solve numerical problems on ‘small’ computers, that is, machines which have limited storage in their main memory for program and data. This may be a programmable calculator-even a pocket model-or it may be a subsystem of a monster computer. The algorithms that are presented in the following pages have been used on machines such as a Hewlett-Packard 9825 programmable calculator and an IBM 370/168 with Floating Point Systems Array Processor. That is to say, they are designed to be used anywhere that a problem exists for them to attempt to solve. In some instances, the algorithms will not be as efficient as others available for the job because they have been chosen and developed to be ‘small’. However, I believe users will find them surprisingly economical to employ because their size and/or simplicity reduces errors and human costs compared with equivalent ‘larger’ programs. Can this book be used as a text to teach numerical methods? I believe it can. The subject areas covered are, principally, numerical linear algebra, function minimisation and root-finding. Interpolation, quadrature and differential equa- tions are largely ignored as they have not formed a significant part of my own work experience. The instructor in numerical methods will find perhaps too few examples and no exercises. However, I feel the examples which are presented provide fertile ground for the development of many exercises. As much as possible, I have tried to present examples from the real world. Thus the origins of the mathematical problems are visible in order that readers may appreciate that these are not merely interesting diversions for those with time and computers available. Errors in a book of this sort, especially in the algorithms, can depreciate its value severely. I would very much appreciate hearing from anyone who discovers faults and will do my best to respond to such queries by maintaining an errata sheet. In addition to the inevitable typographical errors, my own included, I anticipate that some practitioners will take exception to some of the choices I have made with respect to algorithms, convergence criteria and organisation of calculations. Out of such differences, I have usually managed to learn something of value in improving my subsequent work, either by accepting new ideas or by being reassured that what I was doing had been through some criticism and had survived. There are a number of people who deserve thanks for their contribution to this book and who may not be mentioned explicitly in the text: (i) in the United Kingdom, the many members of the Numerical Algorithms Group, of the Numerical Optimization Centre and of various university depart- ments with whom I discussed the ideas from which the algorithms have con- densed; xi xii Compact numerical methods for computers (ii) in the United States, the members of the Applied Mathematics Division of the Argonne National Laboratory who have taken such an interest in the algorithms, and Stephen Nash who has pointed out a number of errors and faults; and (iii) in Canada, the members of the Economics Branch of Agriculture Canada for presenting me with such interesting problems to solve, Kevin Price for careful and detailed criticism, Bob Henderson for trying out most of the algorithms, Richard Wang for pointing out several errors in chapter 8, John Johns for trying (and finding errors in) eigenvalue algorithms, and not least Mary Nash for a host of corrections and improvements to the book as a whole. It is a pleasure to acknowledge the very important roles of Neville Goodman and Geoff Amor of Adam Hilger Ltd in the realisation of this book. J. C. Nash Ottawa, 22 December 1977

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.