0% found this document useful (0 votes)
6 views48 pages

Design Optimization Using MATLAB and SOLIDWORKS 1st Edition Suresh Download

The document is a comprehensive textbook titled 'Design Optimization using MATLAB and SOLIDWORKS' by Krishnan Suresh, focusing on optimization techniques in engineering. It integrates mathematical concepts with practical applications, emphasizing the use of MATLAB's optimization toolbox and its coupling with SOLIDWORKS for design optimization. The text covers a wide range of optimization problems, including constrained and unconstrained optimization, and provides MATLAB code examples throughout to illustrate key concepts.

Uploaded by

bradalikosua
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views48 pages

Design Optimization Using MATLAB and SOLIDWORKS 1st Edition Suresh Download

The document is a comprehensive textbook titled 'Design Optimization using MATLAB and SOLIDWORKS' by Krishnan Suresh, focusing on optimization techniques in engineering. It integrates mathematical concepts with practical applications, emphasizing the use of MATLAB's optimization toolbox and its coupling with SOLIDWORKS for design optimization. The text covers a wide range of optimization problems, including constrained and unconstrained optimization, and provides MATLAB code examples throughout to illustrate key concepts.

Uploaded by

bradalikosua
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

Design Optimization using MATLAB and SOLIDWORKS

1st Edition Suresh download

https://textbookfull.com/product/design-optimization-using-
matlab-and-solidworks-1st-edition-suresh/

Download more ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Linear Programming Using MATLAB Springer Optimization


and Its Applications 127 Ploskas

https://textbookfull.com/product/linear-programming-using-matlab-
springer-optimization-and-its-applications-127-ploskas/

Design And Optimization Of Thermal Systems, With


MATLAB® Applications Yogesh Jaluria

https://textbookfull.com/product/design-and-optimization-of-
thermal-systems-with-matlab-applications-yogesh-jaluria/

Regularized Image Reconstruction in Parallel MRI with


MATLAB 1st Edition Joseph Suresh Paul

https://textbookfull.com/product/regularized-image-
reconstruction-in-parallel-mri-with-matlab-1st-edition-joseph-
suresh-paul/

Compact Heat Exchangers Analysis Design and


Optimization using FEM and CFD Approach 1st Edition C.
Ranganayakulu

https://textbookfull.com/product/compact-heat-exchangers-
analysis-design-and-optimization-using-fem-and-cfd-approach-1st-
edition-c-ranganayakulu/
MATLAB Optimization Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-optimization-toolbox-
user-s-guide-the-mathworks/

Fundamentals of Graphics Using MATLAB 1st Edition


Ranjan Parekh

https://textbookfull.com/product/fundamentals-of-graphics-using-
matlab-1st-edition-ranjan-parekh/

Programming Mathematics Using MATLAB 1st Edition Lisa


A. Oberbroeckling

https://textbookfull.com/product/programming-mathematics-using-
matlab-1st-edition-lisa-a-oberbroeckling/

Programming Mathematics Using MATLAB 1st Edition


Oberbroeckling Lisa A

https://textbookfull.com/product/programming-mathematics-using-
matlab-1st-edition-oberbroeckling-lisa-a/

Programming Mathematics Using MATLAB 1st Edition


Oberbroeckling Lisa A

https://textbookfull.com/product/programming-mathematics-using-
matlab-1st-edition-oberbroeckling-lisa-a-2/
Design Optimization
using MATLAB® and
®

SOLIDWORKS
Krishnan Suresh
Design Optimization using MATLAB® and SOLIDWORKS®

A unique text integrating numerics, mathematics and applications to provide a


hands-on approach to learning optimization techniques, this mathematically
accessible textbook emphasizes conceptual understanding and importance of
theorems rather than elaborate proofs. It allows students to develop fundamental
optimization methods before delving into MATLAB®’s optimization toolbox,
and to link MATLAB’s results with the results from their own code. Following a
practical approach, the text demonstrates several applications, from error-free
analytic examples to truss (size) optimization, and 2D and 3D shape optimiza-
tion, where numerical errors are inevitable. The principle of minimum potential
energy is discussed to highlight the deep relationship between engineering and
optimization. MATLAB code in every chapter illustrates key concepts and the
text demonstrates the coupling between MATLAB and SOLIDWORKS® for
design optimization. A wide variety of optimization problems are covered includ-
ing constrained non-linear, linear-programming, least-squares, multi-objective,
and global optimization problems.

Krishnan Suresh is the Philip and Jean Myers Professor of Mechanical


Engineering at the University of Wisconsin–Madison, and a Fellow of the
American Society of Mechanical Engineers. He is also the co-founder of SciArt
Software (www.sciartsoft.com), a UW–Madison spinoff that creates and sup-
ports high-performance topology optimization software solutions.
Design Optimization using
MATLAB® and SOLIDWORKS®

Krishnan Suresh
University of Wisconsin–Madison
University Printing House, Cambridge CB2 8BS, United Kingdom
One Liberty Plaza, 20th Floor, New York, NY 10006, USA
477 Williamstown Road, Port Melbourne, VIC 3207, Australia
314–321, 3rd Floor, Plot 3, Splendor Forum, Jasola District Centre,
New Delhi – 110025, India
79 Anson Road, #06–04/06, Singapore 079906

