You are on page 1of 59

INTRODUCTION TO PROBLEM AREA

,,

Mathematics is a group of rules, theorems and basic laws who work together to achieve
specified result. A Matrix Manipulation contains many & more concepts.

In existing system or we can say that when work is being done manually, this system
involves a lot of paper work. Because if there is large strength of matrices to Maintain, then
Person cannot remember each & every value of different Matrices.

Now industries are running at rocket speed. There is competition in each & every field. For
large strength of Matrices it is very complicated to keep the records manually.

With manual system, entries for Matrix information, their manipulation performed in
different files.

Therefore, a lot of time is consumed to perform this work. Data stored in files can not be
maintained for long period of time and a lot of time is to be consumed in find a particular
entry. In that system, the chances of inaccuracy and duplicacy will be more.

The individual items in a matrix are called its elements or entries.[4] Provided that they are
the same size (have the same number of rows and the same number of columns), two
matrices can be added or subtracted element by element. The rule for matrix multiplication,
however, is that two matrices can be multiplied only when the number of columns in the first
equals the number of rows in the second. A major application of matrices is to
represent linear transformations, that is, generalizations of linear functions such as f(x) = 4x.
For example, the rotation of vectors in three dimensional space is a linear transformation
which can be represented by a rotation matrix R: if v is a column vector (a matrix with only
one column) describing the position of a point in space, the product Rv is a column vector
describing the position of that point after a rotation.

The product of two transformation matrices is a matrix that represents the composition of two
linear transformations. Another application of matrices is in the solution of systems of linear
equations. If the matrix is square, it is possible to deduce some of its properties by computing
its determinant. For example, a square matrix has an inverse if and only if its determinant is

1
not zero. Insight into the geometry of a linear transformation is obtainable (along with other
information) from the matrix's eigen values and eigenvectors.

Applications of matrices are found in most scientific fields. In every branch of physics,
including classical mechanics, optics, electromagnetism, quantum mechanics, and quantum
electrodynamics, they are used to study physical phenomena, such as the motion of rigid
bodies. In computer graphics, they are used to project a 3-dimensional image onto a 2-
dimensional screen. In probability theory and statistics, stochastic matrices are used to
describe sets of probabilities; for instance, they are used within the PageRank algorithm that
ranks the pages in a Google search.[5] Matrix calculus generalizes
classical analytical notions such as derivatives andexponentials to higher dimensions.

A major branch of numerical analysis is devoted to the development of efficient algorithms


for matrix computations, a subject that is centuries old and is today an expanding area of
research. Matrix decomposition methods simplify computations, both theoretically and
practically. Algorithms that are tailored to particular matrix structures, such as sparse
matrices and near-diagonal matrices, expedite computations in finite element method and
other computations. Infinite matrices occur in planetary theory and in atomic theory. A
simple example of an infinite matrix is the matrix representing the derivative operator, which
acts on the Taylor series of a function.

A matrix is a rectangular array of numbers or other mathematical objects for which


operations such as addition and multiplication are defined.[6] Most commonly, a matrix over
a field F is a rectangular array of scalars each of which is a member of F.[7][8] Most of this
article focuses on real and complex matrices, i.e., matrices whose elements are real
numbers or complex numbers, respectively. More general types of entries are
discussed below. For instance, this is a real matrix:

2
The numbers, symbols or expressions in the matrix are called its entries or its elements. The
horizontal and vertical lines of entries in a matrix are called rows and columns, respectively.

The size of a matrix is defined by the number of rows and columns that it contains. A matrix
with m rows and n columns is called an m × n matrix or m-by-n matrix, while m and n are
called its dimensions. For example, the matrix A above is a 3 × 2 matrix.

Matrices which have a single row are called row vectors, and those which have a single
column are called column vectors. A matrix which has the same number of rows and
columns is called a square matrix. A matrix with an infinite number of rows or columns (or
both) is called an infinite matrix. In some contexts, such as computer algebra programs, it is
useful to consider a matrix with no rows or no columns, called an empty matrix.

This is a brief explanation of matrix multiplication for those who are not familiar with it. So
long as you understand how to add and multiply you can understand matrix multiplication –
it is really no more difficult than a Sudoku puzzle.

Consider the following matrix and vector, which are to be multiplied:

The matrix elements are labelled by row then column, hence  is the element in the r'th
row and the c'th column.

To explain matrix multiplication step by step, first take the top row and rotate it into a
column vector then align it with the vector v:

We then multiply the correspond vector elements giving us:

3
Then we sum these elements together into a single value then assign this value to the
top element of a new vector n:

Once we have done this for each row in the matrix we have a new vector n:

This is nothing more than a structured process of multiplication and addition. With a
little practice it can become very easy to comprehend.

  Another way to visualise the process is to take the vector and rotate it then place it
above the matrix:

Then let the vector elements slide down to a row, combine with the row elements and
slide off to the right to form a new vector element.

4
DEFINATION OF MATRIX

A matrix is a rectangular two-dimensional array of numbers.

1. We say a matrix is m n if it has m rows and n columns.


2. These values are sometimes called the dimensions of the matrix.
3. Note that, in contrast to Cartesian coordinates, we specify the number of rows (the
vertical dimension) and then the number of columns (the horizontal dimension).
4. n most contexts, the rows and columns are numbered starting with 1.
5. Several programming APIs, however, index rows and columns from 0.
6. We use aij to refer to the entry in ith row and jth column of the matrix A.

5
BASIC OPERATIONS

Addition:

The sum A+B of two m-by-n matrices A and B is just like this example,

