Tải bản đầy đủ (.pdf) (16 trang)

Mat lab co ban cho người bắt đầu học giải tích số

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (597.13 KB, 16 trang )

CALCULUS FOR COMPUTING
(GIẢI TÍCH ỨNG DỤNG CHO CÔNG NGHỆ THÔNG TIN)
LAB 01: INTRODUCTION, FUNCTION, LIMIT AND CONTINUITY
I. INTRODUCTION (Giới thiệu)
Giải tích là một trong những công cụ hữu dụng nhất trong công nghệ thông tin. Nó được sử dụng
trong xử lý tín hiệu số, trong bài toán tối ưu hóa…từ đó ứng dụng trong các bài toán của trí tuệ
nhân tạo, học máy, xử lý âm thanh, thị giác máy tính…
II. FUNCTION (Hàm)
2.1. Function define (định nghĩa hàm)
Hàm là tập hợp các lệnh thực thi một công việc cụ thể và được gán định danh. Hàm có thể nhận
không hoặc nhiều giá trị (được gọi là tham số đầu vào ) và trả về không hoặc nhiều giá trị (giá
trị trả về)
Biểu diễn hàm số trong matlab:


⌋ = myfun(

)

Commands
End
• myfun - tên hàm; quy ước đặt tên hàm giống với quy ước đặt tên biến



- tham số đầu vào
- giá trị trả về

• commands - các lệnh thực thi
Định nghĩa hàm phải được lưu trong file có tên trùng với tên hàm và đuôi .m (myfun.m). Để tạo
file chọn New -> Function trên thanh công cụ.


Ví dụ 1: MatLab Program to Calculate the Sum, Multiplication, Division and
Subtraction of Two Numbers
%file SumSubMultiDivi.m
function [ sum,subtraction,multi,division ] = SumSubMultiDivi(a,b)
sum=a+b;
subtraction=a-b;
multi=a*b;
division=a/b;
end
Gọi hàm trong cửa sổ lệnh:


>> [ sum,subtraction,multi,division ] = SumSubMultiDivi(3,6)
sum =
9
subtraction =
-3
multi =
18
division =
0.5000
2.2 Các hàm sơ cấp cơ bản: đa thức, lượng giác, mũ và logarithm ( Basic Elementary
Functions: polynomial, trigonometric, exponents and logarithm)
2.2.1. Đa thức (Polynomial )
- Định nghĩa: Hàm P được gọi là đa thức nếu:
( )
Trong đó n

và các hằng số ai


là các hệ số của P. Nếu an ≠ 0 thì bậc của

đa thức là n.
-

Đa thức trên có thể viết ngắn gọn:
( )

-



Các đa thức trong Matlab được mô tả bằng các vectơ dòng với các phần tử của vectơ
chính là các hệ số của đa thức, xếp theo thứ tự số mũ giảm dần.
Ví dụ 1: cho đa thức P = x4 –x3 +4x2 -5x-1 được biểu diễn là:
>>P = [1 -1 4 -5 -1]
P=
1

-

-1

4

-5

-1

Để xác định giá trị của đa thức P tại x, ta dùng hàm polyval(P,x).

Ví dụ 2: Xác định giá trị của đa thức P tại điểm x=2:
>>polyval(P,2)


ans =
13
-

Để xác định nghiệm của đa thức P, ta dùng hàm roots(P).
>> r = roots(P)
r=
-0.0672 + 2.0919i
-0.0672 - 2.0919i
1.3088 + 0.0000i
-0.1744 + 0.0000i

Ví dụ 3: cho đa thức P = x2 -1

>> P= [1 0 -1]
P=
1

0

-1

>> roots(P)
ans =
-1
1

Chú ý: đa thức bậc n được biểu diễn bằng vector có kích thước n+1 và có n nghiệm
(kể cả nghiệm phức)
-

Ngược lại với hàm roots() ta có hàm poly() dùng để tìm lại các hệ số của đa thức từ các
nghiệm của đa thức đó.
Ví dụ 4: Từ các nghiệm của đa thức ở trên ta có thể xây dựng lại đa thức bằng cách dung
hàm poly() để tìm lại các hệ số của đa thức đó:
>> p= poly(r)
p=
1.0000 -1.0000

4.0000 -5.0000 -1.0000

Vậy đa thức đã cho là: x4 –x3 +4x2 -5x-1


-