Cambridge University Press is part of the University of Cambridge.


It furthers the University’s mission by disseminating knowledge in the pursuit of
education, learning, and research at the highest international levels of excellence.

www.cambridge.org
Information on this title: www.cambridge.org/suresh
DOI: 10.1017/9781108869027
© Krishnan Suresh 2021
This publication is in copyright. Subject to statutory exception
and to the provisions of relevant collective licensing agreements,
no reproduction of any part may take place without the written
permission of Cambridge University Press.
First published 2021
Printed in the United Kingdom by TJ Books Limited, Padstow Cornwall
A catalogue record for this publication is available from the British Library.
Library of Congress Cataloging-in-Publication Data
Names: Suresh, Krishnan, 1970– author.
Title: Design optimization using MATLAB and SOLIDWORKS / Krishnan Suresh.
Description: Cambridge, United Kingdom ; New York, NY : Cambridge University Press, 2021. |
Series: Cambridge texts in biomedical engineering | Includes bibliographical references and index.
Identifiers: LCCN 2020052134 | ISBN 9781108491600 (hardback) | ISBN 9781108869027 (ebook)
Subjects: LCSH: MATLAB. | SolidWorks. | Engineering design – Data processing – Textbooks. |
Mathematical optimization – Textbooks.
Classification: LCC TA174 .S925 2021 | DDC 620/.00420285536–dc23
LC record available at https://lccn.loc.gov/2020052134
ISBN 978-1-108-49160-0 Hardback
Additional resources for this publication at www.cambridge.org/highereducation/suresh
Cambridge University Press has no responsibility for the persistence or accuracy of
URLs for external or third-party internet websites referred to in this publication
and does not guarantee that any content on such websites is, or will remain,
accurate or appropriate.
Dedicated to my family.
They mean the world to me.
Contents

Preface page xiii

1 Introduction 1
1.1 An Example of Optimization 1
1.2 Challenges 1
1.3 MATLAB Code 3
1.4 Organization of Text 3

2 Modeling 7
2.1 Standard Optimization Formulation 7
2.2 Illustrative Examples 9
2.3 Geometry Problems 10
2.4 Analytical Design Problems 16
2.5 Structural Analysis 18
2.6 Structural Optimization 23
2.7 Conclusions and Observations 25
2.8 Exercises 26

3 Introduction to MATLAB 30
3.1 Basics 30
3.2 MATLAB Code Resource 33
3.3 Memory Pre-allocation and Vectorization 34
3.4 MATLAB Script Files 34
3.5 Linear Algebra 36
3.6 Complex Numbers 37
3.7 Plots 37
3.8 Symbolic Operations 39
3.9 User-Defined Functions 40
3.10 Variable Arguments 41
3.11 Solving Non-linear Equations 42
3.12 Modules 44
3.13 Sampling Algorithm 45
3.14 Polynomial Class 47
3.15 Extending the Polynomial Class 51
3.16 Exercises 52

vii
viii Contents

4 Unconstrained Optimization: Theory 59


4.1 Local versus Global Minimum 60
4.2 First-Order Condition 61
4.3 Second-Order Condition 65
4.4 Sylvester’s Criterion 68
4.5 Quadratic and Convex Functions 69
4.6 Illustrative Examples 70
4.7 Exercises 76

5 Unconstrained Optimization: Algorithms 79


5.1 Test Functions 79
5.2 One-Variable Minimization 81
5.3 Unimodal Functions 82
5.4 Termination Criteria 83
5.5 1D Methods 84
5.5.1 Trisection 84
5.5.2 Golden Section 87
5.5.3 Quadratic Interpolation 89
5.5.4 Bisection 90
5.5.5 Newton–Raphson 90
5.6 Multi-variable Minimization 95
5.7 Line-Search 97
5.8 Search Directions 99
5.9 Eigendirections 101
5.10 Conjugate Directions 102
5.11 Powell’s Method 103
5.12 Gradient Methods 106
5.12.1 Steepest-Descent Method 106
5.12.2 Linear Conjugate Gradient Method 109
5.12.3 Non-linear Conjugate Gradient Method 111
5.13 Newton–Raphson Method 112
5.14 Equilibrium of Spring Systems 113
5.15 Summary 120
5.16 Exercises 121

6 MATLAB Optimization Toolbox 126


6.1 Overview 126
6.2 The fminbnd Function 127
6.3 The fzero Function 132
6.4 The fminsearch Function 134
6.5 The fminunc Function 137
Contents ix

6.6 The fsolve Function 142


6.7 Global Optimization Toolbox 144
6.7.1 MultiStart 145
6.7.2 GlobalSearch 146
6.7.3 Genetic Algorithms 147
6.7.4 Simulated Annealing 147
6.7.5 Multiple Local Minima 148
6.7.6 Noisy Objective 150
6.8 Exercises 151

7 Constrained Optimization 155


