Работа#1
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Перевел в течение 4 часов, заказчик остался доволен. Оригинальный текст (перевод в скачиваемом файле, внизу):
Modeling and Simulation
1.1 Numerical Approximations
1.2 C++ for Numerical Modeling
1.3 Mathematical Modeling
1.4 Simulation and Its Visualization
1.5 Numerical Methods
1.6 Numerical Applications
References
1.1 NUMERICAL APPROXIMATIONS
Numerical methods is an area of study in mathematics that discusses the solutions
to various mathematical problems involving differential equations, curve fittings,
integrals, eigenvalues, and root findings through approximations rather than exact
solutions. This discussion is necessary because the exact solutions to these problems
are difficult to obtain through the analytical approach. For example, it may be wise
to evaluate
5
−1
x sin x dx,
as the exact solution can be obtained through a well-known technique in calculus
called integration by parts. However, it is not possible to apply the same method or
any other analytical method to solve
2
0
e−x
3 sin x + x2 dx.
The given equation in the above integral is difficult to solve as it is not subject
to the exact methods discussed in ordinary calculus. Therefore, a numerical method
is needed to produce a reasonably good approximated solution. A good approximated
solution, whose value may differ from the exact solution by some fractions, is
definitely better than nothing.
Numerical methods are also needed in cases where the mathematical function for
a given problem is not given. In many practical situations, the governing equations
for a given problem cannot be determined. Instead, an engineer may have a set of n
data (xi , yi ) collected from the site to analyze in order to produce a working model.
In this case, a numerical method is applied to fit a curve that corresponds to this set
of data for modeling the scenario.
Solutions to numerical problems can be obtained on the computer in two ways:
using a ready-made software program or programming using a primitive language.
A ready-made software program is a commercial package that has been designed
to solve specific problems without the hassle of going through programming. The
software provides quick solutions to the problems with just a few commands. The
solution to a problem, such as finding the inverse of a matrix, is obtained by typing
just one or two lines of command. Matlab, Maple, and Mathematica are some of the
most common examples of ready-made software programs that are tailored to solve
numerical problems.
The easy approach using ready-made software programs has its drawback. The
software behaves like a black box where the user does not need to know the details of
the method for solving the problem. The underlying concepts in solving the problem
are hidden in the software, and this approach does not really test the mathematical
skill of the user. Very often, the user does not understand how the method works as
all he or she gets is the generated solution. In addition, the user may face difficulty
in trying to figure out why a particular solution fails because of problems such as
singularity in the domain.
Aready-made software program also does not provide the flexibility of customizing
the solution according to the user’s requirement. The user may need special features
to visualize the solution, but these features may not be supported in the software. In
addition, a ready-made software program generates files that are relatively large in
size. The large size is the result of the large number of program modules from its
library that are stored in order to run the program.
The real challenge in solving a numerical problem is through the native language
programming. It is through programming that a person will understand the whole
method comprehensively. The developer will need to start from scratch and will
need to understand all the fundamental concepts for solving a given problem before
the solution to the problem can be developed. The whole process in providing the
solution may take a long time, but a successful solution indicates the programmer
fully understands the whole process.
It is also important for us to accept both approaches. Ready-made software programs
are needed in cases where the program needs to be delivered fast.Aready-made
software program can produce the desired solution within a short period of time if
all required routines are available in the software, which is done by following the
right commands and procedures in handling the software. In cases where some required
actions are not supported in the software, it may be necessary to integrate the
solution with a programming language such as C++. Conversely, if one starts from a
programming language, it may be necessary call a ready-made software program to
handle some difficult tasks. For example, C++ may be used to draw up the numerical
solution to the heat distribution problem. To see the solution in the form of surface
graph, it may be wise to call a few routines from Matlab as the same feature in C++
will require a long time to develop.
1.2 C++ FOR NUMERICAL MODELING
C++ is a language that has its origin from C, developed in early 1980s. C++ retains
all the procedural structure of C but adds the object-oriented features in order to
meet the new requirements in computing. Both C and C++ are heavily structured
high-level languages that produce small executable files. The two languages are also
suitable for producing low-level routines that run the device drivers of many electronic
components.
C++ is popular because of its general-purpose features to support a wide variety
of applications, such as data processing, numerical, scientific, and engineering. C++
is available in all computing platforms, including Windows, UNIX, Macintosh, and
operating systems for mainframe and minicomputers. C++ is a revolutionary language
that has a very strong following from students, practitioners, researchers, and software
developers all over the world. The language is taught in most universities and colleges
in the world as a one- or two-semester subject to support numerical and generalpurpose
applications.
C++ is a language that strongly supports object-oriented programming. Objectoriented
programming is a programming approach based on objects. An object is an
instance of a class. A class is a set of entities that share the same parent. As it stood,
C++ is one of the most popular object-oriented programming languages in the world.
The main reason for its popularity is because it is a high-level language, but at the
same time, it runs as powerful as the assembly language. But the real strength of C++
lies in its takeover from C to move to the era of object-oriented programming in the
late 1980s. This conquest provides C++ with the powerful features of the procedural C
and an added flavor for object-oriented programming.
The original product from Microsoft consists of the C compiler that runs under the
Microsoft DOS (disk operating system), and it has been designed to compete against
Turbo C, which was produced by the Borland Corp. In 1988, C++ was added to C
and the compiler was renamed Microsoft C++. In early 1989, Microsoft launched
the Microsoft Windows operating system, which includes the Windows API (application
programming interface). This interface is based on 16 bits and it supports the
procedural mode of programming using C.
Improvements were made over the following years that include the Windows
Software Development Kit (SDK). This development takes advantage of the API
for the graphical user interface (GUI) applications with the release of the Microsoft C
compiler. As this language is procedural, the demands in the applications require
an upgrade to the object-oriented language design approach, and this contributes
to the release of the Microsoft C++ compiler. With the appearance of the 32-bit
Windows API (or Win32 API) in the early 1990s, C++ was reshaped to tackle the
extensive demands on Windows programming and this brings about the release of
the Microsoft Foundation Classes (MFC) library. The library is based on C++, and it
has been tailored with the object-oriented methodology for supporting the application
architecture and implementation.
The main reason why Visual C++.Net is needed in numerical methods is its powerful
simulation and visualization tools. The Net platform refers to a huge collection
of library functions and objects for creating full-featured applications on both the
desktop and the enterprise Web. The classes and objects provide support for friendly
user interface functions like multiple windows, menus, dialog boxes, message boxes,
buttons, scroll bars, and labels. Besides, the platform also includes several tedious
task-handling jobs like file management, error handling, and multiple threading. This
platform also supports advanced frameworks and environments such as the Passport,
Windows XP, and the Tablet PC. The strength of the Net platform is obvious in providing
the Internet and Web enterprise solutions. Web services include information
sharing, e-commerce, HTTP, XML, and SOAP. XML, or Extensible Markup Language,
is a platform-independent approach for creating markup languages needed in
a Web application.
A new approach in Visual C++.Net is the Managed Extension, which performs
automatic garbage collection for optimizing the code. Garbage collection involves
the removal of memory and resources unused any more in the application, which
is often neglected by the programmer. The managed extension is a more structured
way in programming, and it is now the default in Visual C++.Net. Central to the .Net
platform is the Visual Studio integrated development environment (IDE). It is in this
platform that applications are built from a choice of several powerful programming
languages that include Visual Basic, Visual C++, Visual C#, and Visual J++.
In addition, IDE also provides the integration of these languages in tackling a particular
problem under the .Net banner. Visual C++.Net is one of the high-performance
compilers that makes up the .NET platform. This highly popular language has its root
in C and was improved to include the object-oriented elements; now with the .Net
extension, it is capable of creating solutions for the Web enterprise requirements. A
relatively new language called Visual C# in the .Net family was developed by taking
the best features fromVisual Basic visual tools with the programming power ofVisual
C++.
In addition to its single-machine prowess, Visual C++.Net presents a powerful
approach for building applications that interact with databases through ADO.NET.
This product evolves from the earlier ActiveX Data Objects (ADO) technology, and
it encompasses XML and other tools for accessing and manipulating databases for
several large-scale applications. This feature makes possible Visual C++.Net as an
ideal tool for several Web-based database applications.
1.3 MATHEMATICAL MODELING
Many problems arise in science and engineering that have their roots in mathematics.
Problems of this nature are best described through mathematical models that provide
the fundamental concepts needed in solving the problem. A successful mathematical
modeling always leads to a successful implementation of the given project.
A mathematical model is an abstract model that uses mathematical language to
describe the behavior of a system. It is an attempt to find the analytical solutions for
enabling the prediction of the behavior of the system from a set of parameters, and
their initial and boundary conditions in a given problem. A mathematical model is
composed of variables and operators to represent a given problem. Variables are the
abstractions of the quantities of interest in the described systems, whereas operators
are the mechanisms that act on these variables. An operator can be expressed in the
form of an algebraic operator, a function, a differential operator, and so on.
One good example of mathematical modeling is in the heat distribution problem
in a two-dimensional plane, which is modeled as a Laplace function given by
∇2u = ∂2u
∂x2
+ ∂2u
∂y2 .
In the above equation, ∇2 = ∂2
∂x2 + ∂2
∂y2 is an operator that acts on the heat quantity
u, whose independent variables are x and y. The model describes the analytical
solution of heat distribution in a given domain subject to certain initial and
boundary conditions. We will discuss the numerical solution to this problem later in
Chapter 11.
A mathematical model is often represented as variables in terms of objective
functions and constraints. If the objective functions and constraints in the problem
are represented entirely by linear equations, then the model is regarded as a linear
model. If one or more of the objective functions or constraints are represented with a
nonlinear equation, then the model is known as a nonlinear model. Most problems in
science and engineering today are modeled as nonlinear.
A deterministic model is one where every set of variable states is uniquely determined
by parameters in the model and by sets of previous states of these variables.
For example, the path defined by a delivery truck for distributing petrol in a city is
defined as a deterministic model in the form of a graph. In this case, the petrol stations
can be modeled as the nodes of the graph, whereas the path is defined as the edges
between the nodes. Conversely, in a probabilistic or stochastic model, randomness
is present, and the variable states are not described by unique values. Very often, the
model is represented in the form of probability distribution functions.
A mathematical model can be classified as static or dynamic. A static model does
not account for the element of time, whereas a dynamic model does. Dynamic models
typically are represented with difference equations or differential equations. A
model is said to be homogeneous if it is in a consistent state throughout the entire system.
If the state varies according to certain controlling mechanism, then the model is
heterogeneous. If the model is homogeneous, then the parameters are lumped, or confined
to a central depository. A heterogeneous, model has its parameters distributed.
Distributed parameters are typically represented with ordinary or partial differential
equations.
Mathematical modeling problems are also classified into black-box or white-box
models, according to how much a priori information is available in the system. A
black-box model is a system of which no a priori information is available.Awhite-box
и так далее ;))