### Introduction to Regular Expressions

^{1}

• A regular expression, also called a pattern, is an expression used to specify a set of strings required for a particular purpose.

• Check this: https://regexone.com.

1See https://en.wikipedia.org/wiki/Regular_expression; also https://www.mathworks.com/help/matlab/matlab_prog/

regular-expressions.html.

Zheng-Liang Lu 202

### Example

1 >> text = 'bat cat can car coat court CUT ct ...

CAT-scan';

2 >> pattern = 'c[aeiou]+t';

3 >> start idx = regexp(text, pattern)

4

5 start idx =

6

7 5 17

• The pattern ’c[aeiou]+t’ indicates a set of strings:

• c must be the first character;

• c must be followed by one of the characters in the brackets [aeiou], followed by t as the last character;

• in particular, [aeiou] must occur one or more times, as indicated by the + operator.

Zheng-Liang Lu 203

### Metacharacters

^{2}

Operator Definition

| Boolean OR.

* 0 or more times consecutively.

? 0 times or 1 time.

+ 1 or more times consecutively.

{n} exactly n times consecutively.

{m, } at least m times consecutively.

{, n} at most n times consecutively.

{m, n} at least m times, but no more than n times consecutively.

2See https://www.mathworks.com/help/matlab/ref/regexp.html.

Zheng-Liang Lu 204

Operator Definition

. any single character, including white space.

[c1c2c3] any character contained within the brackets.

[∧c_{1}c_{2}c_{3}] any character not contained within the brackets.

[c_{1}-c_{2}] any character in the range of c_{1} through c_{2}.

\s any white-space character.

\w a word; any alphabetic, numeric, or underscore character.

\W not a word.

\d any numeric digit; equivalent to [0-9].

\D no numeric digit; equivalent to [∧0-9].

Zheng-Liang Lu 205

### Output Keywords

Keyword Output

’start’ starting indices of all matches, by default

’end’ ending indices of all matches

’match’ text of each substring that matches the pattern

’tokens’ text of each captured token

’split’ text of nonmatching substrings

’names’ name and text of each named token

Zheng-Liang Lu 206

### Examples

1 clear; clc;

2

3 text1 = {'Madrid, Spain', 'Romeo and Juliet', ...

'MATLAB is great'};

4 tokens = regexp(text1, '\s', 'split')

5

6 text2 = 'EXTRA! The regexp function helps you ...

relax.';

7 matches = regexp(text2, '\w*x\w*', 'match')

Zheng-Liang Lu 207

### Exercise: Listing Filtered Files

1 clear; clc;

2

3 file list = dir;

4 filenames = {file list(:).name};

5 A = regexp(filenames, '.+\.m', 'match');

6 mask = cellfun(@(x) ~isempty(x), A);

7 cellfun(@(f) fprintf('%s\\%s\n', pwd, f{:}), A(mask))

Zheng-Liang Lu 208

### Example: By Names

• You can associate names with tokens so that they are more easily identifiable.

• For example,

1 >> str = 'Here is a date: 01-Apr-2020';

2 >> expr = '(?<day>\d+)-(?<month>\w+)-(?<year>\d+)';

3 >> mydate = regexp(str, expr, 'names')

4

5 mydate =

6

7 day: '01'

8 month: 'Apr'

9 year: '2020'

Zheng-Liang Lu 209

### Exercise: Web Crawler

• Write a script which collects the names of html tags by defining a token within a regular expression.

• For example,

1 >> str = '<title>My Title</title><p>Here is some ...

text.</p>';

2 >> pattern = '<(\w+).*>.*</\1>';

3 >> [tokens, matches] = regexp(str, pattern, ...

'tokens', 'match')

Zheng-Liang Lu 210

### More Regexp Functions

• See regexpi, regexprep, and regexptranslate.

Zheng-Liang Lu 211

1 >> Lecture 6

2 >>

3 >> -- Special Topic: File Operations & other I/O

4 >>

Zheng-Liang Lu 212