7.1 Equality Constraints 155
7.2 Optimality Criteria: Equality Constraints 158
7.2.1 Single Equality Constraint 158
7.2.2 Quadratic Problems 160
7.2.3 Multiple Constraints 161
7.2.4 Significance of Lagrange Multipliers 162
7.3 Optimality Criteria: Inequality Constraints 164
7.4 The fmincon Method 171
7.4.1 Basics 172
7.4.2 Exploiting Gradients 176
7.5 Constrained Spring Problem 178
7.6 The fminsearchcon Function 182
7.6.1 Numerical Challenges 183
7.7 Conclusions 186
7.8 Exercises 186

8 Special Classes of Problems 195


8.1 Linear Programming 196
8.2 Mixed Integer Linear Programming 198
8.3 Least-squares Problems 200
8.3.1 Linear Least Squares 200
8.3.2 Non-linear Least Squares 203
8.4 Multi-objective Optimization 204
8.5 Exercises 206

9 Truss Analysis 209


9.1 Overview 209
9.2 Conventions 210
9.3 Small-Displacement Assumption 211
x Contents

9.4 Force Balance Method 212


9.4.1 Determinate Truss System 213
9.4.2 Indeterminate Truss System 215
9.5 Potential Energy Method 218
9.6 Assembly of Truss Linear System 219
9.7 Truss Modeling Using MATLAB 220
9.8 Exercises 229

10 Size Optimization of Trusses 235


10.1 Compliance Minimization 235
10.1.1 Determinate Truss System 237
10.2 Compliance Minimization Using MATLAB 240
10.2.1 Direct Implementation 241
10.2.2 Scaling the Design Variables 244
10.2.3 Scaling the Constraints and Objective 245
10.2.4 Indeterminate Truss System 248
10.3 Compliance-Constrained Volume Minimization 250
10.4 Stress-Constrained Volume Minimization 253
10.4.1 Stress Constraints: Determinate Truss 253
10.4.2 Stress Constraints: MATLAB Implementation 256
10.5 Buckling Constraints 259
10.5.1 Buckling Constraints: Determinate Truss 260
10.6 Exercises 261

11 Gradient Computation 267


11.1 Finite Difference in 1D 267
11.2 Finite Difference in N Dimensions 272
11.3 Analytical Approach 276
11.4 Complex-Variable Approach 278
11.5 Gradient of Compliance 282
11.6 Automatic Differentiation 284
11.7 Exercises 285

12 Finite Element Analysis in 2D 287


12.1 Overview 287
12.2 Analysis of a Vertical Bar 288
12.2.1 Tensile Load 290
12.2.2 Bending Load 292
12.2.3 Bending Load with Finer Mesh 294
Contents xi

12.3 MATLAB Implementation 295


12.3.1 Brep2D 295
12.3.2 TriMesher 295
12.3.3 TriElasticity 296
12.4 Analysis of Cantilever Beam 296
12.5 Analysis of L-bracket 299
12.6 Analysis of a Plate 301
12.7 Exercises 304

13 Shape Optimization in 2D 312


13.1 Shape Optimization and Shape Parameters 312
13.2 Parametric Studies 313
13.3 Compliance and Volume Minimization 316
13.4 Scaling for Numerical Robustness 317
13.5 Numerical Noise from FEA 318
13.6 Finite-Difference Step Size 320
13.7 Semi-analytic Gradients in FEA 323
13.8 Global Search Method 326
13.9 Stress Scatter Plot 327
13.10 Geometric Constraints 327
13.11 Conclusions 328
13.12 Exercises 328

14 Finite Element Analysis in 3D 332


14.1 Overview 332
14.2 Analysis of Cantilever Beam 332
14.3 Analysis of L-bracket 334
14.4 Analysis of Knuckle 336
14.5 Exercises 339

15 SOLIDLAB: A SOLIDWORKS–MATLAB Interface 343


15.1 Overview and Installation 343
15.2 Geometric Queries 345
15.3 FEA Queries 349
15.4 Displacement Scatter Plot 351
15.5 Stress Scatter Plot 352
15.6 Conclusions 354
15.7 Exercises 354
xii Contents

16 Shape Optimization Using SOLIDLAB 357


16.1 Overview 357
16.2 Displacement Minimization 357
16.3 Displacement Minimization Using Global Search 361
16.4 Stress Minimization 363
16.5 Conclusions 366
16.6 Exercises 366
Appendix 369
A.1 Taylor Series 369
A.2 Optimality Theorems 371

References 375
Index 377
Preface

Origins of This Text


As is of true of many textbooks, this text has evolved from teaching a formal
course, specifically, “Optimum Design of Mechanical Elements and Systems,” at
the University of Wisconsin–Madison. It has undergone several revisions over
the last decade.

Target Audience
The primary audience for this text includes senior undergraduate students, junior
graduate students and practicing engineers. Given this wide audience, prerequis-
ites are kept to a minimum. Basic undergraduate-level mathematics is assumed,
but no prior background in optimization is required. Prior experience in pro-
gramming, especially MATLAB, is helpful.