A + B)i,j = Ai,j + Bi,j, where 1 ≤ i ≤ m and 1 ≤ j


≤ n. Scalar multiplication:

The scalar multiplication cA of a matrix A and a number c (also called a scalar in the
parlance of abstract algebra) is given by multiplying every entry of A by c:

(cA)i,j = c · Ai,j.

Transpose:

The transpose of an m-by-n matrix A is the n-by-m matrix AT (also denoted Atr or tA)
formed by turning rows into columns and vice versa:

(AT)i,j = Aj,i.

6
Multiplication of two matrices is defined only if the number of columns of the left
matrix is the same as the number of rows of the right matrix. If A is an m-by-n
matrix and B is an n-by-

p matrix, then their matrix product AB is the m-by-p matrix whose entries are
given by dot product of the corresponding row of A and the corresponding
column of B:

Where 1 ≤ i ≤ m and 1 ≤ j ≤ p.[5] For example, the underlined entry 1 in the product
is calculated as (1 × 1) + (0 × 1) + (2 × 0) = 1:

Matrix multiplication satisfies the rules (AB)C = A(BC) (associativity), and

(A+B)C = AC+BC as well as C(A+B) = CA+CB (left and right distributivity),


whenever the size of the matrices is such that the various products are defined. [6] The
product AB may be defined without BA being defined, namely if A and B are m-by-
n and n-by-k matrices, respectively, and m ≠ k. Even if both products are defined,
they need not be equal, i.e., generally one has
AB ≠ BA,
7
i.e., matrix multiplication is not commutative, in marked contrast to (rational, real, or
complex) numbers whose product is independent of the order of the factors. An
example of two matrices not commuting with each other is:

Whereas

The identity matrix In of size n is the n-by-n matrix in which all the elements
on the main diagonal are equal to 1 and all other elements are equal to 0, e.g.

It is called identity matrix because multiplication with it leaves a matrix unchanged:


MIn = ImM = M for any m-by-n matrix M.

Besides the ordinary matrix multiplication just described, there exist other less
frequently used operations on matrices that can be considered forms of
multiplication, hence arise in solving matrix equations such as the Sylvester
equation.

A particular case of matrix multiplication is tightly linked to linear equations: if x


designates a column vector (i.e., n×1-matrix) of n variables x1, x2... xn, and A is an
m-by-n matrix, then the matrix equation

Ax = b,

8
Where b is some m×1-column vector, is equivalent to the system of linear equations

A1, 1x1 + A1,2x2 + ... + A1,nxn = b1

...

Am,1x1 + Am,2x2 + ... + Am,nxn = bm

This way, matrices can be used to compactly write and deal with multiple linear
equations, i.e., systems of linear equations.

Now let us about the various applications of Matrices that are applied interestingly.

1. GRAPH THEORY:

The adjacency matrix of a finite graph is a basic notion of graph theory.

2. LINEAR COMBINATIONS OF QUANTUM STATES IN PHYSICS:

The first model of quantum mechanics by Heisenberg in 1925 represented


the theory's operators by infinite-dimensional matrices acting on quantum
states. This is also referred to as matrix mechanics.

3. COMPUTER GRAPHICS:

4×4 transformation rotation matrices are commonly used in computer


graphics.

4. SOLVING LINEAR EQUATIONS USING ROW REDUCTION

Cramer's Rule
(Determinants)
Using the inverse
matrix

9
5. CRYPTOGRAPHY.

Write, encode, decode and send secret messages using Matrices:

Word games and mathematical puzzles often center on codes and secret messages.
But secret messages aren't just for fun and games; they're used all over the world, and
in all kinds of circumstances. Governments and military organizations use them to
keep secrets; websites use them to keep financial information like credit card
numbers and bank account information secret. And everyone enjoys sharing secret
messages with friends. There are all kinds of codes you can use to communicate with
friends. Some are very complex and difficult to decode, and others are very simple.
Some use numbers and mathematics, and others use the alphabet, or pictures and
symbols.

Not all codes are designed to keep secrets, though. Can you think of a code which
was designed to send messages by telegraph, using sequences of short and long
tones called dots and dashes?

Another system of writing looks like a code, but in reality is designed to help people
who cannot see. The dots that make up letters are raised from the page so the blind
person can feel them with the fingertips. Do you know what that system of writing is
called?

Here at The Problem Site's "Codes, Decoding, and Secret Messages" site, you can
learn more about a lot of different codes, and even try them out! Just click on any of
the mysterious symbols at the top of the page to learn more about a code.

The Matrix Code is a complex method for creating and decoding secret messages. I
won't go into all the details here, because it is very confusing if you haven't learned
about matrices and determinants in your math class. And if you aren't in high school
or college yet, you probably haven't!

Most of the codes you've looked at her change the message one letter at a time. First,
letter number one gets changed (into a number, a symbol, or another letter), then the
10
second letter, and the third, and so on. But in a matrix code, the letters get changed in
groups! So it's much harder to decode the message.

This way of sharing secret messages are communicated by the following methods:

1. Steganography
2. Cryptography

11
OBJECTIVE OF THE PROJECT

Okay, so I had working code written in all objective c (yes, I know that objc is
technically just C. But i mean I had it written with messages and stuff. I only have a
java background and do not know much about plain old C) but it ran incredibly slow.