### Spreadsheets: Excel/CSV Files (Revisited)

• The command xlsread(filename) reads excel files, for example,

1 [~, ~, raw] = xlsread("2330.xlsx");

• By default, it returns a numeric matrix.

• The text part is the 2nd output, separated from the numeric part.

• You may consider the whole spreadsheet by using the 3rd output (stored in a cell array).

• Note that you can use ∼ to drop the output value.

Zheng-Liang Lu 213

### More Tips for Excel Files

• You can specify the range.

• For example, the string argument"B:B"is used to import column B.

• If you need a single value, say the cell B1, just use"B1:B1".^{3}

• You could specify the worksheet by the sheet name^{4} or the
sheet number.

• You could refer to the document for more details.^{5}

3Contribution by Mr. Tsung-Yu Hsieh (MAT24409) on August 27, 2014.

4The default sheet name is “工作表”.

5See https://www.mathworks.com/help/matlab/ref/xlsread.html.

Zheng-Liang Lu 214

### Mat Files

^{6}

• Recall that I/O is costly.

• To save time, you may consider save matrices to the disk; for example,

1 data1 = rand(1, 10);

2 data2 = ones(10);

3 save('trial.mat', 'data1', 'data2');

• You can use load to fetch the data from mat files.

1 load('trial.mat');

6See https://www.mathworks.com/help/matlab/ref/save.html.

Zheng-Liang Lu 215

### Selected Read/Write Functions

• For text data, see https:

//www.mathworks.com/help/matlab/text-files.html.

• Try dlmread, dlmwrite, csvread, csvwrite, textread/textscan.

• For images, see https://www.mathworks.com/help/

matlab/images_images.html.

• For video and audio, see https://www.mathworks.com/

help/matlab/audio-and-video.html.

Zheng-Liang Lu 216

### Selected File Operations

^{7}

cd Change current folder.

pwd Identify current folder.

ls List folder contents by chars.

dir List folder contents by structures.

exist Check existence of variable, script, function, folder, or class.

mkdir Make new folder.

visdiff Compare two files or folders.

7See

https://www.mathworks.com/help/matlab/file-operations.html.

Zheng-Liang Lu 217

### Example: Pooling Data from Multiple Files

^{8}

1 clear; clc;

2

3 cd('./stocks'); % enter the folder

4 files = dir; % get all files in the current folder

5 files = files(3 : end); % drop the first two

6 names = {files(:).name}; % get all file names

7 filter = endsWith(names, '.xlsx'); % filter by .xlsx

8 names = names(filter);

9

10 pool = cell(length(names), 2);

11 for i = 1 : length(names)

12 [~, ~, raw] = xlsread(names{i});

13 pool(i, :) = {names{i}(1 : 4), raw};

14 end

15 save('data pool', 'pool');

8Downloadstocks.zip.

Zheng-Liang Lu 218

1 >> Lecture 7

2 >>

3 >> -- Matrix Computation

4 >>

Zheng-Liang Lu 219

### Vectors

• Let R be the set of all real numbers.

• R^{n} denotes the vector space of all m-by-1 column vectors:

u = (u_{i}) =

u1

...
u_{m}

. (1)

• You can simply use the colon (:) operator to reshape any array in a column major, say u(:).

• Similarly, the row vector v is
v = (v_{i}) =

v1· · · v_{n} . (2)

• We consider column vectors unless stated.

Zheng-Liang Lu 220

### Matrices

• Mm×n(R) denotes the vector space of all m-by-n real matrices, for example,

A = (aij) =

a_{11} · · · a_{1n}
... . .. ...
a_{m1} · · · a_{mn}

.

• Complex vectors/matrices^{9} follow similar definitions and
operations introduced later, simply with some care.

9Matlab treats a complex number as a single value.

Zheng-Liang Lu 221

### Transposition

1 >> A = [1 i];

2 >> A' % Hermitian operator; see any textbook for ...

linear algebra

3

4 ans =

5

6 1.0000 + 0.0000i

7 0.0000 - 1.0000i