Topics Covered
This text covers three complementary topics in optimization: (1) the underlying
mathematics, (2) numerical methods and nuances and (3) engineering
applications.
On the first topic, we will recall basic results from single- and multi-variable
calculus. Emphasis is given to conceptual understanding of theorems rather than
to elaborate proofs (which can be found in mathematically oriented texts).
The second topic, numerical methods, lies at the heart of optimization. It is
impossible to understand optimization without a good grasp of numerical
methods. Therefore, this text encourages the reader to implement simple opti-
mization methods “from scratch,” before delving into MATLAB’s optimization
toolbox. This will provide a good understanding of how optimization algorithms
work, or sometimes fail! Besides the generic class of constrained non-linear
optimization problems, we will also discuss special types of problems, including
linear-programming problems, least-squares problems and multi-objective prob-
lems, that require special treatment. Finally, we will briefly explore global opti-
mization methods that are becoming increasingly important in engineering.

xiii
xiv Preface

It is the author’s strong opinion that engineers should learn optimization


within the context of applications. This text largely focuses on geometric and
structural applications. For example, we will study how truss systems can be
optimized, and some of the pitfalls. Lessons learned from this exercise will be
applied toward the structural shape optimization of 2D and 3D designs. The
reader is encouraged to apply underlying optimization principles and methods to
his/her field of study.

Topics Not Covered


Engineering optimization is too broad to be covered in a single text.
Consequently, a few topics have been omitted; these include surrogate modeling,
stochastic optimization and optimization under uncertainty.

Software Resources
This text assumes that the reader has access to MATLAB® (www.mathworks.com).
The MATLAB code accompanying this text is an integral part of student learning,
and can be downloaded from the author’s website at www.ersl.wisc.edu under the
“Research” tab. The MATLAB code is object-oriented; it teaches the basic concepts
of data encapsulation, inheritance and code reuse. Through exercises, the reader will
learn to extend the code to address various optimization problems.
In the last couple of chapters, we will create and analyze 3D designs using
SOLIDWORKS® (www.solidworks.com). It is assumed that the reader is famil-
iar with creating simple models in SOLIDWORKS. Basic finite element analysis
using SOLIDWORKS is covered in the text. Then a toolbox, namely
SOLIDLAB, which serves as an interface between SOLIDWORKS and
MATLAB, is presented; SOLIDLAB was developed by the author’s research
group. Through SOLIDLAB, one can, for example, modify feature dimensions
of SOLIDWORKS models, query mass properties, carry out a finite element
analysis and optimize, all from within the comfort of MATLAB.

Acknowledgments
Textbook writing inevitably takes time away from family, and I would like to
acknowledge the support of my dear wife, Vanitha, for her constant encouragement
to finish this text. Meanwhile, our two sons, Sanjay and Arjun, have smartly learned
to work around my busy schedule. I would also like to thank my graduate students:
Preface xv

Aaditya Chandrasekhar, Josh Danczyk, Tej Kumar, Amir M. Mirzendehdel,


Bhagyashree Prabhune, Saketh Sridhara and Subodh Subedi, who have contributed
both directly and indirectly to this text. I would also like to acknowledge the support
of the National Science Foundation and the Graduate School at the University of
Wisconsin–Madison; they have helped nurture this text.
1 Introduction

Optimization is an integral part of engineering today. Engineers use optimization


techniques to design civil structures, machine components, electrical circuits,
plant layouts, chemical processes and so on. Indeed, one simply cannot make
technological advances without optimization.

1.1 An Example of Optimization


While there are numerous examples of optimization, we will consider here
a design problem posed in Figure 1.1 where a plate is subject to a uniform
pressure loading on one face, and is fixed at the other. The plate can be modeled
and analyzed using any of the popular finite element packages; we will discuss one
such package, namely SOLIDWORKS ([1]), later in the text.
Based on finite element analysis (FEA), one can determine the stress distribu-
tion within the plate, as illustrated in Figure 1.2; the maximum stress happens to
be around 515 MPa, and occurs on the periphery of the large hole, as expected.
A typical design objective now is to reduce the maximum stress, without increas-
ing the mass of the plate. Further, the overall plate dimensions and the diameter of
the larger hole cannot be modified. The location and size of the two smaller holes
can, however, be modified. In this example, the engineer finds out, through trial-
and-error, that the stress can be reduced by simply enlarging the two smaller holes.
This is illustrated in Figure 1.3, where the maximum stress is reduced to 466 MPa;
this is done by increasing the diameter of the two holes from 15 mm to 25 mm. The
maximum stress now occurs at the periphery of one of the smaller holes. Observe
that, in the process of reducing the stress, the mass has also been reduced!
One can now ask if the stress can be further reduced, i.e., is there an optimal
location and optimal diameter for the two smaller holes such that the maximum
stress is minimized? This is an example of shape optimization that we shall study
later in the text.

1.2 Challenges
There are numerous such “simple” optimization examples in engineering.
However, in the author’s experience, while solving such problems engineers
often run into several challenges: (1) How does one translate the above problem

1
2 1 Introduction

Figure 1.1 Design problem.

Figure 1.2 Stress plot based on finite element analysis (FEA).