So I wrote out (what i thought) was the same code, but now this set of loops
produces different values (for only some of the numbers) and I cannot, for the life of
me, figure out whats different. What I am doing is looping 10 times and doing 1
multiplication and 1 addition between matricies. I'm hoping someone with more
background with the two languages can pick out the part of code that I transcribed
incorrectly. I did not change anything beforehand for any of the arrays (those were
hardcoded in and unaffected) so A1, A2, etc have the same values in both parts of
code.

1. Asking strangers to spot errors in your code by inspection is not productive. You
should use the debugger (or print statements) to identify where the behaviour of
the code diverges, using a small simple data-set.
2. Does xcode have a debugger, and if so, how do I use it? I've NS Log'ed a variety
of places and ran tons of tests using that, but still to no success
3. You should check which code produces correct results (only one of them can be
right). Then try to find the bug(s) in the wrong code. If you don't want to check by
hand, there are a number of tools that you can use for matrix multiplication, e.g.
parts of the GSL library.
4. Both your addition and multiplication code look right. Check your allocation,
verify that you clear the arrays, and run it through valgrind to check for subtle
memory errors.
5. Asking strangers to spot errors in your code by inspection is not productive. You
should use the debugger (or print statements) to identify where the behaviour of
the code diverges, using a small simple data-set.
6. Does xcode have a debugger, and if so, how do I use it? I've NSLog'ed a variety of
places and ran tons of tests using that, but still to no success
7. You should check which code produces correct results (only one of them can be
right). Then try to find the bug(s) in the wrong code. If you don't want to check by

12
hand, there are a number of tools that you can use for matrix multiplication, e.g.
parts of the GSL library.
The system analyst must be aware of exactly what the user requires from the
new system. That is management grades as objectives must be fully known and
understood. After reviewing the objectives of the current system, it is quite possible
that he or she may be aware of the computer capabilities that can be utilized to
develop the system which can fulfill the requirements.

The main objectives of the proposed system are as follows:-

1. To save the time.


2. To reduce paper and file work.
3. To speed up the procedure.
4. To relieve the management from repetitive work.
5. To enable efficient and accurate reporting.
6. To have a flexible system that can adjust changes in future.
7. For fast retrieval of information.
8. For better presentation of report.

13
EXISITING SYSTEM

Matrix algebra approach is a useful means of compactly presenting lengthy and


sometimes complex formulas. A matrix is a rectangular array of elements arranged in
horizontal rows and vertical columns.

The number of rows and columns may vary from one matrix to another, so we
conveniently describe the size of a matrix by giving its dimension, that’s the number
of its rows and columns. A matrix is said to have size n x m, read “n by m” if it has n
rows (horizontal lines) and m columns (vertical lines).

The number of rows is always stated first. A square matrix is one for which m=n. The
most direct way to create a matrix in MATLAB is to type the entries in the matrix
between square brackets one row at a time.

Matrix multiplication in c language: c program to multiply matrices (two dimensional


array), this program multiplies two matrices which will be entered by the user. Firstly
user will enter the order of a matrix. If the entered orders of two matrix is such that
they can't be multiplied then an error message is displayed on the screen. You have
already studied the logic to multiply them in Mathematics.

Existing system is manual, which is time consuming, inefficient, tedious, and


ineffective. It has several disadvantages.

Problem definition is the initial phase of system development life cycle which deals
with a very important question i.e. what is the necessity for the change and to identify
and understand the problem areas and domains.

Problem definition includes the attempts made by software developer to identify what
information is to be processed and performance are required, what type of system
behaviour can be expected, what interfaces are to be established. What design
constraints exists and what validation criteria are required to define a successful
system.
The techniques for gaining this information include observation of problem task and
actual performance of task by the planner. The key requirement of the system and
software are identified.

14
PROBLEM INVOLVED IN EXISTING SYSTEM

Initially before coming up of computers, the data processing activities faced


many problems such as inaccuracy, inefficiency, delay and improper maintenance.

1. CURRENT STATUS
In the existing system, if user wants to see what is the current position of the
customer data base that is what is the current position according to Sim ID wise then
it is difficult to see this manually.

2. DUPLICATION
In the existing system, all the data is maintained in different files and registers.
This often leads to data duplication and redundancy in the stored data, thus leading to
wastage of storage of space.

3. INACCURACY
In the existing system, data is entered in to various registers that is customer
register, which results into slow access to the desired information. The inaccuracy
caused is due to manual storage of the data.

4. INCONSISTENCY
Presently the system is not aware of the duplication of the data, they are
maintaining the record manually which results in the total being of access of what it
should be. In such information, the data is said to be inconsistent which supplies
incorrectly information.

6. NOT A PROPER SYSTEM OF RECORDS


In existing system, various thing are maintained in the paper so it is very
inconvenient to modify the data, in case of manual error, if the number of mistakes
are high, then the whole set of records may have to be written again, to avoid any
possible error occurring therefore.

7. PROBLEM UPDATION
In the existing system, since everything is stored in the registers. It is quite
difficult and time consuming to update the all records. The major problem is the

15
modification that must be reflected in all the entries and summaries also needed to be
updated.

16
LIMITATIONS OF EXISTING SYSTEM

1. Large order matrices cannot be handled properly.


2. In a manual system huge paper work is required. We can not maintain its record
& preserve it for long period.
3. The Order of matrices cannot be modified.
4. In a manual system, some time mistakes creep in and results are not correct
which leads to falsification.

So, in the present era, world is moving on a fast track and manual system can not
complete the requirements of its users, with the changing world progress.

17
PROPOSED SYSTEM

In modern mathematics, matrices occupy a very important place. So, the