Cho hai đa thức f, g lần lượt được biểu diễn bởi a và b. Ta sẽ có các hàm sau:
conv(a,b) nhân hai đa thức
deconv(a,b) chia hai đa thức
a + b tổng hai đa thức
a – b hiệu hai đa thức
Note: khi cộng và trừ các đa thức phải có cùng kích thước
Ví dụ 5: Cho hai đa thức a = x3 + 2x2 + 3x + 4 và b = 5x3 + 6x2 + 7x + 8. Hãy tính:

-

Tích hai đa thức


-

Thương hai đa thức

-

Tổng hai đa thức

-

Hiệu hai đa thức
>> a = [1 2 3 4];
>> b= [5 6 7 8 ];
>> Tich=conv(a,b)
Tich =
5

16

34

60

61

52

32


>> Thuong = deconv(a,b)
Thuong =
0.2000
>> Tong = a +b
Tong =
6

8

10

12

>> Hieu = a-b
Hieu =
-4

-4

-4

-4

2.2.2 Các hàm lượng giác (Trigonometric functions )


Ý nghĩa

Hàm
sin(x)


sin của x khi x có đơn vị radian

cos(x)

cos của x khi x có đơn vị radian

tan(x)

tan của x khi x có đơn vị radian

asin(x)

[-π/2,π/2] khi x

acos(x)

[0,π] khi x

atan(x)

khi x

[-1,1]

[-1,1]

[-π/2,π/2]

Đổi radian sang độ và ngược lại:

angle_degrees=angle_radians*(180/pi)
angle_radians=angle_degrees*(pi/180)
Ví dụ 1: khai báo các biến x = pi, y = pi/2, z = pi/8. Tính giá trị của các hàm lượng giác sau:
sin(x), sin(y), sin(z); tan(x), tan(y), tan(z); acos(x), acos(y), acos(z);
>> syms x y z
>> x=pi;
>> y=pi/2;
>> z=pi/8;
>> sin(x)
ans =
1.2246e-16

>> sin(pi)
ans =


1.2246e-16
>> sin(z)
ans =
0.3827
>> tan(x)
ans =
-1.2246e-16
>> tan(y)
ans =
1.6331e+16
>> tan(z)
ans =
0.4142
>> acos(x)

ans =
0.0000 + 1.8115i
>> acos(y)
ans =
0.0000 + 1.0232i
>> acos(z)
ans =
1.1672

2.2.3. Mũ và Logarithm (Exponents and logarithm)


exp(x) represents the value of the exponential function at the point x.

exp(x)

The exponential function is defined for all complex arguments.
expm(x)

computes the matrix exponential of X

log(x)

Natural Logarithmic

log10(x)

computes the base 2 logarithm. The function accepts both real and complex
inputs. For real values of X in the interval (0, Inf), log10 returns real values in
the interval (-Inf ,Inf). For complex and negative real values of X,

the log10 function returns complex values.
computes the base 2 logarithm of the elements of X such that 2Y=X.

log2(x)

Ví dụ1: Hãy tính giá trị của các hàm mũ sau: exp(1), exp(x^2), expm(A) với A= [1 1 0; 0 0 2; 0
0 -1];
>> exp(1)
ans =
2.7183
>> syms x
>> exp(x^2)
ans =
exp(x^2)
>> A = [1 1 0; 0 0 2; 0 0 -1];
>> expm(A)
ans =
2.7183

1.7183

0

1.0000

0

0

1.0862

1.2642

0.3679


Ví dụ 2: Cho x = 10 tính log(x), log2(x), log10(x)
>> syms x
>> x=10
x=
10
>> log(x)

ans =
2.3026
>> log10(x)
ans =
1
>> log2(x)
ans =
3.3219
2.3. Hàm hợp, hàm ngược ( composition, inverse functions)
2.3.1. Hàm hợp (functional composition)
Cho các hàm số:

Trong đó X, Y, Z là các tập hợp số nói chung. Hàm hợp của

Được định nghĩa bởi f(x) =

( ( ))


là hàm số:


Có thể ký hiệu hàm hợp là: f =
Định nghĩa hàm hợp trong MatLab
compose(f,g)

returns f(g(y)) where f = f(x) and g = g(y). Here x is the symbolic variable
of f as defined by symvar and y is the symbolic variable of g as defined
by symvar.

compose(f,g,z)

returns f(g(z)) where f = f(x), g = g(y), and x and y are the symbolic
variables of f and g as defined by symvar.

