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

Đề tài dùng matlab Để xây dựng giao diện và giải phương trình bậc 2

12 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Dùng Matlab Để Xây Dựng Giao Diện Và Giải Phương Trình Bậc 2
Tác giả Nguyễn Văn Trung, Nguyễn Công Huy
Người hướng dẫn TS. Đỗ Đình Hưng
Trường học Trường Đại Học Mở Hà Nội
Chuyên ngành Điện – Điện Tử
Thể loại Bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 12
Dung lượng 677,27 KB

Nội dung

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘIKHOA ĐIỆN – ĐIỆN TỬ BÀI TẬP LỚN MÔN HỌC: MATLAB & ỨNG DỤNG ĐỀ TÀI: DÙNG MATLAB ĐỂ XÂY DỰNG GIAO DIỆN VÀ GIẢI PHƯƠNG TRÌNH BẬC 2 Giảng viên hướng dẫn: TS.Đỗ Đình H

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

KHOA ĐIỆN – ĐIỆN TỬ

BÀI TẬP LỚN MÔN HỌC: MATLAB & ỨNG DỤNG

ĐỀ TÀI: DÙNG MATLAB ĐỂ XÂY DỰNG GIAO DIỆN VÀ GIẢI

PHƯƠNG TRÌNH BẬC 2

Giảng viên hướng dẫn: TS.Đỗ Đình Hưng

Lớp học phần: K25 – ĐT2

Nhóm thực hiện: 3

Hà Nội, Tháng 11 năm 2024

Trang 2

Mục Lục

I Khái quát về phần mềm MATLAB 4

1 Công cụ và tính năng chính 4

2 Ưu, nhược điểm của MATLAB 5

II Xây dựng giao diện giải phương trình bậc 2 6

Code view 8

1 số kết quả sau khi khởi chạy chương trình 10

III Kết luận 12

1 Những kinh nghiệm thu được 12

2 Ứng dụng trong tương lai 12

Trang 3

Lời nói đầu

Phương trình bậc hai là một công cụ toán học quan trọng, được ứng dụng rộng rãi trong nhiều lĩnh vực của cuộc sống Tuy nhiên, việc giải phương trình bậc hai bằng tay có thể tốn thời gian và dễ mắc lỗi Với sự phát triển của công nghệ thông tin, việc xây dựng các ứng dụng hỗ trợ giải toán đã trở nên phổ biến Nhóm thực hiện đề tài này hướng đến việc xây dựng một giao diện đồ họa người dùng (GUI) bằng MATLAB để giải phương trình bậc hai Mục tiêu cung cấp một công cụ trực quan, dễ sử dụng, giúp người dùng nhanh chóng và chính xác tìm

ra nghiệm của phương trình bậc hai

Giao diện sẽ được thiết kế với các chức năng cơ bản như nhập liệu hệ số của phương trình, tính toán nghiệm, hiển thị kết quả trên giao diện Trong quá trình thực hiện đề tài không tránh khỏi những sai sót, nhóm mong sẽ nhận được sự góp ý

và đánh giá của thầy

Xin chân thành cảm ơn !

3

Trang 4

I Khái quát về phần mềm MATLAB

MATLAB (Matrix Laboratory) là một phần mềm mạnh mẽ được phát triển để phục

vụ các nhu cầu tính toán khoa học, kỹ thuật, và mô phỏng Nó có thể xử lý các phép toán ma trận, vẽ đồ thị, phát triển các thuật toán, tạo giao diện người dùng và giao tiếp với các chương trình viết bằng các ngôn ngữ khác như C, C++, Java, và Python MATLAB được sử dụng rộng rãi trong các ngành công nghiệp kỹ thuật, nghiên cứu học thuật và các lĩnh vực như xử lý tín hiệu, mô phỏng hệ thống động lực học, học máy, và nhiều hơn nữa