working knowledge of is must as the problems occurring in science, engineering and
applied mathematics can be efficiently solved by expressing them in the form of
matrices. They provide an algebraic structure slightly different from that of the real
number. They are widely used in modern algebra, applied mathematics, atomic
physics, mathematical problem of economics etc.

A matrix is a system of m, n elements arranged in a rectangular formation


along m rows and n columns bounded by brackets . This formation is sometimes more
explicitly known as m by n matrix and written as mn matrix. Each of the numbers is
called element of the matrix. A matrix is always denoted by a single capital letter.

There are various operations which can be performed on a matrix. So, I have
developed software which performs some of the widely used operations implemented
on a matrix. This system includes the following operations:-

1. Addition of matrices:- If A and B are two matrices of the same order ,then
their sum A+B is defined as the matrix whose elements is the sum of the
corresponding elements of A and B.
2. Subtraction of two matrices:-If A and B are the two matrices of the same
order the A-B is defined as the matrix whose elements is obtained by
subtracting the corresponding elements of B and A.
3. Multiplication of two matrices:-Multiplication of two matrices is possible only
if the number of columns of the first matrix is equal to the number of rows of
the second matrix. Such matrices are known as Conformable matrices.
4. Transpose of a matrix:-The matrix obtained from any matrix A by
interchanging its rows and columns is called the transpose matrix of A.
5. Inverse of a matrix:-The inverse of a square matrix A is denoted by Aˉ¹,
which exits only if A.Aˉ¹=I, where I is the identity or unity matrix.
6. Maximum element of a matrix:-The maximum operation is used to calculate
out the element having the maximum element in the matrix.

18
7. Minimum element of a matrix:-The minimum operation is used to calculate
out the element having the minimum element in the matrix.
8. Mean of the matrix:-Mean of the matrix is calculated out by performing the
sum of all the elements divided by the total number of the elements.
9. There is a facility of matrix manipulation menu in which there is a list of
operations the user want to perform.

There is a facility for the user to enter the size of the matrix i.e. the rows and
columns of the matrix.

In between there is a function for validation.


Lastly, you can exit from program using the quit operation.

The proposed project will pursue the theory and practice of algorithms for
linear algebra operations, and their implementations, when the matrices and/or vectors
are stored recursively by blocks, as hierarchical matrices (Hyper Matrices). The goal
is to formalize abstractions for such data structures, to develop Application
Programming Interfaces (APIs) that allow the practical development of entire dense
and sparse linear algebra libraries specialized for these new data structures, and to
implement proof-of-concept libraries. The proposed infrastructure will also be
exploited for the transparent scheduling and optimization of operations on
submatrices targeting SMP and multi-core architectures. With the advent of
processors with complex multi-level memories and architectures, a number of projects
have started to re-examine how matrices should be stored in memory (a thorough
review of these projects can be found in a recent SIAM Review paper by Elmroth et
al.).

The primary goal is to improve performance of basic linear algebra kernels


like the level-3 Basic Linear Algebra Subprograms (BLAS), a set of matrix-matrix
operations that perform O(n 3 ) computations on O(n 2 ) data, as well as higher level
linear algebra libraries like LAPACK. By storing blocks at different levels of
granularity packed in memory, costly memory-to-memory copies and/or
transpositions can be avoided. These copies are currently required to provide
contiguous access to memory and/or to reduce cache and TLB misses. While
conceptually the previously proposed solutions are often simple and elegant,
complicated indexing continues to prevent general acceptance. The new insight that
19
underlies the proposed project is simple but powerful: Storage by recursive blocks is
typically explained as a tree structure with submatrices that are stored contiguously at
the leaves, and inductively as blocks of submatrices at each other level of the tree.

Thus, a data structure, Hyper-Matrix, that reflects this tree is the most natural
way of expressing hierarchical matrices. Similarly, algorithms over these trees are
expressed as recursive algorithms. An API for implementing recursive algorithms that
obey this tree provides a natural solution. The proposed research is particularly timely
given the emergence of IBM’s Cell processor and other multi-core architectures that
have memory local to each core. These architectures require hand-managed data
moves. HyperMatrices can store data contiguously at the leaves, which simplifies
these data moves, and the proposed API simplifies the programming effort. Moreover,
the leaf submatrices and operations on them become units of data and computation for
scheduling purposes, allowing techniques used for scheduling operations on super-
scalar architectures to be transparently employed.

Thus, the proposed work meets a critical need for new programming
techniques that support such new architectures. The team assembled at UT-Austin has
unique qualifications for the proposed project: To make a meaningful assessment of
the benefits of storage by blocks, it is essential that the best implementations that
target traditional storage be compared to the best implementations that utilize
hierarchical storage. Mr. Kazushige Goto (CoPI) rejoined UTAustin in Fall 2004 and
has implemented the fastest BLAS (GotoBLAS) for all widely used sequential
architectures. The FLAME project, headed by Prof. van de Geijn (PI), has developed
the most advanced approach to the development of linear algebra libraries, including
derivation and implementation. Both these projects have yielded libraries that are
available under Open Source licenses.

The intellectual merit of the proposed work lies with the demonstration that by
raising the level of abstraction at which one thinks of hierarchical matrices, and the
way they are stored, the code which implements algorithms that perform operations
on such matrices is greatly simplified. This is a key step that will motivate the
scientific computing community to embrace such a new approach to coding matrix
operations. It also lies with the empirical and theoretical analyses of how algorithms
and architectures interact when matrices are stored hierarchically.