Ví dụ 1: Cho f = x2 , g = x + 1. Tìm hàm hợp h = f(g(x))
( Write a function that accepts two function handles f and g and returns the composition h. That
is, h = (f o g)(x) = f(g(x)) )
>> syms x
>> f=x^2;
>> g=x+1;
>> h=compose(f,g)
h=
(x + 1)^2
2.3.2. Hàm ngược (Functional inverse )
Cho hàm số song ánh:

trong đó X, Y là tập hợp số nói chung. Khi đó mỗi phần tử


y = f(x), với y

Y đều là ảnh của một và chỉ một phần tử x

mỗi phần tử y

Y với một phần tử x

X. Như vậy có thể đặt tương ứng

X. Phép tương ứng đó đã xác định một hàm số ánh xạ từ

Y sang X, hàm số này được gọi là hàm số ngược của hàm số f và được ký hiệu là:
:

=

( )

Hàm ngược được biểu điễn trong Matlab như sau:
finverse(f)

returns the inverse of function f. Here f is an expression

f: Symbolic

or function of one symbolic variable, for example, x.

expression or



finverse(f,var)

Then g is an expression or function, such that f(g(x)) = x.

function.

That is, finverse(f) returns f–1, provided f–1 exists.

var: Symbolic

uses the symbolic variable var as the independent

variable.

variable. Then g is an expression or function, such
that f(g(var)) = var. Use this form when f contains more
than one symbolic variable.

Ví dụ 1: Tính hàm ngược cho hàm lượng giác sau (Compute functional inverse for this
trigonometric function) : f(x) = 1/tan(x)
Giải
>> syms x
f(x)=1/tan(x);
>> g=finverse(f(x))
g=
atan(1/x)
III.

Giới hạn và liên tục (Limit and Continuity)


3.1. Giới hạn của hàm số (Function Limit)
3.1.1.Định nghĩa (define )
Cho f là hàm số xác định trên khoảng mở chứa a (có thể ngoại trừ tại a). Ta nói giới hạn của
f (x) khi x tiến về a là bằng L nếu:
Với mọi ε > 0 cho trước, đều có số δ > 0 để cho: nếu 0 < |x −a| < δ thì |f (x)−L| < ε
Tương tự, ta có các khái niệm giới hạn một phía:
Giới hạn trái của f khi x tiến về a là bằng L nếu giá trị của f có thể gần L bao nhiêu cũng được,
miễn là x đủ gần a và x < a.
Ký hiệu giới hạn trái:
( )


Một cách chính xác, giới hạn của f (x) khi x tiến về bên trái a là bằng L nếu: ∀ε > 0,∃δ > 0 : a−δ
< x < a ⇒|f (x)−L| < ε
Giới hạn phải của f khi x tiến về a là bằng L nếu giá trị của f có thể gần L bao nhiêu cũng được,
miễn là x đủ gần a và x > a.
Ký hiệu giới hạn phải:
( )
Một cách chính xác, giới hạn của f (x) khi x tiến về bên phải a là bằng L nếu: ∀ε > 0,∃δ > 0 : a <
x < a + δ ⇒|f (x)−L| < ε
Định lý:
( )

( )

( )

3.1.2. Tìm giới hạn bằng MatLab
Để tìm giới hạn của hàm số, chuỗi số Matlab hổ trợ hàm limit, dưới đây là những hàm cơ bản

thông dụng nhất được dùng để tính giới hạn.
Mô tả

Hàm
limit (sequence, inf )

Tính giới hạn của chuỗi số khi

limit(function, x, a) hoặc

Tính giới hạn của hàm số khi

limit(function, a)
limit (function, x, a, ‘right’)

Tính giới hạn của hàm số khi

limit (function, x, a, ‘left’)

Tính giới hạn của hàm số khi

Ví dụ 1: Tìm giới hạn của hàm số:
( )

a.
b.


Giải


a.

( )


>> syms x
>> limit(sin(1/x),x,0,'left')
ans =
NaN


b.
>> syms x

>> limit(sqrt(x),x,0,'right')
ans =
0
3.2. Sự liên tục của hàm số
3.2.1. Định nghĩa
Hàm số f liên tục tại a nếu:

( )

( )

Như vậy để một hàm số liên tục tại một điểm thì hàm số đó phải thỏa ba điều kiện sau:
-

f(a) xác định với a là một phần tử trong tập xác định,


-

( ) tồn tại,

-

( )

( )