1 Công cụ và tính năng chính

 Tính toán ma trận và đại số tuyến tính: MATLAB được xây dựng để tối

ưu hóa các phép toán ma trận, giúp thực hiện các phép tính đại số tuyến tính một cách hiệu quả

 Môi trường phát triển tích hợp (IDE): MATLAB cung cấp một môi

trường phát triển tích hợp mạnh mẽ, với công cụ lập trình và gỡ lỗi, giúp dễ dàng phát triển, chạy và kiểm tra mã

 Vẽ đồ thị và trực quan hóa dữ liệu: MATLAB có khả năng trực quan hóa

mạnh mẽ, từ các đồ thị 2D, 3D, đến các biểu đồ phức tạp Điều này giúp người dùng dễ dàng phân tích và diễn giải dữ liệu

 Toolboxes: MATLAB hỗ trợ một loạt các "toolbox" – những gói công cụ

chuyên biệt cho các lĩnh vực như xử lý ảnh, tín hiệu, tài chính, học máy, thống kê, và nhiều lĩnh vực khác

 Simulink: Đây là một nền tảng mở rộng của MATLAB dùng để mô phỏng

các hệ thống động lực học bằng sơ đồ khối, rất hữu ích trong việc thiết kế hệ thống điều khiển và mô hình hóa các quá trình công nghiệp

 Học máy và trí tuệ nhân tạo: MATLAB hỗ trợ các thuật toán và công cụ

học máy, giúp người dùng phát triển và triển khai các mô hình học máy nhanh chóng

 Tích hợp với ngôn ngữ lập trình khác: MATLAB có khả năng tương thích

và tích hợp tốt với các ngôn ngữ khác như C/C++, Python, Java và Fortran, giúp mở rộng ứng dụng của nó

Trang 5

2 Ưu, nhược điểm của MATLAB

a) Ưu điểm

 Mạnh về tính toán ma trận:

MATLAB là một trong những phần mềm tốt nhất cho các bài toán liên quan đến ma trận, đại số tuyến tính và các phép tính số phức tạp Các hàm tích hợp sẵn giúp tiết kiệm thời gian và công sức khi thực hiện các phép toán này

 Môi trường phát triển mạnh mẽ:

MATLAB cung cấp một môi trường phát triển tích hợp dễ sử dụng, với các công cụ hỗ trợ lập trình, gỡ lỗi và kiểm tra mã Điều này làm cho MATLAB trở thành lựa chọn lý tưởng cho cả người mới học và các nhà phát triển chuyên nghiệp

 Khả năng trực quan hóa mạnh:

MATLAB có công cụ vẽ đồ thị và trực quan hóa dữ liệu mạnh mẽ, giúp người dùng dễ dàng tạo ra các biểu đồ và đồ thị phức tạp, từ các biểu đồ 2D, 3D cho đến các hình ảnh động, phù hợp cho phân tích và báo cáo kết quả

 Hệ sinh thái phong phú với nhiều công cụ mở rộng (Toolboxes):

Với nhiều "toolbox" chuyên dụng, MATLAB có thể được mở rộng cho các lĩnh vực khác nhau, từ học máy, xử lý tín hiệu, tài chính đến xử lý hình ảnh, sinh học tính toán, và nhiều lĩnh vực khác

 Tích hợp tốt với các ngôn ngữ khác:

MATLAB dễ dàng tích hợp với các ngôn ngữ lập trình khác như C, C++, Java, và Python Điều này giúp người dùng tận dụng các thư viện và công cụ

từ các ngôn ngữ khác, mở rộng thêm tính năng cho MATLAB

b) Nhược điểm

 Chi phí cao:

MATLAB là phần mềm thương mại và có giá rất cao, đặc biệt đối với các phiên bản dành cho doanh nghiệp và công nghiệp Các toolbox chuyên dụng cũng phải mua riêng, làm tăng chi phí

 Khả năng mở rộng hạn chế:

5

Trang 6