20
A final key contribution is to show superior performance, which is always the
primary motivation in this community. The broader impact lies with the tools, in form
of libraries, that will be made available to the computational science community, and
the pedagogical benefits of a simplified approach. In the body of this proposal and
letters of support from industry and government labs, evidence is presented that the
proposed work is (1) of scientific importance, (2) based on sound preliminary results,
(3) achievable, (4) of benefit to the scientific computing community, and (5) of
pedagogical value

21
HARDWARE & SOFTWARE REQUIREMENT

In order to run this project of “MATRIX MANIPULATION” developed under


C language your computer should meet the following Hardware and Software
requirements:

HARDWARE REQUIREMENTS
1. At least 32 MB RAM Preferred
2. Hard disk of size 8 GB or Above
3. SVGA Card
4. Monitor Mono VGA\Color SVGA (Preferred)
5. Keyboard
6. CD Drive
7. Floppy Drive

SOFTWARE REQUIREMENTS

1. Operating System : Dos 6.22 or win 98 preferred


2. MS-office 97 or Above
3. Compatible C Compiler

22
FEASIBILITY STUDY

The main objective of the feasibility study is to determine whether it is


feasible to automate the system. The analyst discusses goals and objectives and the
new system in review with the administration and users handling to the school
administration system.

The administrator considers the following three major areas to determine the
feasibility of this project.

TECHNICAL FEASIBILITY: -
He determines whether the current level of technology can support the
proposed system. The current set up is sufficient for the processing of the system or
not. The required hardware and software are available in the market. Thus the system
is feasible.

ECONOMIC FEASIBILITY: -
He measures the cost effectiveness of the project. He now need not invest in
the hardware, as it is already available. He will still need to consider the time spent by
the systems analysis team, the cost of doing a full systems study

OPERATIONAL FEASIBILITY: -
He considers the extents the proposed system will his department s
requirements that are whether the proposed system covers all aspects of the working
system and whether it has considerable improvements.

23
SYSTEM ANALYSIS & DESIGN

SYSTEM DESIGN:-

System designing is the process which has to be rendered by the system


analyst. He studied the manual system and the output coming, then he designs output
graph chart for the programmer. Besides this analyst has document the existing
system to design the input and codes, which a programmer used in his programs.

As we know that designing process focus on the implementation system


recommended in feasibility analysis. Designing translates performance specifications
into design. The system design is similar to objective of the project. In this we have
to mention all points which we have to mention in the objectives of project. It
includes.

1. Input Design

2. Output Design

3. File Design

Input Design:

Input design is a part of system design, which requires very careful attention.
Often the collection of input data is the most expensive part of the system in terms of
the both the equipment used and the number of people involved.

Input design is a essential part of this project. It is the explanation part of what
we are inputting in the computer, which will help us in further processing. Before
starting any processing or before entering any information, we have to go through
“main menu”.

Output

1. Matrix addition:- This module is used to make addition of matrices


of different different order matrices
2. Matrix Subtraction:- This module is used to make subtraction of
matrices of different different order matrices

24
3. Matrix Multiplication:- This module is used to make Multiplication
of matrices of different different order matrices
4. Matrix Transpose:- This module is used to make addition of
matrices of different different order matrices
5. Matrix Maximum- This module is used to find out the maximum
element of different different order matrices
6. Matrix Minimum:- This module is used to find out minimum
element of different different order matrices
7. Matrix Diagonal Sum:- This module is used to find out the sum of
diagonal elements of different different order matrices

25
INPUT

N * M MATRIX

In all the cases we have to input a particular order matrix like 3 * 3 matrix.

A B
1 2 3 4 5 6
4 5 6 7 8 9
7 8 9 1 2 3

FILE DESIGN

Basically my project is used for matrices manipulations. We are having


different different order matrices. We can enter any order matrix like 3 * 3, 2 * 2 etc.

We have to input the n number of elements.

26
The Waterfall Model:

The waterfall model is a sequential software development model( A process for the
creation of software) in which development is seen as flowing steadily downwards
(like a waterfall) through the phases of requirements analysis, design ,
implementation, testing (validation), integration, and maintenance. The origin of the
term “waterfall” is often cited to be an article published in 1970 by W. W. Royce;
ironically, Royce himself advocated an iterative approach to software development
and did not even use the term “waterfall”. Royce originally described what is now
known as the waterfall model as an example of a method that he argued “is risky and
invites failure”.

The unmodified “waterfall model” progress flows from the top to the bottom, like
waterfall.
In Royce’s original waterfall model, the following phases are followed perfectly in
order:

Requirements specification
Design
27
Construction (aka: implementation or coding)
Integration
Installation
Testing and debugging (aka: verification)
Maintenance

To follow the waterfall model, one proceeds from one phase to the next in a purely
sequential manner. For example, one first completes “requirement specification” _
they set in stone the requirements of the software. (Example requirements for
Wikipedia may be “Wikipedia” allows anonymous editing of articles; Wikipedia
enables people to search information”, although real requirements specifications will
be much more complex and detailed.) When and only when the requirements are fully
completed, one proceeds to design. The software in question is designed and a
“blueprint” is drawn from implementer (coders) to follow _ this design should be a
plan for implementing of that design is made of coders. Towards the later stage of this
implementation phase, disparate software components produced by different teams
are integrated. (For example, one team may have been working on the “web page”
components of Wikipedia and another team may have been working on the “server”
components of Wikipedia. This components must be integrated together to produce
the whole system) after the implementation and integration phase are complete, the
software product is tested and debugged; any faults introduced in earlier phase are
removed here. Then the software product is installed, and later maintained to
introduce new functionality and removed bugs.

