TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN
BÀI TIỂU LUẬN MÔN TIN HỌC ỨNG DỤNG
GVHD: PHAN CÔNG THỊNH
Bài 6.1: Tìm nghiệm của phương trình bậc bốn:
1,5x4+3x3 -12x2+4,5=0
Giải:
Ta thực hiện chuỗi lệnh:
p=[1.5 3 -12 0 4.5];
x=roots(p)
Kết quả là: x1=-3,9681; x2=1,8502; x3=0,7009; x4=-0,5803.
Bài 6.2: giải phương trình 5xsinx3 =0 bằng phương pháp đồ
thị trên đoạn [0,5 , 2].
Giải:
Trước hết ta thực hiện chuỗi lệnh vẽ đồ thị hàm số vế trái của
phương trình, cho x biến thiên trong khoảng 0,5 đến 2.
x=0:.01:3;
f=5*x.*sin(x.^3);
plot(x,[f;zeros(size(f))]);
sau khi nhận được đồ thị ta gõ tiếp lệnh:
ginput
Khi xuất hiện dấu thập, ta đưa dấu này đến các điểm cắt giữa
đồ thị và trục hoành ấn chuột trái trái tại điểm đó, sau đó thực
hiện lệnh:
nx=length(x);w=1:nx-1;
x(find(f(w).*f(w+1)<0|f(w)==0))
Kết quả ta nhận được 2 nghiệm: x1=1,46; x2=1,84 .
Bài 6.3: giải phương trình 3xsinx2 =0 bằng lệnh fzeros.
Giải:
Ta thực hiện cú pháp:
x1=fzeros(‘3*x.*sin(x.^2)’,1.0)
x2=fzeros(‘3*x.*sin(x.^2)’,2.0)
x3=fzeros(‘3*x.*sin(x.^2)’,3.0)
kết quả nhận được là: x1=1,7725; x2=1,7725; x3=3,07
Bài 6.4: tìm nghiệm của hệ 4 phương trình sau:
2,3x1+3,4x3+5,2x4=8
2x1+1,2x2+6x4=6
x2-2,6x3+4x4=5
x1+3x2+4x3-4x4=12
Giải:
Trước hết cần thiết lập ma trận các hệ số A của phương trình
và ma trận các số hạng tự do b của vế phải, sau đó thực hiện
phép chia ma trận x=A\b.
Ta thực hiện chuỗi lệnh sau:
A=[2.3 0 3.4 5.2;2 1.2 0 6;0 1 -2.6 4;1 3 4 -4];
b=[8;6;5;12];
x=A\b
kết quả là: x1=-6,614; x2=4,7239; x3=3,3709; x4=2,2601
Bài 6.5: giải hệ phương trình phi tuyến sau:
2x1+sinx2=e-x1
-cosx1+2x2=e-x2
Giải:
Trước hết ta thiết lập một m.file bằng việc nhập chuỗi lệnh
sau:
function F= bai65(x)
F=[2*x(1)+sin(x(2))-exp(-x(1));
-cos(x(1))+2*(x(2))-exp(-x(2))];
Sau khi cất bài vào dữ liệu với tên là bai65.m ta tiến hành giải
bài toán với lệnh sau:
x0=[1;1];
options=optimset('display','off');
x=fsolve('bai65',x0,options)
kết quả là: x1=0,1115; x2=0,7363.
Bài 6.6: tìm nghiệm của phương trình:
F(x)=x6+x4-x2+1,5e2x-5,4
Trước hết ta thảo một script có tên là bai66 như sau:
function F=bai66(x)
f=x^6+x^4-x^2+1.5*exp(2*x)-5.4
Đem cất hàm này vào thư mục với tên của chính hàm bai66.m
Để giải tiếp bài toán, ta thực hiện chuỗi lệnh sau:
Options=optimset(‘fzero’);
x0=-1; % giá trị xuất phát
x=fzero(‘bai66’,x0,options)
kết quả là: x=-1,2738
Bài 6.7: giải hệ phương trình phi tuyến sau:
f(x)=
Giải: trước hết ta soạn một script trong đó khai báo hàm f với
tên là ‘bai67’ và cất vào m.file với tên của chính hàm:
Function f=bai67(x)
F=[(x(1)^4)+2.4*(x(2)^2)-cos(x(2)),exp(-1.5*
+2.7*x(2)-2.2*sin(x(1))];
(x(1)))
Sau khi đã cất hàm ta gõ chuỗi lệnh:
x0=[1 1];
options=optimset(‘fsolve’);
options=optimset(options,’display’,’iter’);
[x,y,h]=fsolve(‘bai67’,x0,options)
Kết quả hiển thị trên màn hình:
Norm of
First-order Trust-region
Iteration Func-count
radius
0
3
9.32683
1
6
0.341164
2
9
0.00579042
f(x)
0.453983
0.135602
step
optimality
19
1
1.88
1
0.246
1.13
3
1.13
12
2.48475e-06
0.0218041
0.00481
4
1.13
15
5.70716e-13
0.000477107
2.33e-06
5
1.13
18
3.54637e-26
2.27883e-07
5.67e-13
x=
0.7859
0.4625
y=
1.0e-12 *
0.1865 0.0260
h=1
Bài 6.8: tim cực trị của hàm 2 biến:
F(x)=;
Với các điều kiện ràng buộc sau:
x1x2 - x1 - x2 -1,5;
x1x2 -10
Giải:
Ta viết hàm m.file cho hàm f(x) lưu dưới tên ‘bai68.m’
function F= bai68(x)
F=exp(x(1))*[(4*(x(1)^2))
+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1];
Ta viết m.file cho điều kiện ràng buộc lưu với tên
‘rangbuoc’.m
function [c, ceq]=rangbuoc(x)
c=[1.5-x(1)-x(2)+x(1)*x*(2);
x(1)*x(2)+10 ];
Ceq=[];
Thực hiện chuỗi lệnh sau:
x0=[-0.2];
options=optimset('LargeScale','off');
[x,fval,exitflag]=fmincon(‘bai68',x0,[],[],[],[],[],
[],‘rangbuoc',options)
Bài 7.1: hãy xác định tổng của vecto b=1:10 và vecto tổng các
số hạng đầu tiên của nó.
Giải:
Nếu ta sử dụng hàm sum(a) thì phép tính sẽ là:
n=1+2+3+4+5+6+7+8+9+10=55;
Hàm
cumsum(a)
sẽ
cho
vecto:
m=(1,1+2,1+2+3,1+2+3+4,1+2+3+4+5,1+2+3+4+5+6,1+2+3
+4+5+6+7,1+2+3+4+5+6+7+8,1+2+3+4+5+6+7+8+9,1+2+3
+4+5+6+7+8+9+10).
Thực hiện lệnh MATLAB:
>>a=1:10;
n=sum(b)
m=cumsum(b)
Kết quả là:
n =55
m =1
3
6
10
15
21
28
36
45 55
Bài 7.2: Vẽ đồ thị hàm tổng của vecto b trong dải 1: 10 .
Giải:
Ta thực hiện lệnh vẽ đồ thị của biến a và b:
b=1:10;
a=cumsum(b);
plot(b,b,b,a)
grid
kết quả là:
Bài 7.3: Xác đinh tích của vecto b=1:5 và vecto của tích các
phần tử đâu tiên của nó.
Giải:
Để xác định tích của các phần tử của mảng MATLAB ta sử
dụng hàm prod(b) và hàm cumprod(b).
Cú pháp lệnh:
b=1:5;
e= prod(b)
f=cumprod(b)
Kết quả là:
e =120
f=1
2
6
24 120
Bài 7.4: xác định giá trị và vẽ đồ thị của tích:
y=
Giải: để xác định tích của chuỗi, sau khi khai báo ta áp dụng
lệnh cumprod
n=20;
k=2:n;
a=1-2./k.^2;
cp=cumprod(a);
cp(end)
plot(cp/.5),grid;
xlable(‘k’);ylable(‘cp’);
title(‘\pi_{i=2}^n{(1}{-2}/{k^2)}’);
kết quả là: 0,2392
Bài 7.5: tìm giá trị giai thừa của số m!, với m=4.
Giải:
4!=1.2.3.4=24
Để xác định giai thừa của một số m, ta có thể dùng
lệnh:prod(1:m).
Ta thực hiện lệnh sau:
m=4;
prod(1:m)
Kết quả là: 4!= 24
Bài 7.6: xác định tích phân sau:
I=
Theo phương pháp: hình chữ nhật, hình thang,Simpson.
Giải:
n=100;
h=3/n;
x=h/2:h:3;
f=0.2*x./(1+exp(x));
hinhchunhat=sum(h*f)
hinhthang=trapz(x,f)
Simpson=quad('0.2*x./(1+exp(x))',eps,4)
Kết quả là: I=0,1255; I=0,1251; I=0,1463.
Bài 7.7: xác định tích phân hai lớp trong khoảng -5x5; -5y5.
I= dxdy
Giải:
Trước hết ta vẽ đồ thị hàm tích phân với các lệnh sau:
h=0.1;
x=-5:h:5;
[x,y]=meshgrid(x);
f=cos(x.^2+y.^2).*exp(-x*y);
surfl(x,y,f);
colormap autumn
shading interp
Để tính tích phân ta thực hiên chuỗi lệnh:
h=0.05;
x=h/5:h:5;
[x,y]=meshgrid(x);
f=cos(x.^2+y.^2).*exp(-x*y);
format short
4*h^2*sum(f(:))
Kết quả là: I=0
Bài 7.9: cho hai đa thức f(x) và g(x) với: f(x)=6x2-3x+1 và
g(x)=x2-5.
Hãy thực hiện các phép:
a) nhân đa thức; b) chia đa thức; c) cộng đa thức.
Giải:
Nhân hai đa thức:f(x).g(x)= x2(6x2-3x+1)-5(6x2-3x+1)
= 6x4-3x3-29x2+15x-5.
Thực hiện lệnh matlab:
f=[6 -3 1];
g=[1 0 -5];
c=conv(f,g)
kết quả là:
c = 6 -3 -29 15 -5
Chia hai đa thức:
=6Thực hiện lệnh matlab:
f=[6 -3 1];
g=[1 0 -5];
[p,r]=deconv(f,g)
Kết quả là:
p=6
r=0
-3
31
Cộng hai đa thức: f(x)+g(x)= 6x2-3x+1+x2-5
=7x2-3x-4
Thực hiện lệnh matlab:
f=[6 -3 1];
g=[1 0 -5];
addpoly(f,g)
Kết quả là:
Bài 7.10: hãy lấy tích phân của hàm f=sinx..
Giải:
Đặt I=f
Dùng pp tích phân từng phần:
Đặt u=sinxdu=cosxdx
dv=dx v=
suy ra I = sinx.đặt I1=
tiếp tục dùng tích phân từng phần
suy ra I1=+
=
+I
Thay vào I ta được:
I=sinx.--I
= .
Bài 7.11: lấy đạo hàm của hàm: f=sinx..
Giải:
F’(x)=()’.sinx+.(sinx)’
= .sinx+.cosx
=(sinx+cosx)
Bài 7.12: hãy lấy giới hạn:
Giải:
=
=
= =
Bài 7.13: hãy đặt thành thừa số chung của đa thức:
P=6x4-3x3+5x2+2x
Giải: đặt x làm thừa số chung, ta được:
P=x(6x3-3x2+5x+2)
Bài 7.14: hãy khai trển đa thức:
B=(x+1)(x2-x+1)
Giải:
B=x3-x2+x+x2-x+1
=x3+1
Bài 7.15: hãy đơn giản hóa biểu thức: y=2cos2x+sin2x.
Giải:
Ta có: cos2x+sin2x=1
Suy ra: y= cos2x+ cos2x +sin2x
= cos2x+1.
Bài 7.16: giải phương trình vi phân xy’-y=x 2cosx, với điều
kiện đầu: y(0)=0.
Giải:
Ta thực hiện lệnh:
syms y
dsolve(‘(dy)*(x)-y=x^2*cos(x)’, ‘y(0)=0’)
kết quả là: x2..
Bài 7.17: giải phương trình vi phân cấp hai: y’’=.
Giải:
Ta thực hiện lệnh sau:
syms x y
y=dsolve(‘(d2y)=(sin(x)*(cos(x)^2))-sin(3*(x))’)
kết quả là: y=
Bài 7.18: giải các phương trình vi phân hai biến:
x’=7x-3y
y’=3x+7y
với các điều kiện ban đầu: x(0)=0 và y(0)=1.
Giải:
Ta thực hiện lệnh sau:
S=dsolve('Dx=7*x-3*y','Dy=3*x+7*y','x(0)=0,y(0)=1')
x=S.x % lưu ý không phải dấu (*) , mà là dau(.)
y=S.y
kết quả là:
x=-sin3t.
y=cos3t.
Bài 7.19: hãy thực hiện phép chuyển đổi Laplace hàm số sau:
f = 5;
Giải:
Áp dụng công thức bảng đối chiếu gốc ảnh:
;
Suy ra: F=
Bài 7.20: hãy thực hiện phép chuyển đổi ngược kết quả của
bài 7.19 trên:
Giải:
Ta có: F=
Dùng công thức chuyển đổi bài 7.19, ta được kết quả:
f=