8

9 >> A.' % transposition of A

10

11 ans =

12

13 1.0000 + 0.0000i

14 0.0000 + 1.0000i

Zheng-Liang Lu 222

### Arithmetic Operations

• Let aij and bij be the elements of the matrices A and
B ∈ M^{m×n}(R) for 1 ≤ i ≤ m and 1 ≤ j ≤ n.

• Then C = A ± B can be calculated by cij = aij ± b_{ij}. (Try.)

Zheng-Liang Lu 223

### Inner Product

^{10}

• Let u, v ∈ R^{m}.

• Then the inner product, denoted by u · v , is calculated by

u · v = u^{0}v = [u1· · · u_{m}]

v1

...
v_{m}

.

1 clear; clc;

2

3 u = [1; 2; 3];

4 v = [4; 5; 6];

5 u' * v % normal way; orientation is important

6 dot(u, v) % using the built-in function

10Akaa dot product and scalar product.

Zheng-Liang Lu 224

• Inner product is also calledprojection for emphasizing its geometric significance.

• Recall that we know

u · v = 0

if and only if these two are orthogonal to each other, denoted by

u ⊥ v .

Zheng-Liang Lu 225

### Generalization of Inner Product

• Let x ∈ R, f (x) and g (x) be real-valued functions.

• In particular, assume that g (x ) is a basis function.^{11}

• Then we can define the inner product of f and g on [a, b] by

hf , g i = Z b

a

f (x )g (x )dx .

11See https://en.wikipedia.org/wiki/Basis_function, https://en.wikipedia.org/wiki/Eigenfunction, and https://en.wikipedia.org/wiki/Approximation_theory.

Zheng-Liang Lu 226

• For example,Fourier transformis widely used in engineering and science.

• Fourier integral^{12} is defined as

F (ω) = Z ∞

−∞

f (t)e^{−i ωt}dt

where f (t) is a square-integrable function.

• The Fast Fourier transform (FFT) algorithm computes the
discrete Fourier transform (DFT) in O(n log n) time.^{13,14}

12See https://en.wikipedia.org/wiki/Fourier_transform.

13Cooley and Tukey (1965).

14See https://en.wikipedia.org/wiki/Fast_Fourier_transform.

Zheng-Liang Lu 227

### Matrix Multiplication

• Let A ∈ M_{m×q}(R) and B ∈ Mq×n(R).

• Then C = AB is given by

c_{ij} =

q

X

k=1

a_{ik}× b_{kj}. (3)

• For example,

Zheng-Liang Lu 228

### Example

1 clear; clc;

2

3 A = randi(10, 5, 4); % 5-by-4

4 B = randi(10, 4, 3); % 4-by-3

5 C = zeros(size(A, 1), size(B, 2));

6 for i = 1 : size(A, 1)

7 for j = 1 : size(B, 2)

8 for k = 1 : size(A, 2)

9 C(i, j) = C(i, j) + A(i, k) * B(k, j);

10 end

11 end

12 end

13 C % display C

• Time complexity: O(n^{3}).

• Strassen (1969): O(n^{log}^{2}^{7}).

Zheng-Liang Lu 229

### Matrix Exponentiation

• Raising a matrix to a power is equivalent to repeatedly multiplying the matrix by itself.

• For example, A^{2}= AA.

• The matrix exponential^{15}is a matrix function on square
matrices analogous to the ordinary exponential function, more
explicitly,

e^{A}=

∞

X

n=0

A^{n}
n!.

• However, it is not allowedto perform A^{B}.

15Seematrix exponentialsandPauli matrices.

Zheng-Liang Lu 230

### Determinants

• Consider the matrix

A =a b c d

.

• Then det(A) = ad − bc is called the determinant of A.

• The method of determinant calculation in high school is a wrong way but produces correct answers for all 3 × 3 matrices.

• Let’s try the minor expansion formula for det(A).^{16}

16See http://en.wikipedia.org/wiki/Determinant.

Zheng-Liang Lu 231

