0% found this document useful (0 votes)
17 views19 pages

ENG-102 2567 LinearEquationsPolynomial

Uploaded by

Tranriss
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)
17 views19 pages

ENG-102 2567 LinearEquationsPolynomial

Uploaded by

Tranriss
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/ 19

Week 10.

Linear Equations and Polynomial


ENG-102 Computer Programming for Engineer
Semester 1/2567

Lecturer : Prawet Ueatrongchit


Email : [email protected]
Phone Number & Line ID : 081-936-9340
Desk : C304
• Linear Algebraic Equation : It occurs in various engineering applications for
instance.
• Linear 3x1 − 4x2 = 7
Equation 2x1 + 9x2 = 5

Linear Equation

2 9 x1 5 x1 5 2 9 x1 2 9 5
= = / = \
3 −4 x2 7 x2 7 3 −4 x2 3 −4 7
Matrix notation Solving Solving
𝐀𝐱 = 𝐛 𝐱 = 𝐀/𝐛 𝐱 = 𝐀\𝐛
Size : 2x2 * 2x1 = 2x1 Size : 2x1 / 2x2 = 2x2 Size : 2x2 \ 2x1 = 2x1

The size of matrix notation corresponds to a number


of variable appearing in the set of linear equations 2
• Solving : The method of previously mentioned equation can be done in 2
different manners in MATLAB Programming.
• Linear
Equation 1. Using the left-division
>> A = [2,9;3,-4];
x1 2 9 5 >> b = [5;7];
= \
x2 3 −4 7 >> x = A\b;

2. Using matrix inversion


−1 >> x = A^-1 * b;
x1 2 9 5
= ∗ or
x2 3 −4 7 >> x = inv(A) * b;

** The property of a matrix inverse is determined from determinant value.


The determinant can be calculated from a square matrix
If det <= 0, the matrix IS NOT invertible.
3
• Example : 2 method for solving equation in MATLAB Programming.
>> A = [2 9 3; 3 -1 10; 0 2 -9];
• Linear >> b = [5;-7;9];
Equation >> x = A\b >> if det(A) > 0 >> if det(A) > 0
x = A^-1 * b , end x = inv(A) * b , end
x =
0.7238 x = x =
0.6778 0.7238 0.7238
-0.8494 0.6778 0.6778
-0.8494 -0.8494

>> A = [0 0 0; 0 0 0; 0 0 0];

>> x = A\b >> x = A^-1 * b >> x = inv(A) * b


Warning: Matrix is singular to working precision.
x = x = x =
Inf NaN NaN
NaN NaN NaN
NaN NaN NaN

Inf : Infinity NaN : Not-a-Number 4


• Polynomial : we will focus on polynomial on MATLAB

• Linear
Equation A polynomial is a mathematical
expression consisting of variables,
• Polynomial co-efficients, and the operations of
Analysis addition, subtraction, multiplication,
and non-negative integer exponents.

MATLAB represents a polynomial by row of its coefficients as following to


example
2x2 + 3y + 2 7x3 – x2 + 5x – 1 6x2 – 3

>> p = [2 3 2]; >> p = [7 -1 5 -1]; >> p = [6 0 -3];

5
• Polynomial (Root) : You can used roots() for convert to polynomial roots
and poly() for convert to polynomial.
• Linear
Equation Roots function results value of polynomial when equation equals to 0.
• Polynomial
a(x) : ( x2 + 3x = 0 )  ( x2 + 3x + 0 )
Analysis
>> a = [1,3,0];
>> r = roots(a)
x2 + 3x = 0
r =
0 02 + 3*0 = 0
-3 -32 + 3*-3 = 0

>> p = poly(r)
p =
1 3 0
6
• Polynomial Evaluation : A step of evaluation is simply substituting x value
and computing a result with function : polyval(p,x)
• Linear
Equation y = x2 + 2x + 1  p = [ 1 2 1 ]
• Polynomial
Analysis
>> polyval(p,0)
32 + 2*3 + 1
ans = = 16
1
02 + 2*0 + 1 = 1

>> x = [1,2,3,4];
>> y = polyval(p,x);
>> plot(x,y,'O')
>> axis([0 5 0 30])
x

7
• Example : Assume that the following polynomial represents the altitude (h(t))
in meters during the first 48 hours following the launch of a balloon:
• Linear
Equation h(t) = -0.12t4 + 12t3 – 380t2 + 4100t + 220
• Polynomial
Analysis where the units of t are hours. The corresponding polynomial model for the
velocity (v(t)) in meters per hour of the balloon is the following:

v(t) = -0.48t3 + 36t2 – 760t + 4100

Generate plots of the altitude and the velocity for this balloon using units of
meters and meters/sec. Also determine and print the peak altitude and its
corresponding time.

8
• Example : Scrip Code (data)
%-------------------------------------------------------
• Linear % This program generates altitude and velocity plots
% using polynomial models for the altitude and velocity
% of a balloon.
Equation % ------------------------------------------------------
• Polynomial clear, clf, clc;

Analysis t = 0:0.1:48;
sph = 60 * 60; % sec per hour

alt_coef = [-0.12 12 -380 4100 220];


vel_coef = [-0.48 36 -760 4100];

alt = polyval(alt_coef, t);


vel = polyval(vel_coef, t) / sph;

[peak_alt,time] = findpeaks(alt);
max_alt = max(peak_alt);
max_time = t(find(alt == max_alt));