Figure 1.3 Reduced stress for a modified design.

into a formal optimization statement (with objective, constraints, feasible space,


design variables, etc.)? (2) What optimization method should one use and why? (3)
What if the optimization method does not converge? And so on.
1.4 Organization of Text 3

After reading through this text, and completing the exercises, the author
sincerely believes that the reader will be able to answer such questions confi-
dently, and also extend the concepts to his/her field of study.
Study of optimization can be fun and enriching. However, for most effective
learning, engineers should study optimization within the context of a relevant and
familiar application. Learning to code sophisticated optimization methods, with-
out understanding why these different methods exist in the first place, is both
meaningless and counterproductive. Therefore, this text introduces fundamental
optimization concepts through concrete applications.
For example, to introduce the important concept of numerical scaling, we will
consider optimizing a truss system. We will observe that, without numerical
scaling, even the best optimization method will not converge correctly. By con-
sidering a variety of such applications, fundamental optimization concepts can be
assimilated easily.
No prior background in optimization is assumed in this text; basic undergradu-
ate-level mathematics is sufficient. Prior experience in programming, especially
MATLAB programming [2], is helpful. For this text, we will rely entirely on
MATLAB programming, basics of which are covered in Chapters 3, 6 and 7.

1.3 MATLAB Code


The MATLAB code accompanying this text is an integral part of student learn-
ing, and can be downloaded as a zip-file from the author’s website at www
.ersl.wisc.edu under the “Research” tab. The code is organized chapter-wise;
the use of this code is discussed in Chapter 3, where MATLAB is introduced.

1.4 Organization of Text


This text covers three complementary topics in engineering optimization: (1) the
underlying mathematics, (2) numerical methods and nuances and (3) engineering
applications; see Figure 1.4.
The text is organized as in Table 1.1; each chapter will introduce a critical
mathematical concept/numerical method (identified by rows in the table) by
considering a specific engineering application (identified by columns in the
table).
Chapter 2 introduces the critical concept of modeling, i.e., the art of translating
a loosely worded optimization problem into a formal mathematical statement.
The notions of objective and constraint are introduced by considering various
applications. This chapter will serve as an overview for the remainder of this text.
Chapter 3 is a short introduction to MATLAB. It is by no means an exhaustive
review. The reader will be introduced to basic computing and plotting
4 1 Introduction

Table 1.1 Text organization across various chapters.

Applications → Analytical Truss Shape


Concepts/Tools↓ optimization optimization optimization

Modeling Chapter 2 Chapter 2 Chapter 2


Basic MATLAB programming Chapter 3
Unconstrained theory Chapter 4
Basic algorithms Chapter 5
MATLAB optimization toolbox Chapter 6
Constrained theory Chapter 7
Specialized problems Chapter 8
Structural analysis Chapter 9
Numerical scaling Chapter 10
Gradient computation Chapter 11
Finite element analysis (2D) Chapters 12, 13
Finite element analysis (3D) Chapters 14, 15, 16

Applications

Engineering
Optimization

Mathematics Numerics

Figure 1.4 Engineering optimization encompasses three topics: mathematics, numerics and
applications.

routines available within MATLAB. Various programming constructs such as


the for-loop and if-then-else will be discussed. The concept of object-oriented
programming will be reviewed through examples.
1.4 Organization of Text 5

In Chapter 4, we will address optimization theory, focusing on the uncon-


strained optimization problems discussed in Chapter 2. Some of the questions
raised in Chapter 2 will be answered. Critical concepts such as global/local
minima and stationary points will be introduced.
Chapter 5 complements Chapter 4 in that we will implement a few basic algorithms
to appreciate the nuances of numerical optimization. While engineers do not typic-
ally implement optimization algorithms “from scratch,” numerical implementation
will provide a good understanding of how algorithms work, and sometimes fail!
In Chapter 6, we will delve into MATLAB’s optimization toolbox and study
some of the algorithms for solving unconstrained problems. Using several test
cases, we will observe the behavior of these methods, and correlate them to the
observations made in the previous chapter.
Chapter 7 addresses the basic theory behind constrained optimization. Critical
concepts such as Lagrange multipliers will be introduced within the context of
engineering applications. Physical and mathematical interpretations of Lagrange
multipliers will be discussed. We will also study MATLAB-supported algorithms
for solving constrained problems.
Chapter 8 covers certain special types of optimization problems, including
linear-programming problems, least-squares problems and multi-objective prob-
lems, that are not addressed in the previous chapters. One of the primary reasons
for treating them separately is that they often require the use of specialized
numerical methods.
In Chapter 9, trusses are analyzed through force balance and potential energy
principles. The main concept emphasized is that “elastic structures, such as truss
systems, when subject to an external load, reach a stable configuration when their
potential energy reaches a local minimum.” In other words, physical systems behave
in an optimal fashion! This observation is both fascinating and important in
engineering.
Chapter 10 will build on Chapter 9 by considering the size optimization of truss
systems, where the goal is to find the optimal size (diameter) of truss members
such that a given objective (say, the mass of the truss) is minimized, subject to
certain constraints (such as deflection and stresses). MATLAB optimization
methods introduced in Chapter 7 will be deployed to find optimal solutions to
such problems. We will find that the algorithms do not always converge to the
correct answer (even for simple problems). This will motivate the need for
numerical scaling – a critical concept in numerical optimization! This concept
will be covered and illustrated through several examples.
Chapter 11 will cover an equally important concept of gradient (i.e., sensitivity)
computation. Gradient computation is critical if first-order methods of optimiza-
tion are employed. This chapter covers the pitfalls of finite-difference-based
gradient computation and provides alternative methods.
In Chapters 12 and 13, we consider FEA and optimization of 2D
elastic problems. Conceptually, this is a direct extension of truss analysis and
6 1 Introduction