Mặc dù MATLAB hỗ trợ tích hợp với các ngôn ngữ lập trình khác, nhưng khi cần phát triển các ứng dụng lớn, phức tạp, các ngôn ngữ như Python, C+ + thường có lợi thế hơn do khả năng tối ưu hóa hiệu suất và khả năng mở rộng

 Tốc độ chậm đối với các ứng dụng lớn:

MATLAB không được tối ưu hóa cho tốc độ xử lý như các ngôn ngữ cấp thấp như C hoặc C++ Đối với các tính toán lớn hoặc cần hiệu suất cao, MATLAB có thể chạy chậm hơn

 Phụ thuộc vào giao diện đồ họa:

MATLAB có giao diện đồ họa mạnh mẽ, nhưng đối với những ứng dụng không cần đến giao diện hoặc khi cần làm việc trên các hệ thống không có GUI (giao diện người dùng đồ họa), MATLAB không phải là lựa chọn tối ưu

 Thiếu tính phổ biến trong cộng đồng mã nguồn mở:

So với Python, MATLAB không có cộng đồng mã nguồn mở mạnh mẽ Điều này hạn chế sự phát triển và đóng góp từ cộng đồng lập trình viên, cũng như việc truy cập các thư viện miễn phí

II Xây dựng giao diện giải phương trình bậc 2

 Trong MATLAB, có 3 công cụ chính để xây dựng 1 giao diện đó là : +) GUIDE (Graphical User Interface Development Environment)

+) Lập trình thủ công

+) App Designer

- Việc lựa chọn công cụ phù hợp phụ thuộc vào độ phức tạp của giao diện, yêu cầu

về tính tùy biến và kinh nghiệm của người dùng

- Trong đề tài xây dựng một giao diện giải phương trình bậc 2 này, chúng ta sẽ sử dụng công cụ App Designer để hoàn thành chương trình

- Dưới đây là màn hình làm việc của công cụ App Designer :

Trang 7

Giao diện của App Designer sẽ gồm 2 thành phần chính:

 Component Library: chứa các thành phần giao diện như Button, Label,

Edit Field, Drop-down,

 Design View: nơi bạn kéo thả các thành phần để thiết kế giao diện.

Để thêm các thành phần giao diện ta có thể kéo thả các thành phần từ Component Library và Design View

VD: Kéo một Button và Edit Field để tạo một nút và một trường nhập liệu Tùy chỉnh tên và các thuộc tính của thành phần (như Text, Name, Position, ) trong Component Browser hoặc Inspector

Khi một thành phần được chọn (ví dụ: Button), trong tab Code View, bạn có thể nhấp vào Add Callback để thêm hàm xử lý sự kiện

MATLAB sẽ tự động tạo một hàm để bạn viết mã, ví dụ: khi nhấn Button thì lấy

dữ liệu từ Edit Field và thực hiện tính toán

 Giao diện của chương trình “Giải phương trình bậc 2” sau khi được thiết kế:

7

Trang 8

 Code view:

classdef GPTB2 < matlab.apps.AppBase

% Properties that correspond to app components

properties (Access = public)

UIFigure matlab.ui.Figure

BitpMatlabPanel matlab.ui.container.Panel

ketquaLabel matlab.ui.control.Label

X2Output matlab.ui.control.Label

X1Output matlab.ui.control.Label

ketluanLabel matlab.ui.control.Label

inputb matlab.ui.control.NumericEditField

inputc matlab.ui.control.NumericEditField

inputa matlab.ui.control.NumericEditField

NhpcLabel matlab.ui.control.Label

X2Label matlab.ui.control.Label

X1Label matlab.ui.control.Label

closeButton matlab.ui.control.Button

clearButton matlab.ui.control.Button

tinhButton matlab.ui.control.Button

NhpbLabel matlab.ui.control.Label

NhpaLabel matlab.ui.control.Label

