1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo Phương Pháp tính thầy Phùng Trọng Thực Đai Học BK HCM Bai 18

6 113 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 181,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo Phương Pháp tính thầy Phùng Trọng Thực Đai Học BK HCM chi tiết nhất có hình vẽ bằng matlab....................................................................................................... xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Trang 1

Đề bài: Sử dụng một phần mềm máy tính trợ giúp người dùng nhập vào toạ độ 6

điểm  X ,Y1 1

, X ,Y2 2 , ,  X ,Y6 6 trong mặt phẳng và xuất ra giá trị A và B sao cho tổng bình phương khoảng cách từ 6 điểm này đến đường thẳng Y = A + BX là nhỏ nhất Yêu cầu này có gì khác phương pháp bình phương nhỏ nhất học trong chương trình?

Trả lời:

Thuật toán và source code

- Trong mặt phẳng xOy cho 6 điểm  X ,Y1 1

, X ,Y2 2 , ,  X ,Y6 6 và đường thẳng Y = A + BX Bài toán tìm A,B sao cho tổng bình phương khoảng cách

từ 6 điểm này đến đường thẳng Y = A + BX là nhỏ nhất đưa và về việc tìm cực tiểu của phiến hàm

  6  2 2

k k k

A Bx y

B

- Bài toán quy về việc tìm cực tiểu của hàm hai biến g A,B  Tọa độ điểm dừng được xác định từ hệ

 

 

0 0

g' A g' B

- Việc xác định g' A  và g' B  không quá khó, ta sử dụng công thức:

  6  2 2

k k k

A Bx y

g A,B

B

- Ta chạy vòng lặp từ 1 đến 6 để tính tổng trên:

fAB = 0;

f = (yk - A - B*xk)^2/(1+B^2);

for i=1:length(x)

fAB = fAB + subs(f,{xk yk},{x(i) y(i)});

end

Trang 2

- Ta tính g' A  và g' B 

f1 = diff(fAB,A);

f2 = diff(fAB,B);

- Dùng lệnh solve để tìm tọa độ các điểm dừng

ng = solve(f1,f2,A,B);

- Sau khi có tọa độ các điểm dừng, ta thế vào

6

2

k k k

A Bx y

B

tìm cực tiểu gmin = inf;

for i = 1:length(ng.A)

fab = subs(f,{A B},{ng.A(i) ng.B(i)});

sum = 0;

for j = 1:length(x)

sum = sum + subs(fab,{xk yk},{x(j) y(j)});

end

if gmin > sum

gmin = sum;

Amin = ng.A(i);

Bmin = ng.B(i);

end

end

- Vẽ hình để kiểm chứng kết quả

hold on

for i=1:length(x)

plot(x(i),y(i),'-*r','Markersize',10);

end

X = linspace(min(x)-1,max(x)+1,10);

Trang 3

- Xuất kết quả:

fprintf('Y = %.4f + %.4fX\n',A,B);

Source code

%ppt

clc; clear;

syms AByk xk xk2yk2xkyk;

disp('Nhap vao toa do 6 diem');

disp('Nhap hoanh do co dang: x = [x1 x2 x3 x4 x5 x6]')

x = input('x = ');

disp('Nhap tung do co dang: y = [y1 y2 y3 y4 y5 y6]')

y = input('y = ');

% x1 = input('Nhap x1: ');

% y1 = input('Nhap y1: ');

% x2 = input('Nhap x2: ');

% y2 = input('Nhap y2: ');

% x3 = input('Nhap x3: ');

% y3 = input('Nhap y3: ');

% x4 = input('Nhap x4: ');

% y4 = input('Nhap y4: ');

% x5 = input('Nhap x5: ');

% y5 = input('Nhap y5: ');

% x6 = input('Nhap x6: ');

% y6 = input('Nhap y6: ');

% x = [x1 x2 x3 x4 x5 x6];

% y = [y1 y2 y3 y4 y5 y6];

fAB = 0;

f = (yk - A - B*xk)^2/(1+B^2);

for i=1:length(x)

fAB = fAB + subs(f,{xk yk},{x(i) y(i)});

end

f1 = diff(fAB,A);

Trang 4

f2 = diff(fAB,B);

ng = solve(f1,f2,A,B);

gmin = inf;

for i = 1:length(ng.A)

fab = subs(f,{A B},{ng.A(i) ng.B(i)});

sum = 0;

for j = 1:length(x)

sum = sum + subs(fab,{xk yk},{x(j) y(j)});

end

if gmin > sum

gmin = sum;

Amin = ng.A(i);

Bmin = ng.B(i);

end

end

A = double(Amin);

B = double(Bmin);

hold on

for i=1:length(x)

plot(x(i),y(i),'-*r','Markersize',10);

end

X = linspace(min(x)-1,max(x)+1,10);

plot(X,A+B*X,'b');

fprintf('Y = %.4f + %.4fX\n',A,B);

Trả lời câu hỏi: Yêu cầu này có gì khác phương pháp bình phương nhỏ nhất học trong chương trình?

Phương pháp trình bày ở trên và phương pháp bình phương nhỏ nhất đều có mục

đích tìm cực tiểu của hàm mục tiêu Đối với hàm số f (x) = A + Bx được học trong

chương trình có có hàm mục tiêu là    2

k k

g A,BA Bx  y đơn giản hơn so với

hàm mục tiêu của phương pháp trình bày ở trên , cụ thể hàm mục tiêu có dạng

Trang 5

   1 2 2

k k

A Bx y

g A,B

B

 Việc này dẫn đến tìm A,B khó hơn , sinh ra thêm một

điểm dừng

Ví dụ :

1)

X = [1.3 1.8 1.9 2.5 2.8 3.3]

Y = [1.6 1.9 2.5 2.7 3.5 3.9]

2)

Trang 6

X = [2.5 2.8 3.4 3.66 4.5 4.8]

Y = [1.8 2.68 3.5 3.7 4.98 5.2]

Ngày đăng: 01/07/2020, 23:46

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w