optimization, discussed in Chapters 9 and 10 respectively. However, new con-


cepts such as shape parameters and finite element discretization enter the picture.
Chapter 14 is an extension of Chapter 12 to 3D FEA. Here, we will rely on
SOLIDWORKS for modeling and analysis. It is assumed that the reader is
familiar with the process of creating 3D models and carrying out basic FEA
within SOLIDWORKS. The objective of this chapter is to develop a foundation
for parametric study and optimization to be pursued in the next chapter.
Chapter 15 introduces SOLIDLAB, an interface between SOLIDWORKS and
MATLAB. SOLIDLAB was developed by the author and his graduate students.
This chapter will illustrate the use of SOLIDLAB to query and analyze
SOLIDWORKS models, from within the comfort of MATLAB.
Chapter 16 addresses 3D shape optimization by combining SOLIDWORKS,
MATLAB and SOLIDLAB. The fundamental difference between compliance
and stress minimization is highlighted.
The Appendix covers additional mathematical concepts and proofs.
Finally, it goes without saying that no textbook is ever complete or compre-
hensive. There are several excellent textbooks on engineering optimization (see
references [3], [4], [5], [6], [7]) and numerical optimization (see references [8], [9])
that complement this text. The reader is strongly encouraged to consult these for
topics not covered here.
2 Modeling

Highlights

1. This chapter discusses modeling, the first step in optimization. Modeling is the
process of converting a loosely worded optimization problem into a formal
mathematical statement.
2. Several modeling examples from geometry and structural mechanics are
considered, and each example is converted into the standard formulation.
3. Through these examples, relevant optimization terminology is also
explained.
4. Finally, important observations are made about modeling; these include:
(1) introducing appropriate design variables, (2) exploiting optimality criteria
for simplification and (3) the iterative nature of modeling.

Modeling is the process of converting a loosely worded “optimization” problem


into a mathematically precise and standard formulation. For example, convert-
ing the stress minimization problem discussed in Section 1.1 into a formal opti-
mization statement would be a modeling effort. Accurate modeling is crucial; an
inaccurate model will lead to erroneous conclusions. To illustrate the concept of
modeling, we consider several examples in this chapter. However, first, the
standard optimization formulation is presented, together with an explanation
of the terminology.

2.1 Standard Optimization Formulation


Almost all optimization problems considered in this text will be posed in the
following standard form (“s.t.” is short for “such that”):

minimize f ðxÞ
x
s:t: hi ðxÞ ¼ 0; i ¼ 1; 2; …
gj ðxÞ ≤ 0; j ¼ 1; 2; …
xmin ≤ x ≤ xmax
x ¼ fx1 x2 . . . xN g (2.1)

7
8 2 Modeling

where
• f ðxÞ is the single objective that we are trying to minimize. Given a loosely
worded problem statement, the first task is to identify and quantify the object-
ive. In structural design problems, the objective is typically the volume or
weight of a part, or the maximum deflection, or the maximum stress, and so
on. Two points are worth noting here: (1) Often, an engineer may be interested
in multiple objectives (for example, minimize weight and minimize stress); such
multi-objective problems are briefly considered in Section 6.7, but are not the
main focus of this text; further, it is often possible to interpret one or more of
these objectives as constraints. (2) If we desire to maximize an objective (for
example, maximize the stiffness of a part), it is easy to convert this into
a minimization problem in multiple ways, as discussed later on.
• x are the optimization or design variables. These are the free parameters that
can be modified to meet the objective. In structural design problems, these
could be geometric parameters (thickness of a truss member, the location
and size of a hole, topology), or material properties (Young’s modulus,
yield strength), and so on. In this text, we will assume that the optimization
variables are continuously varying (such as the radius of a hole). Discrete
variables, such as the number of holes in a design, are not explicitly treated
in this text; however, references and examples are provided on how such
integer problems can be handled.
• xmin and xmax are the lower and upper bounds on the optimization variables; for
example, a lower bound and/or upper bound on a hole radius. It is not essential
for optimization variables to exhibit lower and upper bounds. However, if such
bounds exist, it is important to include them in the problem statement.
• hi ðxÞ are the equality constraints; for example, “the diameter of truss member
A must be exactly equal to three times the diameter of truss member B.” While
we are not distinguishing here between linear and non-linear constraints in the
formulation, such differences can be important in numerical analysis. They are
highlighted later on.
• gj ðxÞ are the inequality constraints; for example, “the diameter of truss
member A must be less than three times the diameter of truss member B.”
Again, we are not distinguishing here between linear and non-linear inequal-
ity constraints, but such differences can be important in numerical analysis.

