04.02.2019 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!