BÁO CÁO BÀI TẬP LỚN MÔN GIẢI TÍCH 1 (WRITING A MATLAB PROGRAM)
https://app.box.com/s/qtbk5usc056hp8m2nm6u0l5e9aczi0lq
https://app.box.com/s/qtbk5usc056hp8m2nm6u0l5e9aczi0lq
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
TRƯỜNG ĐẠI HỌC BÁCH KHOA<br />
ĐẠI HỌC QUỐC GIA TPHCM<br />
<strong>BÁO</strong> <strong>CÁO</strong> <strong>BÀI</strong> <strong>TẬP</strong> <strong>LỚN</strong> <strong>MÔN</strong> <strong>GIẢI</strong> <strong>TÍCH</strong> 1<br />
Giá o viên hướ ng dẫn: Nguyễn Ngọc Quỳnh Như<br />
Hồ Chí Minh, ngày 02 tháng 12 năm 2018<br />
1
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
PHẦN I<br />
GIỚI THIỆU CHUNG<br />
GIỚI THIỆU ĐỀ TÀI<br />
Câu 1: Viết 1 đoạn code theo thứ tự nhóm (không dùng hàm<br />
có sẵn) :<br />
A. Cho hàm y=f(x) và giá trị x 0 nhập từ bàn phím. Viết đoạn<br />
code tìm tiếp tuyến của hàm tại x 0 và vẽ đường cong cùng<br />
tiếp tuyến vừa tìm .<br />
B. Viết code tìm cực trị của 1 hàm một hàm lượng giác<br />
f(x)=asin(bx+c) bất kì. (a,b,c nhập từ bàn phím) .<br />
Câu 2 :Tất cả các nhóm đều làm :<br />
• Cho hàm y=f(x) xác định bởi phương trình tham số y=y(t),<br />
x=x(t) và giá trị n. Viết đoạn code tính đạo hàm cấp n của y.<br />
• Chọn 1 đề tính giới hạn bất kì trong chương trình học. Sau đó<br />
dùng hàm trong matlab để giải. .<br />
• Chọn 1 đề tính đạo hàm bất kì trong chương trình học. Sau đó<br />
dùng hàm trong matlab để giải.<br />
• Chọn 1 đề tính tích phân bất kì trong chương trình học. Sau đó<br />
dùng hàm trong matlab để giải.<br />
• Chọn 1 đề tính diện tích miền phẳng bất kì trong chương trình<br />
học. Sau đó dùng hàm trong matlab để giải.<br />
2
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
1) Câu 3A:<br />
a) Nội dung:<br />
PHẦN II :<br />
<strong>BÀI</strong> TOÁN 1<br />
A. Cho hàm y=f(x) và giá trị x 0 nhập từ bàn phím. Viết đoạn code tìm tiếp<br />
tuyến của hàm tại x 0 và vẽ đường cong cùng tiếp tuyến vừa tìm .<br />
b) Cơ sở lý thuyết :<br />
Kiểm tra x 0 có thuô ̣c tâ ̣p xác điṇh của hàm f(x).<br />
Nếu x 0 không thuô ̣c tâ ̣p xác điṇh của hàm f(x)<br />
không có tiếp tuyến tai ̣ x 0 .<br />
Tìm y o = f ‘(x 0 )<br />
Tińh đaọ hàm Bên trái hê ̣số góc cùa tiếp tuyến trái<br />
Bên phải<br />
hê ̣số góc của tiếp tuyến phải<br />
Nếu đaọ hàm bên trái bằng đaọ hàm bên phải<br />
hàm y=f(x) có 1 tiếp tuyến.<br />
Nếu đaọ hàm bên trái khác đaọ hàm bên phải<br />
hàm y=f(x) có 2 tiếp tuyến.<br />
• Phương triǹh tiếp tuyến có daṇg: y=f ‘(x 0 )(x-x 0 )+y 0.<br />
Vi ́dụ: y=f(x)=x 3 +x 2 +3 với x 0 =2<br />
• x 0 =2 => y 0 =15.<br />
• y’(x)=3x 2 +2x<br />
3
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
• y’(2)=3*(2) 2 +2*2=16<br />
phương triǹh tiếp tuyến : y=f ‘(x)*(x-x 0 )+y 0<br />
y=16x-17<br />
Vi ́dụ: y=f(x)=3x 2 +3x-5 với x 0 =1<br />
• x 0 =1 => y 0 =1<br />
• y’(x)=f’(x)=6x+3<br />
• y’(1)=f’(1)=6*1+3=9<br />
phương triǹh tiếp tuyến : y=f’(x 0 )*(x-x 0 )+y 0<br />
y=9x-8<br />
c) Thuật toán:<br />
syms x y daoham tt a b<br />
y=input('Nhap vao ham y(x),y=');<br />
x0=input('Nhap vao x0, x0=');<br />
a=limit(y,x,x0,'left');<br />
b=limit(y,x,x0,'right');<br />
if a==b<br />
tt=subs(diff(y,x),x0)*(x-x0)+subs(y,x0);<br />
disp('Tiep tuyen can tim la'), disp(tt)<br />
else<br />
disp('Khong ton tai tiep tuyen tai diem x0='),disp(x0);<br />
end<br />
hold on<br />
ezplot(y,[-10 10])<br />
ezplot(tt, [-10 10])<br />
axis( [-10 10 -10 10])<br />
4
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
d)Ví du ̣matlab:<br />
5
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Câu 3B:<br />
a) Nội dung<br />
Viết code tìm cực trị của 1 hàm một hàm lượng giác<br />
f(x)=asin(bx+c) bất kì. (a,b,c nhập từ bàn phím) .<br />
b)Cơ sở lý thuyết<br />
1.Khái niệm đạo hàm:<br />
Cho hàm số y=f(x) xác định trên khoảng (a;b),x0∈(a;b). Giới<br />
hạn hữu hạn (nếu có) của tỉ số f(x)−f(x0)<br />
khi x−x0 được gọi là đạo<br />
x−x0<br />
hàm của hàm số đã cho tại x0, kí hiệu là f′(x0) hay y′(x0). Như<br />
vậy:<br />
f(x)−f(x0)<br />
f′(x0)= lim<br />
x→x0 x−x0<br />
Nếu đặt x−x0=Δx và Δy=f(x 0 +Δx)−f(x 0 ) thì ta có<br />
Δy<br />
f′(x0)= lim<br />
Δx→0 Δx<br />
2. Định lí 1.<br />
Cho hàm số y = f(x) liên tục trên khoảng K = (x 0 - h ; x 0 + h)<br />
(h > 0) và có đạo hàm trên K hoặc trên K ∖{ x 0 }.<br />
• Nếu f′(x 0 )>0,∀( x 0 −h; x 0 ),f′(x 0 )
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
• Nếu f′(x 0 )0 ∀ (x 0 ; x 0 +h) thì x 0 là<br />
điểm cực tiểu của hàm số.<br />
3. Định lí 2. Cho hàm số y = f(x) có đạo hàm cấp hai trên<br />
khoảng K = (x 0 - h ; x 0 + h)<br />
Nếu f'(x 0 ) = 0, f''(x 0 ) > 0 thì x 0 là điểm cực tiểu của hàm số f(x).<br />
- Nếu f'(x 0 ) = 0, f''(x 0 ) < 0 thì x 0 là điểm cực đại của hàm số f(x).<br />
4. Quy tắc tìm cực trị<br />
• Quy tắc 1<br />
- Tìm tập xác định.<br />
- Tính f'(x). Tìm các điểm tại đó f'(x)=0 hay f'(x) không xác<br />
định.<br />
- Lập bảng biến thiên<br />
• Quy tắc 2<br />
- Tìm tập xác định.<br />
- Tính f'(x). Tìm các nghiệm x 0 của phương trình f'(x 0 )=0.<br />
- Tính f''(x 0 ) và từ f''(x 0 ) suy ra tính chất cực trị của các điểm .<br />
f''(x 0 ) > 0 thì x 0 là điểm cực tiểu của hàm số f(x).<br />
f''(x 0 ) < 0 thì x 0 là điểm cực đại của hàm số f(x).<br />
(Chú ý: nếu f''(x 0 )=0 thì ta phải dùng quy tắc 1 để xét cực trị tại )<br />
7
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Các bước tìm cực trị hàm a*sin(b*x+c)<br />
▪Bước 1: Miền xác định D=R<br />
▪Bước 2: Tính đạo hàm f′(x), rồi giải phương trình f′(x)= 0<br />
Xét ab<br />
f′(x)= a*b*cos(b*x+c)<br />
▪Bước 3:Tính đạo hàm f′′<br />
ab=0 thì f(x) không có cực trị<br />
ab≠0 thì giải cos(bx+c)=0<br />
x= π 2b + kπ<br />
b<br />
Tính f′′(x 0 ) rồi đua ra kết luận<br />
dựa vào định lý 2<br />
− c b<br />
y′= −6cos(3x+5)<br />
Ví dụ y= −2sin(3x+5)<br />
y′=0 => 3x+5= π 2<br />
3x+5= π 2 − π<br />
y′′=18sin(3x+5)<br />
y′′( π<br />
− 5 ) = 18 >0<br />
2∗3 3<br />
y′′( π 6 − π 3 − 5 3 )=−18
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
y’=6*cos(2*x+3)<br />
Vd: y=3*sin(2*x+3)<br />
y’=0 => x=−3 2 + π 4<br />
x= −3<br />
2 − π 4<br />
y’’=-12*sin(2*x+3)<br />
y’’(− 3 2 + π 4 )=-12*sin(π 2 )=-12 < 0 => x=− 3 2 + π 4<br />
là điểm cực đại<br />
y’’(− 3 − π 2 4 )=-12*sin(π − π) = 12 > 0 =>x=− 3 − π 2 2 4<br />
cực tiểu<br />
Hàm số đạt cực đại tại x=− 3 + π với giá trị cực đại=3<br />
2 4<br />
Hàm số đạt cực tiểu tại x= −3<br />
với giá trị cực tiểu=-3<br />
2 − π 4<br />
là điểm<br />
c)Thuật toán<br />
function timcuctri<br />
clc<br />
syms x<br />
disp('Chuong trinh tim cuc tri cua ham<br />
f=asin(bx+c)');<br />
a=input('Nhap a: a=');<br />
b=input('Nhap b: b=');<br />
c=input('Nhap c: c=');<br />
f=a*sin(b*x+c);<br />
if a*b~=0<br />
%g la dao ham cap 1 cua f, h la dao ham cap 2 cua f<br />
g=diff(f,x,1);<br />
h=diff(f,x,2);<br />
f0=b*x+c;<br />
%Phuong trinh g=0 cho hai nghiem b*x+c=pi/2 va<br />
b*x+c=-pi/2<br />
9
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
x1=solve(f0-pi/2,x);<br />
x2=solve(f0+pi/2,x);<br />
x0=[x1 x2]; %Tao mang x0 gom 2 nghiem x1 va x2<br />
%Xac dinh cuc dai, cuc tieu<br />
for i=1:length(x0)<br />
y0=subs(f,x,x0(i)); %Tinh gia tri cua f tai x0<br />
h0=subs(h,x,x0(i)); %Tinh gia tri cua dao ham<br />
cap 2 cua f tai x0<br />
if h0>0<br />
%Neu h0>0 thi tai x0 ham dat cuc tieu<br />
fprintf('Ham dat gia tri cuc tieu tai:<br />
x='); disp(x0(i));<br />
fprintf('Gia tri cuc tieu la: ymin=');<br />
disp(y0);<br />
elseif h0
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
c)Ví du ̣matlab:<br />
11
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
PHẦN III:<br />
<strong>BÀI</strong> TOÁN 2<br />
∗∗∗<br />
Cho hàm y=y(x) xác định bởi phương trình tham số y=y(t), x=x(t) và giá trị n.<br />
Viết đoạn code tính đạo hàm cấp n của y<br />
Thuật toán :<br />
syms l t daoham<br />
x=input('Nhap bieu thuc x, x=');<br />
y=input('Nhap bieu thuc y, y=');<br />
n=input('Nhap cap dao ham, n=');<br />
if n>0<br />
for l=1:n<br />
a=diff(y,t);<br />
daoham=a/diff(x,t);<br />
y=daoham;<br />
end<br />
disp('Dao ham can tinh la'), disp(y)<br />
else disp('Khong co dao ham')<br />
end<br />
12
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
vd:<br />
[y(x)]’=<br />
y(t)=t-1<br />
x(t)=t+1<br />
n=1<br />
[y(t)]′<br />
[x(t)]′ =1<br />
Ví du ̣matlab:<br />
13
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Chọn 1 đề tính giới hạn bất kì trong chương trình học . Sau đó dùng hàm trong<br />
matlab để giải.<br />
Thuât ̣ toán<br />
clc;<br />
syms x<br />
f =(sin(x))/(x);<br />
y= limit(f,x,0);<br />
t=char(y);<br />
text="gioi han cua ham so la";<br />
disp(text);disp(t);<br />
Vd:<br />
Tìm giới hạn của hàm: f(x) =<br />
Lời giải:<br />
sin (x)<br />
x<br />
(khi x-> 0)<br />
lim<br />
x→0<br />
sin (x)<br />
x<br />
= lim<br />
x→0<br />
x<br />
x =1<br />
14
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Ví du ̣matlab:<br />
15
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Chọn 1 đề Tính đạo hàm bất kì trong chương trình học . Sau đó dùng hàm trong<br />
matlab để giải.<br />
Thuât ̣ toán<br />
disp(' Tinh dao ham:(2*x^2+x^3-cos(x))/(7*x^(1/3))<br />
(giaitich1/vd 3.1.2) ')<br />
syms x ;<br />
y= (2*x^2+x^3-cos(x))/(7*x^(1/3));<br />
disp('Dap an la: ')<br />
u =(diff(y,x))<br />
vd:y= 2∗x^2+x^3−cos(x)<br />
7∗x^(1/3)<br />
y’=<br />
cos (x)<br />
21∗x<br />
4<br />
3<br />
+<br />
2 5<br />
sin (x) 3<br />
7∗x 1/3+10∗x 21 +8∗x 3<br />
21<br />
16
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Ví du ̣matlab:<br />
17
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Chọn 1 đề tính tích phân bất kì trong chương trình học . Sau đó dùng hàm trong<br />
matlab để giải.<br />
Thuât ̣ toán<br />
disp(' Tinh tich phan: dx/(cosx)^2, x[pi/6;pi/4] (giaitich1/vd<br />
4.7.4) ')<br />
syms x;<br />
y= 1/(cos(x))^2;<br />
disp('Dap an la: ')<br />
int(y,x,pi/6,pi/4)<br />
vd: ∫<br />
π<br />
4<br />
π<br />
6<br />
1<br />
(cos(x))^2<br />
dx=tan (x)<br />
π<br />
4<br />
π<br />
6<br />
=1- √ 3<br />
3<br />
18
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Ví du ̣matlab:<br />
19
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
Chọn 1 đề Tính diện tích miền phẳng bất kì trong chương trình học . Sau đó<br />
dùng hàm trong matlab để giải.<br />
Thuât ̣ toán<br />
disp(' Tinh dien tich hình phang:y=4*x-x^2 voi doan<br />
[4,6] ')<br />
syms x<br />
f=4*x-x^2;<br />
y=int(abs(f),4,6);<br />
disp('dien tich mien phang la ');<br />
disp(y);<br />
vd: y=4*x-x^2 với trục ox<br />
hoành độ giao điểm giữa y với Ox=> x=0 hoặc x=4<br />
6<br />
∫ (4 ∗ x − x^2)dx=(2*x^2 - 1 4<br />
3 x3 ) 6 4 =32 3<br />
Ví du ̣matlab:<br />
20
BÁO CÁO BÀI TẬP LỚN GIẢ I TIĆH 1<br />
21