Thus the waterfall model maintains that one should move to a phase only when it’s
preceding phase is completed and perfected. Phases of development in the waterfall
model are thus discrete, and there is no jumping back and forth or overlap between
them.
However, there are various modified waterfalls model(includingRoyce’s final model)
that may include slight or major variations upon the process.

28
Arguments for the waterfall model:

model provides a structured approach; the model itself progresses linearly through
discrete , easily understandable and explainable “phases” and is thus easy to
understandable and explainable “phases” and is thus easy to understand; it also
provide easy mark able “milestones” in the development process. It is perhaps for this
reason that the waterfall model in many Time spent early on in software production
can lead to greater economy later on in the software life cycle; that is, it has been
shown many times that a bug found in the early stages of the production life cycle
(such as requirements specifications or design) is more economical (cheaper in terms
of money, efforts and time) to fix than the same bug found later on the process.
([McConnell 1996], p. 72, estimates that “ a requirement defect that is left undetected
until construction or maintenance will cost 50 to 200 times as much to fix as it would
have cost to fix at requirement time.”) This should be obvious to some people; if a
program design is impossible to implement, it is easier to fix the design at the design
stage then to realize months down the track when program components are being
integrated that all the work done so far has to be scrapped because of a broken design.
This is the central idea behind Big Design Up Front (BDUF) and the waterfall model
– time spent early on making sure that requirement and design are absolutely correct
is very useful in economic terms (it will save you much time and effort later). Thus,
the thinking of those who follow the waterfall process goes, one should make sure
that each phase is 100% complete and absolutely correct before proceeding to thenext
phase of programme creation. Program requirement should be set in stone before
design is started ( otherwise work put into a design based on “incorrect” requirement
is wasted); the program design should be perfect before people being work on
implementing the design (otherwise they are implementing the “wrong” design and
their work is wasted), etcetera.
A further argument for the waterfall model is that it places emphasis
documentation(such as requirements documents and design documents) as well as
source code. More “agile” methodologies can de_ emphasise documentation in
favour of producing working code documentation however can be useful as a “partial
deliverable”should a project not run far enough to produce any substantial amounts of
source code ( allowing theproject to be resumed at a later date). An argument against

29
agile development methods, and thus partly in favour of the waterfall model, is that in
agile methods project knowledge is stored mentally by team members.
Should team members leave, this knowledge is lost, and substantial loss of project
knowledge may be difficult for a project to recover from. Should a fully working
design documents be present (as is the intent of Big DESIGN up Front and the
waterfall model) new team members or even entirely new team should theoretically
be able to bring themselves “up to speed” by reading the document themselves. With
that said, agile methods attempt to compensate for this. For example, extreme
programming (XP) advises that project team members should be “rotated” through
sections of work in order to familiarise all members with all sections of the project
(allowing individual members to leave without carrying important knowledge with
them).
As well as the above, some prefer the waterfall model for its simple and arguably
more disciplined approach.
It is argued that the waterfall model and Big Design Up Front in general can be suited
to software projects and which are stable (especially those project with unchanging
requirement, such as with “shrink wrap” software) and where it is likely that designers
will be able to fully predict problem areas of the system and produce a correct design
before implementation is started. The waterfall model is widely used, including by
such large software development houses as those employed by the US Department of
Defence and NASA (see “the waterfall model” on the Internet achieve). Those who
use such methods do not always formally distinguished between the “pure” waterfall
model and the various modified waterfall models, so it can be difficult to discern
exactly which models are being used to which extent.
Steve McConnell sees the two big advantages of the pure waterfall model as
producing a “highly reliable system” and one with a “ large growth envelope “, but
rates it as poor on all other fronts. On the other hand, he views any of the several
modified waterfall models as preserving these advantages while also rating as “fair to
excellent” on work[ing] and poorly understood requirement”or “ poorly understood
architecture” and “provid[ing] management with progress visibility”, and rating as “
fair” on “manag[ing] risks”, being able to “ be constrained to a predefined schedule”,
“allow[ing] for mid course corrections”, and provid[ing] customers with progress
visibility”. The only criterion on which he rates a modified waterfall as poor is that it
requires sophistication from management and developers.
30
 Rational Behind Waterfall Model:

There are basic two assumptions for justifying the linear ordering of phases in the
manner proposed by the waterfall model.

 For a successful project resulting in successful project, all phases listed in the
waterfall model must be performed any way.
 Any different ordering of phases will result in a less successful software product.

A successful software product is one that all the development project. These
objectives include satisfying the requirement and performing the development with in
time and cost constrains. Generally, for any reasonable size project, all phases listed
in the model must be performed explicitly and formally. Informally performing the
phases will work only for every small project.
The second reason is the one that is now under debate. For many projects, the linear
ordering of activities shown in these phases is clearly the optimum way to organize
these activities. However, some argue that for many projects this ordering of activities
is unfeasible or sub optimum. Still, the waterfall model is conceptually the simplest
process for software development that has been used most often.

 Project Output in Waterfall Model:

Output of a project employing the waterfall model is not just the finalprogram along
with documentation to use it. There are a number of intermediate outputs that must be
produced to produce successful product .the following are set of documents that
generally forms the minimum set that would be produced in this project:

 System analysis
 System design document
 Feasibility study
 Software requirement specification
 Output design
 Testing and cost estimation of the project
 Coding
 Validation checks

31
 Future scope of the project &
 References
 Advantages of waterfall model:

It is well suited for routine types of projects where the requirements are well
understood. That is, if developing organisation is quite familiar with the problem
domain and the requirements for software are clear.
Standards followed during design:

 Designing Database -

A well design database makes programming and tuning the application much easier.
A logical database design is typically a block diagram of entities and relationships
referred to as an E-R diagram logical design is creating all the entities in a database
and establishing relationship between the entities. Physical database is taking the
logical database and creating a database and taking the database objects to represent
the entities and relationships in the logical database design. In the physical database
design, each entity becomes a table, and the attribute of the entity become the
columns of the table.

 Database design goal-

The design goal for logical database design isas:

 Establishing database purpose


 Support all queries
 Be able to perform all calculations
 Process all transactions
 Enforce restrictions and defaults
 Database design process-
 Retrieving information and analysing information
 Break the information into separate entities
 Assign attributes to each entities
 Identify a unique identifier for each entities
 Establish relationship among the entities

32
One to one 1:1
One to many 1: m
Many to many m: m
 Normalizing the logical design

33
DESCRIPTION OF SOFTWARE USED

WHAT IS C

C is often called a "middle level" programming language. This is not a


reflection on its lack of programming power but more a reflection on its capability to
access the system's low level functions. Most high-level languages (e.g. Fortran)
provides everything the programmer might want to do already built into the language.
A low level language (e.g. assembler) provides nothing other than access to the
machines basic instruction set. A middle level language, such as C, probably doesn't
supply all the constructs found in high-languages - but it provides you with all the
building blocks that you will need to produce the results you want!

A BRIEF HISTORY OF C

C is a general-purpose language which has been closely associated with the


UNIX operating system for which it was developed - since the system and most of the
programs that run it are written in C

Many of the important ideas of C evolve from the an old language known
BCPL, developed by Martin Richards. The influence of BCPL on C proceeded
indirectly through the language B, which was written by Ken Thompson in 1970 at
Bell Labs, for the first UNIX system on a DEC PDP-7. BCPL and B are "type less"
languages whereas C provides a variety of data types.

The C programming language was developed in the years 1969 to 1973,


although the first published description did not appear until the book The C
Programming Language" written by Brian Kernighan and Dennis Ritchie was
published in 1978. The early versions of the C language were strongly influenced by a
language called BCPL which itself was a derivative of Algo.

The early development of C was closely linked to the development of the Unix
operating system. Large portions of the code of the Unix operating system were
eventually written in C and problems encountered in transferring Unix to various
computers were reflected into the design of the C language. The modest hardware
available to the Unix developers was also reflected in the language design, most

34
notably the use of separate library functions for operations such as input and output.
Until the early 1980s the language was almost exclusively associated with Unix.

The widespread introduction of microprocessor based computer systems in the


early 1980s also saw a rapid growth in the use of C on such systems. C compilers
were known to be small and many of the start-up operations that produced the early
microprocessor based computer systems were staffed by ex-students who had
encountered the language whilst at university.

As early as 1982 it became clear that the informal description of the language
in Kernighan & Ritchie's book was not good enough. ANSI established a committee
known as X3J11 in 1983. This committee produced a report defining the language at
the end of 1989. The report was known as X3.159 but the standard was soon taken
over by ISO with the designation ISO/IEC 9899-1990.

This version of the language is known as ANSI-C to distinguish it from the


earlier version of the language described in Kernighan and Ritchie's book. The earlier
version of the language is known as K&R C. C++ and Objective-C are different
languages developed from C. The GNU C compiler, often known by the command
that invokes it, gcc is public domain software available for both Unix and MS DOS
based systems. It supports a version of the language close to the ANSI standard.

All the code presented in these notes, unless specifically indicated otherwise,
confirms to the ANSI standard. Many compiler writers and vendors produce C
compilers that will compile code conforming to the ANSI standard but they also
provide a variety of extensions to suit the particular target environment. Such
extensions are usually extra library routines for functions such as PC screen handling
and interfacing direct to MSDOS system functions.

Sometimes the extensions include extra features introduced into the language,
usually to cope with some of the problems of memory management on MSDOS based
systems. In the Unix environment such extensions are less common, Unix systems are
normally supplied with a compiler and the extensions appear as extra libraries for
functions such as driving X-Windows displays or network communications.

35
All C programmers ought to be aware of what is and what isn't standard in
their particular environment. The better compiler writers usually make this fairly clear
in their manuals.

It is also often possible to obtain further special purpose application specific


libraries for use with C compilers to provide facilities such as database handling,
graphics, numerical analysis etc.

USES OF C

C has been successfully used for every type of programming problem


imaginable from operating systems to spreadsheets to expert systems - and efficient
compilers are available for machines ranging in power from the Apple Macintosh to
the Cray supercomputers.

C was initially used for system development work, in particular the programs
that make-up the operating system. Why use C? Mainly because it produces code that
runs nearly as fast as code written in assembly language. Some examples of the use of
C might be:

1. Operating Systems
2. Language Compilers
3. Text Editors
4. Language Interpreters
5. Utilities

In recent years C has been used as a general-purpose language because of its


popularity with programmers. It is not the world's easiest language to learn and you
will certainly benefit if you are not learning C as your first programming language! C
is sexy - many well established programmers are switching to C for all sorts of
reasons, but mainly because of the portability that writing standard C programs can
offer.

36
OUTPUTS & REPORTS

MATRIX ADDITION

A B

1 2 3 4 5 6

4 5 6 7 8 9

7 8 9 1 2 3

5 7 9

11 13 15

8 10 12