Dựa vào định nghĩa hàm số liên tục tại một điểm, chúng ta có thể sử dụng các câu lệnh trong
matlab như sau:
-

Tính giới hạn của hàm số f khi x → a bằng lệnh LIMIT

-

Tính giá trị hàm số tại a bằng lệnh SUBS

Ví dụ 1: Tìm giới hạn của hàm số tại một điểm
a.

( ) tại x = a

b.

( ) tại x = 0
Giải



( ) tại x = a

a.
>> syms x a

>> limit(sin(1/x),x,a )
ans =
sin(1/a)
( ) tại x = 0

b.
>> syms x

>> limit(sin(1/x),x,0 )
ans =
NaN
Ví dụ 2: Tìm giới hạn của hàm số tại vô cùng (infinity) cho hàm số:
( ) tại x =
>> syms x
>> limit(sin(1/x),x,inf)
ans =
0
Ví dụ 3: Cho

( )

{

>> syms x

>> f= (x^3-2*x^2-x+2)/(x-2);
>> limit(f,x,2)
ans =
3


( ) = 3 ≠ f(2)=2 nên f không liên tục tại x =2. Ngược lại, f liên tục tại tất cả các điểm



x ≠ 2. Cụ thể, xét sự liên tục của f tại x=0:
>> syms x
>> f= (x^3-2*x^2-x+2)/(x-2);
>> limit(f,x,0)
ans =
-1
Bài Tập
Bài 1. Bài tập về hàm số
a. Viết hàm maxmin3 nhận vào 3 tham số x, y, z và trả về giá trị lớn nhất và nhơ nhất
trong 3 số.
b. Viết hàm yêu cầu người dùng nhập vào số thực; nếu số nhập vào nhỏ hơn hoặc bằng
không thì yêu cầu nhập lai; ngược lại trả về số vừa nhập.
c. Viết hàm yêu cầu người dùng nhập vào 3 số dương a, b, c. Kiểm tra a, b, c có thể tạo
thành các cạnh của tam giác không. Nếu có tính diện tích và chu vi của tam giác và
xuất ra màn hình; nếu không xuất ra màn hình thông báo không tạo thành tam giác.
Bài 2. Bài tập về các hàm sơ cấp cơ bản:
1. sin(-x)
2. sin(x + PI)
3. sin(x^2 - 4)
4. sin(x + 10*PI)

5. sin(2 - 10^100*PI)
6. cos(-PI/12)
7. cos(123/11*PI)
8. arcsin(1/sqrt(2))
9. arcsin((5^(1/2) - 1)/4)
10. arcsin(3^(1/2)/2)


11.exp(ln(-2))
12.exp(ln(x)*PI)
13.cho y = 4x4/7, z= x3-2. Hãy tính sqrt(y), log10(z)
14.Cho x = -15.45, y = x2-1, z = 8. Hãy tính log2(x), log2(y), log2(z)
Bài 3. Bài tập về đa thức
a. Cho phương trình x2 -4x+5 = 0, giải phương trình theo 2 cách, cách 1 – tính delta theo
phương pháp cổ điển, cách 2 – dùng hàm roots, hãy so sánh kết quả.
b. Giải phương trình x3 - 2x2 +4x+5 = 0. Kiểm chứng kết quả thu được bằng hàm
polyval. Sinh viên có nhận xét gì về kết quả kiểm chứng.
c. Cho đa thức p(x) = x3 + 5x2 + 6x +3 và g(x) = x3 + 3x2 +2x +1. Hãy tính:
 Tích hai đa thức
 Thương hai đa thức
 Tổng hai đa thức
 Hiệu hai đa thức
Bài 4. Bài tập về hàm hợp, hàm ngược
a. Cho f = 1/(1 + x2), g = sin(y). Tính compose(f,g), compose(f,g,t)
, tính hàm ngược của f. Đáp số: ans = 2*y + log(x)

b. Cho f =

Bài 5. Bài tập về giới hạn và liên tục
a. Tính các giới hạn sau:


(

1.
2.

(

3.

(

4.

(

)




( )

)

)
)


5.


(

)

6.

(√ )

(

7.
8.

(

9.

(

)

)

)

)
(

10.


(

) ,



b. Khảo sát tính liên tục của hàm số tại a. Vẽ đồ thị hàm số

1. f(x) = ln|x-2| , a=2
2.

( )

{

3.

( )

{

4.

( )

{

,a=0


, a=3



×