### Recursive Algorithm for Minor Expansion Formula

1 function y = myDet(A)

2

3 [r, ~] = size(A);

4

5 if r == 1

6 y = A;

7 elseif r == 2

8 y = A(1, 1) * A(2, 2) - A(1, 2) * A(2, 1);

9 else

10 y = 0;

11 for i = 1 : r

12 B = A(2 : r, [1 : i - 1, i + 1 : r]);

13 cofactor = (-1) ˆ (i + 1) * myDet(B);

14 y = y + A(1, i) * cofactor;

15 end

16 end

17 end

Zheng-Liang Lu 232

• It needs n! terms in the sum of products, so this algorithm runs in O(n!) time!

• Use det for determinants, which can be done in O(n^{3}) time
by using LU decomposition or alike.^{17}

17See https://en.wikipedia.org/wiki/LU_decomposition. Moreover, various decompositions are used to implement efficient matrix algorithms in numerical analysis. See

https://en.wikipedia.org/wiki/Matrix_decomposition.

Zheng-Liang Lu 233

### Linear Systems (Transformation/Mapping)

^{18}

• A linear system is a mathematical model of a system based on linear operators satisfying the property of superposition.

• For simplicity, Ax = y for any input x associated with the output y .

• Then A is alinear operatorif and only if

A(ax1+ bx2) = aAx1+ bAx2= ay1+ by2

for a, b ∈ R.

• For example, ^{d (x}^{2}_{dx}^{+3x )} = ^{dx}_{dx}^{2} + 3^{dx}_{dx} = 2x + 3.

• Linear systems typically exhibit features and properties that are much simpler than the nonlinear case.

• What about nonlinear cases?

18See https://en.wikipedia.org/wiki/Linear_system.

Zheng-Liang Lu 234

### First-Order Approximation: Local Linearization

• Let f (x ) be any nonlinear function.

• Assume that f (x ) is infinitely differentiable at x_{0}.

• By Taylor’s expansion^{19}, we have

f (x ) = f (x_{0}) + f^{0}(x_{0})(x − x_{0}) + O (x − x_{0})^{2} ,
where O (x − x0)^{2} is the collection of higher-order terms,
which can be neglected as x − x_{0} → 0.

• Then we have a first-order approximation
f (x ) ≈ f^{0}(x0)x + k,
with k = f (x_{0}) − x_{0}f^{0}(x_{0}), a constant.

19See https://en.wikipedia.org/wiki/Taylor_series.

Zheng-Liang Lu 235

### Two Observations

• We barely feel like the curvature of the ground; however, we look at Earth on the moon and agree that Earth is a sphere.

• Newton’s kinetic energy is a low-speed approximation (classical limit) to Einstein’s total energy.

• Let m be the rest mass and v be the velocity relative to the inertial coordinate.

• The resulting total energy is

E = mc^{2}

p1 − (v/c)^{2}.

• By applying the first-order approximation,

E ≈ mc^{2}+1
2mv^{2}.

Zheng-Liang Lu 236

### Example: Kirchhoff’s Laws

^{20}

• The algebraic sum of currents in a network of conductors meeting at a point is zero.

• The directed sum of the potential differences (voltages) around any closed loop is zero.

20See https://en.wikipedia.org/wiki/Kirchhoff’s_circuit_laws.

Zheng-Liang Lu 237

### General Form of Linear Equations

^{21}

• Let n be the number of unknowns and m be the number of constraints.

• A general system of m linear equations with n unknowns is

a_{11}x_{1} +a_{12}x_{2} · · · +a_{1n}x_{n} = y_{1}
a21x1 +a22x2 · · · +a2nxn = y2

... ... . .. ... = ...
a_{m1}x_{1} +a_{m2}x_{2} · · · +a_{mn}x_{n} = y_{m}
where x1, . . . , xn are unknowns, a11, . . . , amn are the
coefficientsof the system, and y1, . . . , ym are theconstant
terms.

21See https://en.wikipedia.org/wiki/System_of_linear_equations.