37
MATRIX SUBTRACTION

1 2 3 4 5 6

4 5 6 7 8 9

7 8 9 1 2 3

-3 -3 -3

-3 -3 -3

6 6 6

38
MATRIX MULTIPLICATION

A B

1 1 1 1 1 1

1 1 1 1 1 1

1 1 1 1 1 1

1 1 1

1 1 1

1 1 1

39
MATRIX TRANSPOSE

1 2 3
4 5 6
1 2 3

Result:- A

1 4 1
2 5 2
3 6 3

40
MATRIX MAXIMUM

1 2 3
4 5 6
1 2 3

Result:-

Matrix Minimum

1 2 3
4 5 6
7 2 3

Result:-

41
Enter rows and column for first matrix: 3
2
Enter rows and column for second matrix: 3
2
Error! column of first matrix not equal to row of second.

Enter rows and column for first matrix: 2


3
Enter rows and column for second matrix: 3
2

Enter elements of matrix 1:


Enter elements a11: 3
Enter elements a12: -2
Enter elements a13: 5
Enter elements a21: 3
Enter elements a22: 0
Enter elements a23: 4

Enter elements of matrix 2:


Enter elements b11: 2
Enter elements b12: 3
Enter elements b21: -9
Enter elements b22: 0
Enter elements b31: 0
Enter elements b32: 4

Output Matrix:
24 29

6 25

42
43
44
45
46
47
48
49
50
51
52
MERITS OF THE PROJECT

The project is identified by the merits of the system offered to the user. The merits
are as follows.

1. This project offer administrator to enter data through simple and interactive
forms. This is very helpful for the client to enter desired information through
so much simplicity.

2. The user is mainly more concerned about the validity of the data, whatever he
is entering. There are checks in every stage of new creation, data entry of
updation. So the user can not enter invalid data, which can cause further
problems.

3. Some time user find the later stages using the project that he need to update
some of information that he entered earlier. These are option for him by which
he can update the records.

4. User is provided the option of monitoring the records entered earlier. He can
see the desired records with the variety of options provided for him.

53
ADVANTAGES OF THE PROJECT

Since matrix is widely used concept in mathematics as well as in computer

data structure. Also it is used in many logic building. So, we have developed a

program that provides ease in the manipulation of matrix. Advantages of project are:

1. The matrix size i.e. the rows and the column of variable size can be inputted

up to the size of five.

2. In the multiplication operation ,the program automatically assigns the column

of first matrix equal to the rows of second matrix which is the essential

condition to multiply two matrices.

3. The program only takes the integer value. If attempt to input some other type

aside from integer is performed then it will not take that value and wait until

an integer value is entered.

4. If the user by mistake input press enter before entering any value then it is

automatically assigned with zero so that program do not take any default

value.

5. The user can see the input and output on the same screen and can verify the

answer.

54
LIMITATIONS OF PROJECT

1. This system will not provide the right results in the event of wrong input data.
2. This system prepared with limited resources and information at our disposal, It
may not last long beyond a certain period.
3. One cannot provide input of matrices greater than five.
4. It does not provide the printable facility to the candidate.
5. The mouse pointer is not implemented.

55
FURTHER SCOPE

The main advantage and future scope would be the fastest execution of this
program due to the reason that of developing in C language.
The program can be further modified so that it can input the matrices of the
size greater than five. Also the mouse can be implemented so as to choose the options
through the mouse.
Graphics can be included so as to make the concept of matrix more clearer.
More operations related to matrix that are widely in use can be also implemented to
increase the application area of this software.

One thing we know that the scope of the project depends upon the need.
Everything whatever is being made or has already been made is just because of need.
When we face a situation in which we require something which is not available with
us, we try to invent that thing. Similar in case with our MATRIX MANIPULATE .
Before the advent of computer we know that each and every task is being performed
under manual system. It is tedious to work in the manual system as than of computer
system. One can handle his work very efficiently, speedily and timely with the help of
computer. If the manual system were continued today then a person would always be
busy with entering, deleting and updating the records.

In short a computerized MATRIX MANIPULATE offers a great deal of


comfort. Everything is revolving around the keys of keyboard with in the second. No
need to maintain heavy registers. There is no requirement of keeping big records,
everything is automatic.

Now we can easily say that the future of the project is quite bright in time to
time to come and some new features. Future plan is that we will use the same
database in networking also. And also upgrade the software with more features and
good looks.

56
CONCLUSION

This is the time to know whether the Matrix Manipulate system is working or
not. After completing this project, it is proper workable and it fulfills its
requirements but after completing this project, I think my project is not so big that
it can be implemented in a big companies. Because there is not addition of
complete data of personals. So, this system is preferred where entries of system
are sufficient.

1. Adding multiple user interface feature


2. Function keys for rechecking the data base, for changing the options of users in
between the working.
3. Screen of software needs a lot of improvement.

57
BIBLIOGRAPHY

While making this project, I have referred the following books for getting an idea to

make this project and also for understanding the complete C- language with graphics.

The names of the authors of the books referred by me are as follows:

1. LET US C YASHWANT KINETKAR

2. POINTERS IN C YASHWANT KINETKAR

3. PROGRAMMING IN C BPB PUBLICATIONS

58
REFERENCES

S. No. Book Name Author Name


1 Let us C Yashwant Kanethar
2 Data Structure in C Robert L. Kruse

Bruce P. Leung

Clovis L. Tondo

S.No. Websites
1 www.wikipedia.com
2 www.scribd.com
3 www.neetproject.com

59

You might also like