16/09/2015
4
Nguyen Quang Hoang
Department of Applied Mechanics
Mịn hóa bằng đa thức
13
>> n=2; % Xap xi bac 2
>> p = polyfit(x,y,n)
>> a=p(1); b=p(2);
>> c = p(3);
>> w = a*x.^2+b*x+c;
>> e = w-y;
>> S2= sum(e.*e)
S2 = 15.4079
>> n=3; % Xap xi duong bac 3
>> p = polyfit(x,y,n)
>> a=p(1); b=p(2);
c = p(3); d = p(4);
>> w = a*x.^3+b*x.^2+c*x+d;
>> e = w-y;
>> S3= sum(e.*e)
S3 = 2.7933
0
1
2
3
4
5
6
7
100
150
200
250
300
350
x
y
0
1
2
3
4
5
6
7
100
150
200
250
300
x
y
Nguyen Quang Hoang
Department of Applied Mechanics
Mịn hóa bằng hàm e mũ
14
ax
y
be
ln
ln
y
ax
b
1
2
w
p z
p
T
rong nhiều trường hợp khi mịn hóa bằng đa thức không đáp ứng được
yêu cầu đặt ra, ta cần phải tìm một phương án khác. Biểu diễn các số liệu
thông qua hàm e mũ là một phương án nên được xem xét. Giả sử bộ số
liệu (x,y) có thể lấy xấp xỉ bằng hàm
Bây giờ ta cần tìm hai hệ số a và b để các điểm dữ liệu nằm gần đường
cong nhất. Nếu áp dụng trực tiếp phương pháp sai số bình phương bé
nhất ta sẽ được một hệ phương trình phi tuyến đối với các ẩn a và b. Để
tránh điều đó, ta lấy lôgarit cơ số tự nhiên hai vế được
Đặt w = ln(y), z= x và p1 = a và p2 = ln(b) bài toán trở thành tìm các hệ số
p1, p2 để xấp xỉ các số liệu (z, w) = (x, ln(y)) bằng đường thẳng
Nguyen Quang Hoang
Department of Applied Mechanics
Mịn hóa bằng hàm e mũ
15
x
1.2
2.8
4.3
5.4
6.8
7.9
y
7.5
16.1
38.9
67.0
146.6
266.2
Nhập số liệu vào Matlab
>> x = [1.2 2.8 4.3 5.4 6.8 7.9];
>> y = [7.5 16.1 38.9 67.0 146.6 266.2];
1
2
3
4
5
6
7
8
0
50
100
150
200
250
300
x
y
Ví dụ xét bộ số liệu sau
>> plot(x,y,'ko', x,y,
'k-'),
grid on, xlabel('x'),
ylabel('y‘)
Nguyen Quang Hoang
Department of Applied Mechanics
Mịn hóa bằng hàm e mũ
16
Xấp xỉ bằng hàm e mũ
>> p = polyfit(x,log(y),1)
p =
0.5366 1.3321
>> a = p(1); b=exp(p(2));
>> w = b*exp(a*x);
>> err = w-y;
>> S3= sum(err.*err)
Se = 17.6259
>> x3 = [0:0.1:8];
>> y3 = b*exp(a*x3);
>> plot(x,y,'ko', x3,y3, 'k-'),
grid on, xlabel('x'),ylabel('y')
0
1
2
3
4
5
6
7
8
0
50
100
150
200
250
300
x
y