Zheng-Liang Lu 238

### Matrix Equation

• Hence we can rewrite the aforesaid equations as follows:

Ax = y . where

A =

a11 a12 · · · a1n

a_{21} a_{22} · · · a_{2n}
... ... . .. ...
am1 am2 · · · amn

,

x =

x_{1}

...
x_{n}

, and y =

y_{1}

...
y_{m}

.

• Finally, x can be done by x = A^{−1}y , where A^{−1} is called the
inverse of A.

Zheng-Liang Lu 239

### Inverse Matrices

^{22}

• For simplicity, let A ∈ M_{n×n}(R) and x, y ∈ R^{n}.

• Then A is called invertible if there exists B ∈ Mn×n(R) such that

AB = BA = In,
where I_{n} denotes a n × n identity matrix.

• We use A^{−1} to denote the inverse of A.

• You can use eye(n) to generate an identity matrix In.

• Use inv(A) to calculate the inverse of A.

22See https://en.wikipedia.org/wiki/Invertible_matrix#The_

invertible_matrix_theorem.

Zheng-Liang Lu 240

• However, inv(A) may return a weird result even if A is ill-conditioned, indicates how much the output value of the function can change for a small change in the input

argument.^{23}

• For example, calculate the inverse of the matrix

A =

1 2 3 4 5 6 7 8 9

.

• Recall the Cramer’s rule^{24}: A is invertible iff det(A) 6= 0.

(Try.)

• If these constraints cannot be eliminated by row reduction, they are linearly independent.

23You may refer to thecondition numberof a function with respect to an argument. Also try rcond.

24See https://en.wikipedia.org/wiki/Cramer’s_rule.

Zheng-Liang Lu 241

### Linear Independence

• Let K = {a1, a2, . . . , an} for each a_{i} ∈ R^{m}.

• Now consider this linear superposition

x_{1}a_{1}+ x_{2}a_{2}+ · · · + x_{n}a_{n}= 0,
where x_{1}, x_{2}, . . . , x_{n}∈ R are the weights.

• Then K islinearly independent iff

x1 = x2= · · · = xn= 0.

Zheng-Liang Lu 242

### Example: R

^{3}

• Let

K_{1}=

1 0 0

,

0 1 0

,

0 0 1

.

• It is clear that K_{1} is linearly independent.

• Moreover, you can represent all vectors in R^{3} if you collect all
linear superpositions from K1.

• We call this new set a spanof K_{1}, denoted by Span(K_{1}).^{25}

• Clearly, Span(K_{1}) = R^{3}.

25See https://en.wikipedia.org/wiki/Linear_span.

Zheng-Liang Lu 243

• Now let

K_{2}=

1 0 0

,

0 1 0

,

0 0 1

,

1 2 3

.

• Then K_{2} is not a linearly independent set. (Why?)

• If you takeone or more vectors out of K_{2}, then K_{2} becomes
linearly independent.

Zheng-Liang Lu 244

### Basis of Vector Space & Its Dimension

^{26}

• However, you can take only one vector out of K_{2} if you want
to represent all vectors in R^{3}. (Why?)

• Thedimensionof R^{3} is exactly the size (element number) of
K2.

• We say thatthe basis of R^{n} is a maximally linearly
independent set of size n.

• Note that the basis of R^{3} is not unique.

• For example, K_{1} could be also a basis of R^{3}.

26See https://en.wikipedia.org/wiki/Basis_(linear_algebra), https://en.wikipedia.org/wiki/Vector_space, and

https://en.wikipedia.org/wiki/Dimension_(vector_space).

Zheng-Liang Lu 245

### Linear Transformation (Revisited)

^{27}

27See https://en.wikipedia.org/wiki/Linear_map; also see https://kevinbinz.com/2017/02/20/linear-algebra/.

Zheng-Liang Lu 246

### Example: Vector Projection (R

^{3}

### → R

^{2}

### )

• Let u ∈ R^{3} and v ∈ R^{2}.