9
• Example : Scrip Code (Plot)
subplot(211), plot(t,alt,max_time,max_alt,'o')
• Linear title('Balloon Altitude')
Equation xlabel('t,hours')
ylabel('meters')
• Polynomial
Analysis Msg1 = ['Max Altitude: ',num2str(max_alt,'%.2f')];
text(25,16000,Msg1,'HorizontalAlignment','center')

Msg2 = ['at Time: ',num2str(max_time)];


text(25,14000,Msg2,'HorizontalAlignment','center')

subplot(212), plot(t,vel);
title('Balloon Velocity')
xlabel('t,hours')
ylabel('m/s')
grid

10
• Example : Result (Figure)

• Linear
Equation
• Polynomial
Analysis

11
• Curve Fitting : The process of constructing a curve or mathematical function
that best fits the data.
• Linear
Equation pN = polyfit(x,y,N)

• Polynomial
− Fits a polynomial of degree N to data described
Analysis by the vector x and y, where x is the independent
variable.
− x and y are vectors of the same size.
− pN is a row vector of length N+1 that contains
the coefficients of the optimal polynomial in
order of descending powers.

y = x2

12
• Curve Fitting :

• Linear h(t) = -0.12t4 + 12t3 – 380t2 + 4100t + 220


degree = 4
order = 5
Equation
• Polynomial >> x = 0:0.1:48;

Analysis >> p = [-0.12 12 -380 4100 220];


>> y = polyval(p,x);
>> yN = polyfit(x,y,length(p)-1)
yN =
1.0e+03 *
-0.0001 0.0120 -0.3800 4.1000 0.2200

13
• Example : Find and plot the first-degree and second-degree polynomials for
the following data:
• Linear x
-1
y
0
Equation x = [-1 0 2] and y = [0 -1 3] 0 -1

• Polynomial >> x = [-1 0 2];


2 3

Analysis >> y = [0 -1 3];


>> p1 = polyfit(x,y,1) % first order polynomial (linear)
p1 =
1.1429 0.2857

>> p2 = polyfit(x,y,2) % second order polynomial


p2 =
1.0000 -0.0000 -1.0000

>> p3 = polyfit(x,y,3) % third order polynomial


Warning: Polynomial is not unique; degree >= number of data points.
p3 =
0.0000 1.0000 0.0000 -1.0000 14
• Example : Plotting

• Linear >> plot(x,y,'o','MarkerSize', 20), hold on;

Equation >> xp = -2:3/100:3;

• Polynomial >> y1 = polyval(p1,xp);


>> y2 = polyval(p2,xp);
Analysis >> plot(xp,y1,'g');
x y
-1 0
>> plot(xp,y2,'r-.');
0 -1
>> xp = -2:3/10:3; 2 3
>> y3 = polyval(p3,xp);
>> plot(xp,y3,'k.');

NOTE: The first-degree polynomial (p1) is 1.1429x + 0.2857


and the second-degree polynomial (p2) is x2 – 1
15
• Polynomial Arithmetic (Addition and Subtraction) : You can be used normal
add(+) and minus (-)
• Linear
Equation u(x) + v(x)

• Polynomial ( x4 – 3x2 – x + 24 ) + ( 4x3 – 2x2 + 5x – 16 )


Analysis
>> u = [1,0,-3,-1,24];
>> v = [0,4,-2,5,-16];
>> u + v
ans =
1 4 -5 4 8

>> u - v
ans =
1 -4 -1 -6 40

16
• Polynomial Arithmetic (Multiplication) : You can be use function convolution :
conv(u,v)
• Linear
Equation u(x) * v(x)

• Polynomial ( x4 – 3x2 – x + 24 ) * ( 4x3 – 2x2 + 5x – 16 )


Analysis
>> u = [1,0,-3,-1,24];
>> v = [0,4,-2,5,-16];
>> conv(u,v)
ans =
0 4 -2 -7 -14 83 -5 136 -384

>> conv(u,[4,-2,5,-16])
ans =
4 -2 -7 -14 83 -5 136 -384

The length of result coefficient vector is length(a) + length(b) - 1 17


• Polynomial Arithmetic (Division) : You can be used function convolution :
[q,r] = deconv(u,v)
• Linear
Equation u(x) / v(x)

• Polynomial ( x4 – 3x2 – x + 24 ) / ( 4x3 – 2x2 + 5x – 16 )


Analysis
>> u = [1,0,-3,-1,24];
>> v = [0,4,-2,5,-16];
>> [q,r] = deconv(u,v)
q =
0.2500 0.1250 % ( 0.25x + 0.125 )

r =
0 0 -4.0000 2.3750 26.0000

q : Quotient of coefficient vector


r : Remainder of coefficient vector
18
• Polynomial Arithmetic (Division vs Multiplication) :

• Linear
Equation u(x) * v(x)

• Polynomial ( x4 – 3x2 – x + 24 ) * ( 4x3 – 2x2 + 5x – 16 )


Analysis
>> u = [1,0,-3,-1,24];
>> v = [4,-2,5,-16];
>> c = conv(u,v); % size 1x8
>> [q,r] = deconv(c,v)
q =
1 0 -3 -1 24
r =
0 0 0 0 0 0 0 0

c = u * v  q = u = c / v , r = [0 ...] % 1x8
19

You might also like