In the remainder of this chapter, we shall study several optimization examples


and convert them into the standard form shown in Equation (2.1). We will
observe that there are several special cases of the standard form; for example,
when the constraints are absent, we obtain an unconstrained minimization prob-
lem, which is mathematically and numerically easy to analyze:

minimize f ðxÞ (2.2)


x
2.2 Illustrative Examples 9

where x ¼ fx1 x2 . . . xN g. Further, when there is precisely one optimization


variable, this reduces to a single-variable unconstrained minimization, which is one
of the simplest optimization problems that one can pose:

minimize f ðxÞ (2.3)


x

2.2 Illustrative Examples


Before moving to modeling, we consider here several examples of the standard form.
Consider
minimize x2 (2.4)
x

This is a single-variable unconstrained minimization problem, with a trivial


solution of x ¼ 0. On the other hand, the problem

minimize 3 sin x  x þ 0:1x2 þ 0:1 cosð2xÞ (2.5)


x

is also a single-variable unconstrained minimization problem, but its solution will


require numerical analysis. The problem
8 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 1 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 9
>
<1 100 >
u þ ð1 þ vÞ  1 þ 50
2 2
u þ ð1  vÞ  1 =
2 2
minimize 2 2
fu;vg >
: >
;
 ð10u þ 8vÞ
(2.6)

is a two-variable unconstrained minimization problem. The physical interpret-


ation of the above problem is discussed later in this chapter. One can add upper
and lower bounds to the above problem, leading to
8 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 1 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 9
>
<1 100 >
u þ ð1 þ vÞ  1 þ 50
2 2
u þ ð1  vÞ  1 =
2 2
minimize 2 2
fu;vg >
: >
;
 ð10u þ 8vÞ
s:t: 0 ≤ u ≤ 1:0
0≤v (2.7)

One can also impose an equality constraint linking the two variables:
8 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 1 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 9
>
<1 100 >
u þ ð1 þ vÞ  1 þ 50
2 2
u þ ð1  vÞ  1 =
2 2
minimize 2 2
fu;vg >
: >
;
 ð10u þ 8vÞ

s:t: v  u3 ¼ 0 (2.8)

The physical meaning behind such constraints is discussed later in this chapter,
and such constraints can completely change the complexity of the problem.
10 2 Modeling

2.3 Geometry Problems


We now consider problems in geometry; the primary goal is to translate each of
these problems into the standard form presented in Equation (2.1).

Example 2.1 Closest-Point Computation


Problem: Given a point p on a plane, and a straight line passing through the origin,
find the closest point on the straight line to the given point p.
Modeling: Let the straight line passing through the origin be denoted by y ¼ mx and
the given point be p ¼ ðx0 ; y0 Þ. The task is to find the point q on the straight line that
is closest to p; see Figure 2.1.
Let q ¼ ðα; mαÞ be the point on the straight line. Observe that q is defined such
that it always lies on the straight line y ¼ mx. Introducing such intermediate variables
that satisfy the problem constraints is one of the most important steps in modeling.
Observe that the only unknown now is α.
Finding a point q closest to p is equivalent to minimizing the distance between
them, where the distance is given by
qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi
DðαÞ ¼ ðx0  αÞ2 þ ðy0  mαÞ2 (2.9)
Thus, the optimization problem is posed as
qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi
minimize DðαÞ ¼ ðx0  αÞ2 þ ðy0  mαÞ2 (2.10)
α

Equation (2.10) is interpreted as “Find α that minimizes DðαÞ.”


Classification: The problem posed in Equation (2.10) is a single-objective, single-
variable, unconstrained optimization problem since: (1) there is only one objective
namely, the distance D, that must be minimized, (2) there is only one continuous
(unknown) variable α and (3) there are no constraints.
Solution: In the chapters that follow, we shall discuss various numerical methods to
solve optimization problems. However, for now, recall from basic calculus that, if a
continuous differentiable function takes a minimum at a point, then the derivative of

y
y mx

q
p (x 0 , y0 )

Figure 2.1 Closest point on a straight line.


2.3 Geometry Problems 11

(cont.)
that function vanishes at that point. Thus, differentiating the objective DðαÞ with
respect to α and setting it equal to zero will yield the value of α:

dD 2ðx0  αÞ  2mðy0  mαÞ


¼ qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi ¼ 0 (2.11)

2 ðx0  αÞ2 þ ðy0  mαÞ2

i.e.,
x0 þ my0
α¼ (2.12)
ð1 þ m2 Þ
Thus, the closest point is
 
x0 þ my0 mx0 þ m2 y0
q¼ ; (2.13)
ð1 þ m2 Þ ð1 þ m2 Þ
and the shortest distance is
jðx0 m  y0 Þj
D ¼ pffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi (2.14)
ð1 þ m2 Þ

