MATLAB LECTURE - Trang 35

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

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.