Giiphngtrnhbc2ax2bxc0Label matlab.ui.control.Label

end

% Callbacks that handle component events

methods (Access = private)

Trang 9

function tinhButtonPushed(app, event)

% Lấ3 y giá trị cu 7a a, b, c từ người dùng nhập

a = app.inputa.Value;

b = app.inputb.Value;

c = app.inputc.Value;

% Kiể7 m tra nể3 u a = 0, phương trình trơ 7 thành bậc 1

if a == 0

if b ~= 0

x1 = -c / b;

app.X1Output.Text = num2str(x1);

app.X2Output.Text = '' ;

app.ketquaLabel.Text = 'Phương trình bậc nhấ3 t' ;

else

app.ketquaLabel.Text = 'Không pha 7i là phương trình hợp lệ' ;

app.X1Output.Text = '' ;

app.X2Output.Text = '' ;

end

return ;

end

% Tính delta

delta = b^2 - 4*a*c;

% Kiể7 m tra các trường hợp cu 7a delta

if delta > 0

x1 = (-b + sqrt(delta)) / (2*a);

x2 = (-b - sqrt(delta)) / (2*a);

app.X1Output.Text = num2str(x1);

app.X2Output.Text = num2str(x2);

app.ketquaLabel.Text = 'Phương trình có 2 nghiệm phấn biệt' ; elseif delta == 0

x1 = -b / (2*a);

app.X1Output.Text = num2str(x1);

app.X2Output.Text = '' ;

app.ketquaLabel.Text = 'Phương trình có nghiệm kép' ;

else

app.ketquaLabel.Text = 'Phương trình vô nghiệm' ;

app.X1Output.Text = '' ;

app.X2Output.Text = '' ;

end

end

% Button pushed function: clearButton

function clearButtonPushed(app, event)

app.inputa.Value = 0;

app.inputb.Value = 0;

app.inputc.Value = 0;

app.X1Output.Text = '' ;

app.X2Output.Text = '' ;

app.ketquaLabel.Text = '' ;

end

9

Trang 10

function closeButtonPushed(app, event)

delete(app.UIFigure);

end

end

% Component initialization

methods (Access = private) ( )

% App creation and deletion

methods (Access = public) ( )

end

 1 số kết quả sau khi khởi chạy chương trình:

Trang 12

III Kết luận

1 Những kinh nghiệm thu được

- Nắm được kỹ năng lập trình cơ bản của MATLAB như các thao tác với biến và mảng Sử dụng các hàm và làm quen với cấu trúc điều khiển IF – ELSE

- Kỹ năng thiết kế giao diện app

- Tập trung vào trải nghiệm người dùng (giao diện trực quan, tương tác mượt

mà, tính nhất quán, …)

- Tinh thần trách nhiệm với công việc chung, thúc đẩy tư duy sáng tạo, phát triển kỹ năng cá nhân

2 Ứng dụng trong tương lai

-Tích hợp chương trình giải phương trình bậc 2 vào các ứng dụng học toán, giúp người học có thể nhanh chóng giải phương trình và nhận lời giải chi tiết, từ đó hiểu rõ từng bước giải quyết vấn đề

- Có thể thiết kế các sản phẩm đồ họa như logo, poster, giao diện web, ứng dụng,…Tạo ra các trải nghiệm người dùng tuyệt vời cho các sản phẩm kỹ thuật số

- Tham gia phát triển phần mềm, xây dựng các hệ thống thông tin, mạng máy tính

- Hỗ trợ thực hiện các phép tính phức tạp hoặc mô phỏng trong các lĩnh vực như vật lý, sinh học và kỹ thuật

- Làm nền tảng phát triển cho những lĩnh vực như khoa học máy tính, trí tuệ nhân tạo, Interner vạn vật (IoT), …

- Phát triển kỹ năng nghề nghiệp và mở rộng cơ hội việc làm

Ngày đăng: 13/02/2025, 16:05