Caveat: We have not formally established that Equation (2.11) yields a minimum; we
shall address this in later chapters.
Verification: Verify whether the above solution yields the “expected answer.” For
example, suppose the straight line is the x axis, and p ¼ ð0; 1Þ: do you recover the
expected solution? Verification, if possible, is highly recommended in order to catch
modeling errors.

Example 2.2 Fitting a Straight Line


Problem: Yet another commonly occurring optimization problem is “data-fitting,”
where, given a set of points, the task is to find a straight line that best fits the set of
points.
Modeling: Let the set of 2D data points be ðxi ; yi Þ, i ¼ 1; 2; …; N; one must find the
straight line that best fits the data-set (see Figure 2.2).
y y mx  c

( xi , yi )

Figure 2.2 Find the best-fitting straight line.


Random documents with unrelated
content Scribd suggests to you:
Chaplain of the 9th Illinois Volunteer Infantry." Was mustered into
the service, and entered upon the duties of Chaplain, September
4th, 1863. Has been with his Regiment ever since, except during
January, 1864, when he was sent to Illinois on orders. Rejoined his
Regiment February 1st, 1864.
Transcriber's note:
The following corrections have been made:
p. 3 he object I have -> he changed to the
p. 8 Kitchell, 1st Lieutenant, -> second comma replaced with period
p. 8 South- -> hyphen replaced with period
p. 16 to be Colone -> Colone changed to Colonel
p. 20 If you wont sell -> wont changed to won't
p. 31 unhallowed cause -> period added after cause
p. 31 Lieut F. Vogler -> period added after Lieut
p. 32 Roffy -> comma added
p. 34 he was drank -> drank changed to drunk
p. 43 Kortkamp--1 -> period added after 1
p. 44 In all, 3 killled -> killled changed to killed
p. 45 did not come -> period added after come
p. 50 battallion of the 15th -> battallion changed to battalion
p. 52 broke and run -> run changed to ran
p. 53 of the 9th Ill, -> period added after Ill
p. 54 sout-east from Corinth -> sout-east changed to south-east
p. 55 entire column move -> move changed to moved
p. 56 at 1 P M. -> period added after P
p. 57 and succeded in -> succeded changed to succeeded
p. 60 Lient. Col. Phillips -> Lient. changed to Lieut.
p. 63 women and children, -> removed comma
p. 63 were compelled to see it, -> removed comma
p. 63 camp at Pocahontas, -> removed comma
p. 64 from Company B. to Company F -> removed period after B
p. 66 Regiment move forward -> move changed to moved
p. 67 Salem, Miss, -> period added after Miss
p. 67 Montazuma, Tenn., -> Montazuma changed to Montezuma
p. 71 exitement had passed away -> exitement changed to excitement
p. 76 onr arrival -> onr changed to our
p. 77 Col. Sent for our -> Sent changed to sent
p. 81 Tennesse River must be crossed -> Tennesse changed to Tennessee
p. 82 Severa pontoon -> Severa changed to Several
p. 89 in Karlsrhue -> Karlsrhue changed to Karlsruhe
Uncommon spelling like schrapnel or bivouack has been retained.
Inconsistent hyphenation and spelling has been retained unless one form
predominated.
*** END OF THE PROJECT GUTENBERG EBOOK A HISTORY OF THE
NINTH REGIMENT, ILLINOIS VOLUNTEER INFANTRY ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States
copyright in these works, so the Foundation (and you!) can copy
and distribute it in the United States without permission and
without paying copyright royalties. Special rules, set forth in the
General Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree
to abide by all the terms of this agreement, you must cease
using and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project Gutenberg™
works in compliance with the terms of this agreement for
keeping the Project Gutenberg™ name associated with the
work. You can easily comply with the terms of this agreement
by keeping this work in the same format with its attached full
Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and
with almost no restrictions whatsoever. You may copy it,
give it away or re-use it under the terms of the Project
Gutenberg License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country
where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of
the copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
containing a part of this work or any other work associated with
Project Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute


this electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the
Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must,
at no additional cost, fee or expense to the user, provide a copy,
a means of exporting a copy, or a means of obtaining a copy
upon request, of the work in its original “Plain Vanilla ASCII” or
other form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™
works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or


providing access to or distributing Project Gutenberg™
electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project


Gutenberg™ electronic work or group of works on different
terms than are set forth in this agreement, you must obtain
permission in writing from the Project Gutenberg Literary
Archive Foundation, the manager of the Project Gutenberg™
trademark. Contact the Foundation as set forth in Section 3
below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on,
transcribe and proofread works not protected by U.S. copyright
law in creating the Project Gutenberg™ collection. Despite these
efforts, Project Gutenberg™ electronic works, and the medium
on which they may be stored, may contain “Defects,” such as,
but not limited to, incomplete, inaccurate or corrupt data,
transcription errors, a copyright or other intellectual property
infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be
read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except


for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU AGREE
THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT
EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE
THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY
DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE
TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL,
PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE
NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person
or entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set


forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you
do or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status
by the Internal Revenue Service. The Foundation’s EIN or
federal tax identification number is 64-6221541. Contributions
to the Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like