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

Khảo sát hàm số và tìm điểm cố định của họ đường cong

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 (805.11 KB, 16 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA TOÁN – TIN ỨNG DỤNG
***

BÁO CÁO BÀI TẬP LỚN
MÔN LẬP TRÌNH TÍNH TOÁN
ĐỀ TÀI: KHẢO SÁT HÀM SỐ VÀ TÌM ĐIỂM CỐ ĐỊNH
CỦA HỌ ĐƯỜNG CONG
GV hướng dẫn : NGUYỄN HỮU ĐIỂN
SV thực hiện : Trần Anh Tuấn
Vũ Thanh Hằng
Lớp : Toán – tin 2, K51



Hà Nội, tháng 11/2009


1


MỤC LỤC

GIỚI THIỆU 3
NỘI DUNG 4
I. Bài toán khảo sát hàm số: 4
1. Giới thiệu bài toán: 4
2. Các lệnh sử dụng trong chương trình: 5
3. Chương trình: 7
4. Lưu thủ tục: 10
5. Sử dụng thủ tục đã lưu: 10


6. Ví dụ áp dụng: 10
II. Bài toán tìm điểm cố định của một họ đường thẳng hoặc đường cong: 12
1. Giới thiệu bài toán: 12
2. Các hàm sử dụng trong chương trình: 13
3. Chương trình: 13
4. Lưu thủ tục: 14
5. Sử dụng thủ tục đã lưu: 14
6. Ví dụ áp dụng: 14
KẾT LUẬN 16
TÀI LIỆU THAM KHẢO 16


2


GIỚI THIỆU
Maple là một hệ thống tính toán trên các biểu thức đại số và minh họa toán
học mạnh mẽ. Từ khi ra đời đến nay Maple đã phát triển qua rất nhiều phiên bản,
Maple có cách cài đặt đơn giản, chạy được trên nhiều hệ điều hành, có cấu trúc
linh hoạt để sử dụng một cách tối ưu cấu hình máy và có trình trợ giúp rất dễ sử
dụng. Trải qua nhiều phiên bản, Maple cung cấp ngày càng nhiều các công cụ tr
ực
quan, các gói lệnh giúp tính toán toán học phổ thông và đại học. Ưu điểm đó làm
cho nhiều người lựa chọn và sử dụng Maple cùng với các phần mềm toán học khác
áp dụng trong dạy toán và các công việc tính toán đòi hỏi thực tiễn và sự phát triển
của giáo dục.
Trong quá trình học tập, tìm hiểu và sử dụng công cụ lập trình tính toán
Maple, chúng em nhận thấy rằng ngoài các tính năng tính toán và minh họa rất
mạnh mẽ bằng các câu l
ệnh riêng biệt và cụ thể để cho ta kết quả cuối cùng, Maple

còn là một ngôn ngữ lập trình thủ tục (procedure). Thủ tục là một dãy các lệnh của
Maple được lập trình theo thứ tự định sẵn để xử lý một công việc nào đó, khi thực
hiện thủ tục, Maple sẽ tự động thực hiện tuần tự các lệnh có trong thủ tục đó một
cách tuần tự để sau đ
ó đưa ra kết quả cuối cùng.
Trong khuôn khổ bài báo cáo bài tập lớn môn học này, chúng em xin trình
bày một vài kết quả đạt được trong việc sử dụng Maple để lập thủ tục giải các bài
toán: “Khảo sát hàm số” và “tìm điểm cố định của một họ đường cong”.

3


NỘI DUNG
I. Bài toán khảo sát hàm số:
1. Giới thiệu bài toán:
Bài toán khảo sát hàm số là một trong những bài toán cơ bản trong chương
trình toán ở Trung học phổ thông (THPT), luôn có trong các đề thi THPT và tuyển
sinh ĐH – CĐ hàng năm.
Các bước để khảo sát hàm số y=f(x):
+ Tìm tập xác định của hàm số.
+ Xét sự biến thiên của hàm số:
- Chiều biến thiên: tính đạo hàm y’, xét dấu y’ để suy ra chiều biến thiên của
đồ thị hàm số.
- Cực trị: Dựa vào chiều biến thiên tìm các điểm cực trị (nếu có) của đồ thị
hàm số.
- Tính lồi, lõm và điểm uốn: Tính đạo hàm y” và xét dấu y” để tìm điểm uốn
của đồ thị hàm số
(nếu có).
- Giới hạn: Tính các giới hạn của hàm số. Tìm các tiệm cân của đồ thị hàm
số (nếu có).

+ Vẽ đồ thị hàm số:
- Vẽ các đường tiệm cận của đồ thị hàm số (nếu có).
- Xác định các điểm đặc biệt của đồ thị hàm số: Điểm uốn, các giao điểm
của đồ thị với các trục tọa độ (n
ếu có).
- Vẽ đồ thị hàm số.
4

Dựa vào các bước để khảo sát hàm số như trên, bằng cách sử dụng các lệnh
và thư viện có sẵn của Maple, ta lập được thủ tục giải bài toán khảo sát hàm số đối
với hàm số:


2. Các lệnh sử dụng trong chương trình:
* Lệnh giải phương trình, bất phương trình:
Cú pháp: >fsolve(equ, var)
Trong đó: - equ: là biểu thức của phương trình, bất phương trình.
- var: là biến số (ẩn).
Ý nghĩa: Lệnh này sau khi thực hiện sẽ cho ta nghiệm của phương trình, bất
phương trình ta đưa vào

* Lệnh tính đạo hàm:
Cú pháp: >diff(equ, var)
Trong đó: - equ: là biểu thức của phương trình.
- var: biến số để tính đạo hàm.
Ý nghĩa: Lệnh này sau khi thực hiện sẽ cho ta đạo hàm của phươ
ng trình mà ta đưa
vào.

*Lệnh rút gọn biểu thức:

Cú pháp: >simplify(equ)
Trong đó: - equ: biểu thức cần rút gọn.
Ý nghĩa: Viết lại biểu thức dưới dạng rút gọn.

* Lệnh tính giá trị của một biểu thức:
5

Cú pháp: >eval(equ, val)
Trong đó: - equ: biểu thức.
- val: giá trị biến đưa vào biểu thức.

6

3. Chương trình:
Sau đây là đoạn code chương trình trong Maple thể hiện thủ tục khảo sát
hàm số bậc ba:

> Khao_sat_ham_so:=proc(a::numeric, b::numeric, c::numeric,
d::numeric)
local x, dh1;
y:=a*x^3+b*x^2+c*x+d;
print(`Khảo sát hàm số`);
print(`Tập xác định: R`);
print(`Sự biến thiên: `);
dh1:=diff(y,x);
print(`+ Chiều biến thiên: y'`=dh1);

if({solve(diff(y,x)=0)}={}and a>0) then
print(`y > 0 với mọi x.`);
print(`Hàm số luôn đồng biến.`);

fi;

if({solve(diff(y,x)=0)}={}and a<0) then
print(`y < 0 với mọi x.`);
print(`Hàm số luôn nghịch biến.`);
fi;

if({solve(diff(y,x)=0)}<>{}and a>0 and
max(solve(diff(y,x)=0))=min(solve(diff(y,x)=0))) then
print(`Đạo hàm y'=0 tại x`=min(solve(diff(y,x)=0)));
print(`y>=0 với mọi x.`);
print(`Hàm số luôn đồng biến.`);
fi;

if({solve(diff(y,x)=0)}<>{}and a<0 and
max(solve(diff(y,x)=0))=min(solve(diff(y,x)=0))) then
print(`Đạo hàm y'=0 tại x`=min(solve(diff(y,x)=0)));
7

print(`y<=0 với mọi x.`);
print(`Hàm số luôn nghịch biến.`);
fi;

if({solve(diff(y,x)=0)}<>{}and a>0 and
max(solve(diff(y,x)=0))<>min(solve(diff(y,x)=0))) then
dh1=factor(dh1);
print(`Đạo hàm y'=0 tại x`=solve(diff(y,x)=0));
print(`Hàm số đồng biến trong các khoảng: `)(-infinity,
min(solve(diff(y,x)=0)))(`và`)(max(solve(diff(y,x)=0)), infinity);
print(`Hàm số nghịch biến trong các khoảng:`)

(min(solve(diff(y,x)=0)), max(solve(diff(y,x)=0)));
fi;

if({solve(diff(y,x)=0)}<>{}and a<0 and
max(solve(diff(y,x)=0))<>min(solve(diff(y,x)=0))) then
dh1=factor(dh1);
print(`Đạo hàm y'=0 tại x`=solve(diff(y,x)=0));
print(`Hàm số nghịch biến trong các khoảng:`)(-infinity,
min(solve(diff(y,x)=0)))(`và`)(max(solve(diff(y,x)=0)), infinity);
print(`Hàm số đồng biến trong các khoảng:`)(min(solve(diff(y,x)=0)),
max(solve(diff(y,x)=0)));
fi;

print(`+ Cực trị:`);
if({solve(diff(y,x)=0)}={}) then
print(`Hàm số không có cực trị.`);
fi;

if({solve(diff(y,x)=0)}<>{}and
max(solve(diff(y,x)=0))=min(solve(diff(y,x)=0))) then
print(`Hàm số không có cực trị.`);
fi;

8

if({solve(diff(y,x)=0)}<>{}and a>0 and
max(solve(diff(y,x)=0))<>min(solve(diff(y,x)=0))) then
print(`Hàm số có một điểm cực đại và một điểm cực tiểu:`);
print(`Điểm cực đại: `) (min(solve(diff(y,x)=0)),
simplify(eval(y,x=min(solve(diff(y,x)=0)))));

print(`Điểm cực tiểu: `) (max(solve(diff(y,x)=0)),
simplify(eval(y,x=max(solve(diff(y,x)=0)))));
fi;

if({solve(diff(y,x)=0)}<>{}and a<0 and
max(solve(diff(y,x)=0))<>min(solve(diff(y,x)=0))) then
print(`Hàm số có một điểm cực đại và một điểm cực tiểu:`);
print(`Điểm cực tiểu: `)(min(solve(diff(y,x)=0)),
simplify(eval(y,x=min(solve(diff(y,x)=0)))));
print(`Điểm cực đại: `)(max(solve(diff(y,x)=0)),
simplify(eval(y,x=max(solve(diff(y,x)=0)))));
fi;

print(`+ Giới hạn:`);
limit(y,x=-infinity)=limit(y,x=-infinity);
limit(y,x=+infinity)=limit(y,x=+infinity);
print(`Đồ thị không có tiệm cận.`);

print(`+ Tính lồi, lõm và điểm uốn:`);
print(`y"`=diff(diff(y,x),x));
print(`Điểm uốn: U`)(solve(diff(diff(y,x),x)),
simplify(eval(y,x=solve(diff(diff(y,x),x)))));

if a>0 then
print(`Hàm số lồi trong khoảng:`,-infinity, solve(diff(diff(y,x),x)));
print(`Hàm số lõm trong khoảng:`)(solve(diff(diff(y,x),x)), infinity);
else
print(`Hàm số lõm trong khoảng:`)(solve(diff(diff(y,x),x)), infinity);
print(`Hàm số lồi trong khoảng:`)(-infinity,
solve(diff(diff(y,x),x)));

9

fi;

print(`+ Đồ thị: Đồ thị có tâm đối xứng là điểm uốn.`);
print(`Đồ thị cắt trục Ox tại các điểm có hoành độ:`(solve(y=0)));
print(`Đồ thị cắt trục Oy tại điểm` (0, d));
plot(y,x=-5 5,-10 10);
end;
Sau khi viết xong thủ tục, gõ enter, chương trình sẽ được biên dịch
4. Lưu thủ tục:
Để đưa thủ tục trở thành thư viện ở dạng file ta dùng lệnh:
Save khao_sat_ham_so, `c:\\khaosat.m`;
5. Sử dụng thủ tục đã lưu:
Để nạp thư viện đã có sẵn vào bộ nhớ ta dùng lệnh
Read `c:\\khaosat.m`;
Lúc này muốn thực hiện công việc ta chỉ cần gõ lệnh: khao_sat_ham_so(a, b, c, d);
Trong đó (a, b, c, d) là các tham số trong phương trình.
6. Ví dụ áp dụng:
Khảo sát hàm số:
Ta gõ lệnh:
khaosathamso(1,3,0,-4);
Kết quả hiển thị như sau:











10













Đồ thị hàm số sẽ được vẽ như sau:

11


II. Bài toán tìm điểm cố định của một họ đường thẳng hoặc
đường cong:
1. Giới thiệu bài toán:
* Bài toán: Cho họ đường cong (C
m
) có phương trình y=f(x,m), trong đó m là
tham số, hãy tìm những điểm cố định khi m thay đổi?
Đây cũng là một bài toán rất thông dụng và là một vấn đề luôn đi liền với bài toán

khảo sát sự biến thiên và vẽ đồ thị hàm số.
Các bước giải bài toán:

Với một giá trị của tham số m ta có được một đồ thị của (C
m
) tương ứng. Và như
vậy, khi m thay đổi thì đồ thị của (C
m
) cũng thay đổi theo 2 trường hợp:
- Hoặc mọi điểm của (C
m
) đều thay đổi.
- Hoặc có một vài điểm của (C
m
) đứng yên khi m thay đổi.
Những điểm đứng yên khi m thay đổi được gọi là điểm cố định của họ đường cong
(C
m
). Đó là những điểm mà mọi đường (C
m
) đều đi qua với mọi giá trị của m.
Gọi A(x
o
,y
o
) là điểm cố định của đồ thị (C
m
) thì y
o
=f(x

o
,m) thỏa mãn với mọi m.
Điều này có nghĩa là phương trình y
o
=f(x
o
,m) vô định theo tham số m.
Vậy để tìm các điểm cố định của họ đường (C
m
) ta thực hiện các bước sau đây:
Đưa phương trình y=f(x,m) về dạng phương trình theo ẩn m dạng:
am + b = 0 hoặc am
2
+ bm + c = 0
Cho các hệ số = 0, ta được hệ phương trình:
hoặc
Giải hệ phương trình:
hoặc (*)
- Nếu hệ phương trình (*) vô nghiệm thì (C
m
) không có điểm cố định.
- Nếu hệ phương trình (*) có nghiệm (x
o
,y
o
) thì điểm có tọa độ (x
o
,y
o
) là điểm cố

định của (C
m
).
12

Ví du: Tìm điểm cố định của họ đường cong (C
m
) sau đây:

Biến đổi (C
m
) về dạng:


Tọa độ điểm cố định là nghiệm của hệ phương trình:

Vậy có một điểm cố định:

2. Các hàm sử dụng trong chương trình:
− Hàm numer(g): để trích tử của g
− Hàm denom(g): để trích mẫu của g.
− Hàm collect(f,m): để nhóm các số hạng có cùng số mũ của biến m trong f.
− Hàm coef(p,x,k): trả về hệ số của x
k
của đa thức p.
3. Chương trình:
Sau đây là đoạn code chương trình trong Maple thể hiện thủ tục tìm điểm cố định
của họ đường cong (C
m
)

> diem_co_dinh:=proc(k)
local a, b, c, g, f, y, t;
print(`Bài toán tìm điểm cố định của một họ đường cong`);
g:=k;
print(y=g);
print(` Bài giải `);
print(`Phương trình đã cho được đưa về dạng sau:`);
f:=numer(g)-y*denom(g);
print(f=0);
f:=collect(f,m);
13

print(f=0);
a:=factor(coeff(f, m^2));
b:=factor(coeff(f, m));
c:=factor(coeff(f, m, 0));
print(a*m^2+b*m+c=0);
print(sort(a*m^2+b*m+c, m)=0);
print(`Tọa độ điểm cố định là nghiệm hệ phương trình:`);
if a=0 then print({b=0, c=0});
else print({a=0, b=0, c=0});
fi;
print(`Giải hệ phương trình ta được các điểm cố định`);
print(sort({a=0, b=0, c=0},{x,y}));
end;
Sau khi viết xong thủ tục, gõ enter, chương trình sẽ được biên dịch.
4. Lưu thủ tục:
Để đưa thủ tục trở thành thư viện ở dạng file ta dùng lệnh:
Save diem_co_dinh, `c:\\codinh.m`;
5. Sử dụng thủ tục đã lưu:

Để nạp thư viện đã có sẵn vào bộ nhớ ta dùng lệnh:
Read `c:\\codinh.m`;
Lúc này muốn thực hiện công việc ta chỉ cần gõ lệnh: diemcodinh(f(x,m));
Trong đó f(x,m) là hàm số có tham số m.
6. Ví dụ áp dụng:
Tìm điểm cố định của một họ đường cong
Ta gõ lệnh:
diem_co_dinh(((m-1)*x+m+2)/(x+m+2));
Kết quả hiển thị như sau:

14












Để minh học các đường cong này ta dùng lệnh plot kết hợp với seq như sau:
> plot([seq(((m-1)*x+m+2)/(x+m+2),m=-1 5)],x=-10 5,-5 6,
thickness=2);

15



KẾT LUẬN
Qua bài báo cáo này chúng ta đã trình bày những bước cơ bản để lập trình trong
Maple, cách viết các thủ tục và tạo thư viện cụ thể. Từ đó có thể xây dựng nên nhiều
chương trình khác phục vụ cho giảng dạy và học tập. Và có thể nhận thấy rằng nếu khai
thác tốt các tính năng của Maple sẽ đem lại cho ta một công cụ rất hiệu quả trong học tập,
nghiên cứu khoa học và trong nhiều l
ĩnh vực khác nữa
Mặc dù vậy, do những hiểu biết và sử dụng chương trình của chúng em còn nhiều
hạn chế nên bài tập này còn đơn giản và có nhiều thiếu sót. Nhưng qua đó chúng em đã
hiểu thêm về một công cụ hỗ trợ tính toán mạnh mẽ với những nguồn dữ liệu và thư viện
phong phú để giải bài toán.
Chúng em xin chân thành cảm ơn thầy giáo NGUYỄN HỮU ĐIỂN đã giúp
đỡ để
chúng em hoàn thành bài tập này!
Hà Nội, tháng 11 năm 2009
Sinh viên: Trần Anh Tuấn
Vũ Thanh Hằng
Lớp Toán – tin 2, K51, ĐHBKHN
TÀI LIỆU THAM KHẢO
Một số tài liệu chúng em sử dụng trong quá trình làm bài:
+ Hướng dẫn và sử dụng Maple V - Nguyễn Hữu Điển.
+ Võ Đại Mau - Phương pháp giải toán khảo sát hàm số - NXB Trẻ TP. Hồ Chí Minh,
1997.
+ Ngô Thúc Lanh, Ngô Xuân Sơn, Vũ Tuấn - Giải tích 12 - NXB Giáo dục 2000.
+ Các website: .

16

×