Difference between revisions of "Linear Systems in Matlab"
m |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Matlab]] | [[Category:Matlab]] | ||
+ | |||
== Solving Linear Systems of Equations in MATLAB == | == Solving Linear Systems of Equations in MATLAB == | ||
− | <math>[A](x)=(b)</math> | + | This section discusses how to solve a set of linear equations <math>[A](x)=(b)</math> in MATLAB. |
+ | See the discussion of [[Linear_Algebra|linear algebra]] for help on writing a linear system of equations in matrix-vector format. There is also help on [[Matlab_Arrays#Creating Arrays in Matlab|creating matrices and vectors]] in MATLAB. | ||
+ | |||
+ | The simplest way of solving a system of equations in MATLAB is by using the '''\''' operator. Given a matrix '''A''' and a vector '''b''', we may solve the system using the following MATLAB commands: | ||
+ | <source lang="matlab"> | ||
+ | x = A\b; % Solve the linear system Ax=b for x. | ||
+ | </source> | ||
+ | |||
+ | === Example === | ||
+ | |||
+ | Consider the following set of equations: [[image:linsys_example.png|right|350px]] | ||
+ | <center><math> | ||
+ | \begin{cases} | ||
+ | 6y = -5x \\ | ||
+ | y = -3x -5 | ||
+ | \end{cases}. | ||
+ | </math></center> | ||
+ | These can be easily solved by hand to obtain | ||
+ | <math>(x,y) = \left( -\tfrac{30}{13}, \tfrac{25}{13} \right) </math>. These equations and their solution (intersection) are [[:Matlab_Plotting#X-Y_Line_Plots|plotted]] in the figure to the right. | ||
− | + | To solve the system of equations using MATLAB, first [[Linear_Algebra#Linear_Systems_of_Equations|rewrite these in a matrix-vector form]] as | |
+ | <center><math> | ||
+ | \begin{align} | ||
+ | 5x + 6y &= 0 \\ | ||
+ | 3x + 1y &= -5 \\ | ||
+ | \end{align} | ||
+ | \quad \Leftrightarrow \quad | ||
+ | \left[ \begin{array}{cc} 5 & 6 \\ 3 & 1 \end{array} \right] | ||
+ | \left( \begin{array}{c} x \\ y \end{array} \right) = | ||
+ | \left( \begin{array}{c} 0 \\ -5 \end{array} \right) . | ||
+ | </math></center> | ||
+ | Once in matrix-vector form, the solution is obtained in MATLAB by using the following commands (see [[Matlab_Arrays#Creating_Arrays_in_Matlab|here]] for help on creating matrices and vectors): | ||
+ | <source lang="matlab"> | ||
+ | A = [ 5 6; 3 1 ]; % define the matrix | ||
+ | b = [ 0; -5 ]; % define the vector | ||
+ | solution = A\b; % solve the system of equations. | ||
+ | </source> | ||
+ | In this example, <tt>solution</tt> is a column vector whose elements are <tt>x</tt> and <tt>y</tt>: | ||
+ | <center><math> | ||
+ | \mathrm{solution} = \left[ \begin{smallmatrix}-2.3077 \\1.9231 \end{smallmatrix} \right], | ||
+ | </math></center> | ||
+ | which is consistent with the answer we obtained by hand above. | ||
− | |||
− | |||
− | === | + | ==== Matrix Inverse ==== |
− | == | + | Note that we can also form the inverse of a matrix, |
+ | <center><math> | ||
+ | [A] (x)=(b) \quad \Leftrightarrow \quad (x)=[A]^{-1}(b). | ||
+ | </math></center> | ||
+ | This can be done in MATLAB as illustrated by the following: | ||
+ | <source lang="matlab"> | ||
+ | A = [ 5 6; 3 1 ]; | ||
+ | b = [ 0; -5 ]; | ||
+ | Ainv = A^-1; % calculate the inverse of A | ||
+ | solution = Ainv*b; % calculate the solution | ||
+ | </source> | ||
+ | We could also calculate A<sup>-1</sup> by | ||
+ | <source lang="matlab"> | ||
+ | Ainv = inv(A); % entirely equivalent to A^-1. | ||
+ | </source> | ||
+ | |||
+ | === Sparse Systems === | ||
+ | {{Stub|section}} | ||
== Linear Systems using the Symbolic Toolbox == | == Linear Systems using the Symbolic Toolbox == | ||
Occasionally we may want to find the symbolic (general) solution to a system of equations rather than a specific numerical solution. The symbolic toolbox provides a way to do this. | Occasionally we may want to find the symbolic (general) solution to a system of equations rather than a specific numerical solution. The symbolic toolbox provides a way to do this. | ||
+ | |||
+ | {{Stub|section}} |
Latest revision as of 08:14, 26 August 2009
Contents
Solving Linear Systems of Equations in MATLAB
This section discusses how to solve a set of linear equations in MATLAB. See the discussion of linear algebra for help on writing a linear system of equations in matrix-vector format. There is also help on creating matrices and vectors in MATLAB.
The simplest way of solving a system of equations in MATLAB is by using the \ operator. Given a matrix A and a vector b, we may solve the system using the following MATLAB commands:
x = A\b; % Solve the linear system Ax=b for x.
Example
Consider the following set of equations:These can be easily solved by hand to obtain . These equations and their solution (intersection) are plotted in the figure to the right.
To solve the system of equations using MATLAB, first rewrite these in a matrix-vector form as
Once in matrix-vector form, the solution is obtained in MATLAB by using the following commands (see here for help on creating matrices and vectors):
A = [ 5 6; 3 1 ]; % define the matrix
b = [ 0; -5 ]; % define the vector
solution = A\b; % solve the system of equations.
In this example, solution is a column vector whose elements are x and y:
which is consistent with the answer we obtained by hand above.
Matrix Inverse
Note that we can also form the inverse of a matrix,
This can be done in MATLAB as illustrated by the following:
A = [ 5 6; 3 1 ];
b = [ 0; -5 ];
Ainv = A^-1; % calculate the inverse of A
solution = Ainv*b; % calculate the solution
We could also calculate A-1 by
Ainv = inv(A); % entirely equivalent to A^-1.
Sparse Systems
|
Linear Systems using the Symbolic Toolbox
Occasionally we may want to find the symbolic (general) solution to a system of equations rather than a specific numerical solution. The symbolic toolbox provides a way to do this.
|