• We consider the projection matrix (operator),

A =1 0 0 0 1 0

so that Au = v .

• For example,

1 0 0 0 1 0

1 2 3

=1 2

.

Zheng-Liang Lu 247

### Solution Set to System of Linear Equations

^{28}

• Recall that m is the number of constraints and n is the number of unknowns.

• Now consider the following cases.

• Ifm = n, then there exists a uniquesolution.

• Ifm > n, then it is called an overdetermined system and there is no solution.

• Fortunately, we can find aleast-squares error solutionsuch
that k Ax − y k^{2}is minimal, shown later.

• Ifm < n, then it is called a underdetermined system which hasinfinitely many solutions.

• Become an optimization problem?

• For all cases,

x = A \ y .

28See https://www.mathworks.com/help/matlab/ref/mldivide.html.

Zheng-Liang Lu 248

### Case 1: m = n

• For example,

3x + 2y − z = 1

x − y + 2z = −1

−2x + y − 2z = 0

1 >> A = [3 2 -1; 1 -1 2; -2 1 -2];

2 >> b = [1; -1; 0];

3 >> x = A \ b

4

5 1

6 -2

7 -2

Zheng-Liang Lu 249

### Case 2: m > n

• For example,

2x − y = 2

x − 2y = −2

x + y = 1

1 >> A = [2 -1; 1 -2; 1 1];

2 >> b = [2; -2; 1];

3 >> x = A \ b

4

5 1

6 1

Zheng-Liang Lu 250

### Case 3: m < n

• For example,

x + 2y + 3z = 7

4x + 5y + 6z = 8

1 >> A = [1 2 3; 4 5 6];

2 >> b = [7; 8];

3 >> x = A \ b

4

5 -3

6 0

7 3.333

• Note that this solution is a basic solution, one of infinitely many.

• How to find the directional vector? (Try cross.)

Zheng-Liang Lu 251

### Gaussian Elimination Algorithm

^{29}

• First we consider the linear system is represented as an augmented matrix [ A | y ].

• We then transform A into an upper triangular matrix

[ ¯A | y ] =

1 a¯_{12} · · · a¯_{1n} y¯_{1}
0 1 · · · a¯2n y¯2

... ... . .. ... ...
0 0 · · · 1 y¯_{n}

.

where ¯aij’s and ¯yi’s are the resulting values after elementary row operations.

• This matrix is said to be in reduced row echelon form.

29See https://en.wikipedia.org/wiki/Gaussian_elimination.

Zheng-Liang Lu 252

• The solution can be done by backward substitution:

x_{i} = ¯y_{i} −

n

X

j =i +1

¯
a_{ij}x_{j},

where i = 1, 2, · · · , n.

• Time complexity: O(n^{3}).

Zheng-Liang Lu 253

### Exercise

1 clear; clc;

2

3 A = [3 2 -1; 1 -1 2; -2 1 -2];

4 b = [1; -1; 0];

5 A \ b % check the answer

6

7 for i = 1 : 3

8 for j = i : 3

9 b(j) = b(j) / A(j, i); % why first?

10 A(j, :) = A(j, :) / A(j, i);

11 end

12 for j = i + 1 : 3

13 A(j, :) = A(j, :) - A(i, :);

14 b(j) = b(j) - b(i);

15 end

16 end

17 x = zeros(3, 1);

Zheng-Liang Lu 254

18 for i = 3 : -1 : 1

19 x(i) = b(i);

20 for j = i + 1 : 1 : 3

21 x(i) = x(i) - A(i, j) * x(j);

22 end

23 end

24 x

Zheng-Liang Lu 255

### Selected Functions of Linear Algebra

^{30}

• Matrix properties: norm, null, orth, rank, rref, trace, subspace.

• Matrix factorizations: lu, chol, qr.

30See https://www.mathworks.com/help/matlab/linear-algebra.html.

Zheng-Liang Lu 256

### Numerical Example: 2D Laplace’s Equation

