matlab cơ bản cho người bắt đầu học giải tích số. Một số hàm cơ bản trong matlab, các toán tử và quan hệ trong matlab. những hàm tính toán cơ bản trong matlab. Học matlab trong toán học khá đơn giản và dễ hiểu. Matlab là công cụ hỗ trợ thuyết yếu cho nghiên cứu và minh họa thuật toán trong toán học
Trang 1CALCULUS 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:
Trang 2>> [ 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 = x 4 –x 3 +4x 2 -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)
Trang 3ans =
- Để xác định nghiệm của đa thức P, ta dùng hàm roots(P)
>> r = roots(P)
r =
Ví dụ 3: cho đa thức P = x 2
-1
>> P= [1 0 -1]
P =
1 0 -1
>> roots(P)
ans =
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à: x 4
–x 3 +4x 2 -5x-1
Trang 4- 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 =
>> 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 )
Trang 5Hàm Ý nghĩa
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 [-1,1]
Đổ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 =
Trang 61.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)
Trang 7exp(x) exp(x) represents the value of the exponential function at the point 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
log2(x) computes the base 2 logarithm of the elements of X such that 2Y=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 1.0862
0 1.0000 1.2642
0 0 0.3679
Trang 8Ví 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 là hàm số:
Được định nghĩa bởi f(x) = ( ( ))
Trang 9Có 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 X Như vậy có thể đặt tương ứng mỗi phần tử y Y với một phần tử x 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
or function of one symbolic variable, for example, x
f: Symbolic expression or
Trang 10Then g is an expression or function, such that f(g(x)) = x
That is, finverse(f) returns f–1, provided f–1 exists
function
var: Symbolic variable
finverse(f,var) uses the symbolic variable var as the independent
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:
( )
Trang 11Mộ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
limit (sequence, inf ) Tính giới hạn của chuỗi số khi
limit(function, x, a) hoặc
limit(function, a)
Tính giới hạn của hàm số khi
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 ( )
Trang 12>> 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
Trang 13a ( ) tại x = a
>> syms x a
>> limit(sin(1/x),x,a )
ans =
sin(1/a)
b ( ) tại x = 0
>> 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
Trang 14Vì ( ) = 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)
Trang 1511.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)
b Cho f = , tính hàm ngược của f Đáp số: ans = 2*y + log(x)
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:
3 (√ )
4
( ))
Trang 165 (
)
6 ( √ )
)
)
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
, a = 0
, a=
3