• A partial differential equation (PDE) is a differential equation
that contains unknown multivariable functions and their
partial derivatives.^{31}

• Let Φ(x , y ) be a scalar field on R^{2}.

• Consider Laplace’s equation^{32}as follows:

∇^{2}Φ(x , y ) = 0,

where ∇^{2} = _{∂x}^{∂}^{2}2 +_{∂y}^{∂}^{2}2 is the Laplace operator.

• Consider the system shown in the next page.

31See

https://en.wikipedia.org/wiki/Partial_differential_equation.

32Pierre-Simon Laplace (1749–1827).

Zheng-Liang Lu 257

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

V1 V2 V3 V4 V5

V6 V7 V8 V9 V10

V11 V12 V13 V14 V15

V16 V17 V18 V19 V20

V21 V22 V23 V24 V25

• Consider theboundary condition:

• V1= V2= · · · = V4= 0.

• V21= V22= · · · = V24= 0.

• V1= V6= · · · = V16= 0.

• V5= V10= · · · = V25= 1.

Zheng-Liang Lu 258

### An Simple Approximation

^{33}

• As you can see, we partition the region into many subregions by applying a proper mesh generation.

• Then Φ(x , y ) can be approximated by

Φ(x , y ) ≈ Φ(x + h, y ) + Φ(x − h, y ) + Φ(x , y + h) + Φ(x , y − h)

4 ,

where h is small enough.

33See

https://en.wikipedia.org/wiki/Finite_difference_method#Example:

_The_Laplace_operator.

Zheng-Liang Lu 259

### Matrix Formation

• By collecting all constraints, we have Ax = b where

A =

4 −1 0 −1 0 0 0 0 0

−1 4 −1 0 −1 0 0 0 0

0 −1 4 0 0 −1 0 0 0

−1 0 0 4 −1 0 −1 0 0

0 −1 0 −1 4 −1 0 −1 0

0 0 −1 0 −1 4 −1 0 −1

0 0 0 −1 0 0 4 −1 0

0 0 0 0 −1 0 −1 4 −1

0 0 0 0 0 −1 0 −1 4

and

b =

0 0 1 0 0 1 0 0 1 T

.

Zheng-Liang Lu 260

### Dimension Reduction by Symmetry

• As you can see, V_{7}= V_{17}, V_{8} = V_{18} and V_{9} = V_{19}.

• So we can reduce A to A^{0}

A^{0} =

4 −1 0 −1 0 0

−1 4 −1 0 −1 0

0 −1 4 0 0 −1

−2 0 0 4 −1 0

0 −2 0 −1 4 −1

0 0 −2 0 −1 4

and

b^{0}=

0 0 1 0 0 1 T

.

• The dimensions of this problem are cut to 6 from 9.

• This trick helps to alleviate the curse of dimensionality.^{34}

34See https://en.wikipedia.org/wiki/Curse_of_dimensionality.

Zheng-Liang Lu 261

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

V1 V2 V3 V4 V5

V6 V7 V8 V9 V10

V11 V12 V13 V14 V15

V16 V17 V18 V19 V20

V21 V22 V23 V24 V25

0.0000 0.0000 0.0000 0.0000 1.0000

0.0000 0.0714 0.1875 0.4286 1.0000

0.0000 0.0982 0.2500 0.5268 1.0000

0.0000 0.0714 0.1875 0.4286 1.0000

0.0000 0.0000 0.0000 0.0000 1.0000

Zheng-Liang Lu 262

### Remarks

• This is a toy example for numerical methods of PDEs.

• We can use the PDE toolbox for this case. (Try.)

• You may consider thefinite element method(FEM).^{35}

• The mesh generation is also crucial for numerical methods.^{36}

• You can use the Computational Geometry toolbox for
triangular mesh.^{37}

35See https://en.wikipedia.org/wiki/Finite_element_method.

36See https://en.wikipedia.org/wiki/Mesh_generation.

37See https:

//www.mathworks.com/help/matlab/computational-geometry.html.

Zheng-Liang Lu 263