1. Trang chủ
  2. » Giáo án - Bài giảng

NGÔN NGỮ lập TRÌNH TRONG vật lý TÍNH TOÁN

18 24 0

Đ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

Định dạng
Số trang 18
Dung lượng 864,22 KB

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

Nội dung

PowerPoint Presentation NGÔN NGỮ LẬP TRÌNH TRONG VẬT LÝ TÍNH TOÁN 1.1 Kiểu dữ liệu trong MATLAB Một số lệnh cover kiểu dữ liệu trong MATLAB Một số lệnh cover kiểu dữ liệu trong MATLAB 1.2 Các loại sai số Nguồn gốc các sai số trong tính toán • Sai số thật (Et) (true error) • Sai số tuyệt đối (|Et|) (absolute error) • Sai số tương đối tỉ đối Nguồn gốc các sai số trong tính toán 1.3 Vòng lặp và câu điều kiện 1.4 Các hàm và thủ tục 1.5 Cách viết và chạy chương trình

Trang 1

NGÔN NGỮ LẬP TRÌNH TRONG VẬT LÝ TÍNH TOÁN

Tuần 2

Trang 2

1.1 Kiểu dữ liệu trong MATLAB 1.2 Các loại sai số

1.3 Vòng lặp và câu điều kiện 1.4 Các hàm và thủ tục

Trang 3

Class Max value Min Value Bytes Smallest difference

int32 2.14e+09 -2.14e+09 4 1

int64 9.22e+18 -9.22e+18 8 1

single 3.40e+038 -3.40e+038 4 1.1755e-38

double 1.79e+308 -1.79e+308 8 2.2251e-308

cell array a{1,1} = 12; a{1,2} = ’Red’; a{1,3} = b(4);

structure a.day = 12; a.color =’Red’; a.mat = b(3);

function handle sqr = @(x) x.^2; sqr(10) = 100

1.1 Kiểu dữ liệu trong MATLAB

Trang 4

Một số lệnh cover kiểu dữ liệu trong MATLAB

char Convert to character array (string)

int2str Convert integer data to string

mat2str Convert matrix to string

num2str Convert number to string

str2double Convert string to double-precision value

str2num Convert string to number

cell2mat Convert cell array to numeric array

cell2struct Convert cell array to structure array

cellstr Create cell array of strings from character array

mat2cell Convert array to cell array with potentially different sized cells num2cell Convert array to cell array with consistently sized cells

struct2cell Convert structure to cell array

Trang 5

Name Operator Example with

symbol

Example in code Text description NOT ~ ~A not(A) True if A is false

AND & A & B and(A, B) True if both A and B are true

OR | A | B or(A, B) True if either A or B (or both!) are

true

XOR xor(A, B) True if either A or B (but NOT

both!) are true Các toán tử logical (Logical Operators)

Các toán tử trong MATLAB

Trang 6

Operator Description

- Subtraction

.* Multiplication

./ Right division

.\ Left division

- Unary minus

: Colon operator

' Complex conjugate

transpose

* Matrix multiplication

/ Matrix right division

\ Matrix left division

^ Matrix power

Operator Description

< Less than

<= Less than or equal to

> Greater than

>= Greater than or equal to

== Equal to

~= Not equal to

Các toán tử số học ( Arithmetic Operators)

Các toán tử quan hệ

( Relational Operators )

Trang 7

1.2 Các loại sai số

Định nghĩa sai số:

• Sai số thật (Et) (true error) : độ lệch giữa giá trị thật và giá trị xấp xỉ

Et = true value – approximation

• Sai số tuyệt đối (|Et|) (absolute error) :

|Et| = |true value – approximation|

• Sai số tương đối tỉ đối:

Etf = (true value – approximation)/true value

Trang 8

• Sai số làm tròn (roundoff error)

Xảy ra do sự thể hiện hữu hạn độ chính xác một con số của máy tính Xảy ra do sự làm tròn bằng tay của người sử dụng

• Sai số cắt cụt (truncation error)

Xảy ra khi các công thức toán được thể hiện dưới dạng xấp xỉ

Ví dụ: khai triển Taylor một hàm số liên tục

Nguồn gốc các sai số trong tính toán

Trang 9

1.3 Vòng lặp và câu điều kiện

Vòng lặp for hữu hạn

Được sử dụng khi biết trước số lần lặp nmax

for i = 1: 1 : nmax

Làm việc gì đó theo mỗi i

end

Vòng lặp while

Được sử dụng khi không biết trước số lần lặp

while (điều kiện đúng) Làm việc gì đó

end

Vòng lặp

Câu điều kiện

if điều kiện 1 Làm gì đó

elseif điều kiện 2 Làm gì đó

else

Làm gì đó

end

if điều kiện

Làm gì đó

end

Có một điều kiện Có nhiều điều kiện

Chú ý: Các điều kiện luôn phải trả về

kết quả đúng hoặc sai (1 hoặc 0 )

Trang 10

Symbolic Expressions

syms x;

f=x^4+7*x^2+x+exp(2*x)

subs(f,x,3)

ans = 550.4288

Các hàm và thủ tục thì có hoặc không có đối số và luôn có giá trị trả về

Inline Functions f=inline('x+exp(x)','x') f(x) = x+exp(x)

Function M-Files

function t=can_bac_hai(h) t=sqrt(h/4.9);

end

Function Handles

f = @(x) x^2-x

1.4 Các hàm và thủ tục

Các hàm có đối số:

Các hàm không có đối số:

function main

% tên hàm là main

% in ra màn hình chữ ‘Hello world! ‘

disp('Hello world!');

function y = random % tên hàm là random % trả về một số ngẫu nhiên

y=rand;

Trang 11

1.5 Cách viết và chạy chương trình

Lưu đồ và giải trình (Sơ đồ khối và mã giả)

Trang 12

Ví dụ 1: Tính tổng của 20 số (n = 20):

0

1 2 3

n

    

bằng vòng lặp WHILE :

Nhập số các số lấy tổng N: N = 20

Tạo giá trị đầu cho S: S = 0

n = 0

WHILE (n ≤ N)

Tính tổng :

S = S + n Tăng số lấy tổng:

n = n +1

END

In ra S

n ≤ N Nhập N

Tính

S = S + n

n = n + 1

In ra S

Sai Đúng

Trang 13

Ví dụ 2: giả phương trình bậc 2 bằng câu trúc IF – ELSE :

ax2 + bx + c = 0 Nhập các hệ số a, b và c

Tính  = b2 – 4ac

IF ( < 0)

In ra ‘Vô nghiệm’

ELSEIF ( = 0)

Tính nghiệm : x = -b/(2a)

In ra x

ELSE

Tính hai nghiệm:

x1 = (-b + sqrt())/(2a)

x2 = (-b - sqrt())/(2a)

In ra x1 và x2

END

Trang 14

Lập trình có cấu trúc

Trong một chương trình máy tính, các khối chức năng có thể được

thực hiện không chỉ theo trình tự mà còn có thể theo các tình huống và lặp lại nhiều lần

• Trình tự nghĩa là các câu lệnh được thực hiện theo trình tự nhất định:

trên xuống

• Quyết định là sự qui định sẽ thực hiện chương trình như thế nào phụ

thuộc vào sự thoả mãn các điều kiện nhất định

• Vòng lặp thể hiện sự thực hiện có tính lặp một số đoạn lệnh của

chương trình khi các điều kiện nào đó vẫn được thỏa mãn

Phương pháp lập trình có cấu trúc là chia một chương trình (chức

năng) lớn thành các khối chức năng hay hàm (thủ tục) đủ nhỏ để dễ lập trình và kiểm tra

Trang 15

Thông thường, một chương trình lập trình có cấu trúc gồm có 1 file lệnh

(script) và các file hàm (function) Tất cả các file này được viết trên M – file

• Các file hàm là các khối chức năng nhỏ của một chương trình lớn

• File lệnh dùng để gọi việc thực thi các file hàm theo một trật tự nhất định

Trong MATLAB, một chương trình có cấu trúc được lập trên các

file có phần đuôi mở rộng “.m” (M - file)

Ví dụ 3: Viết một chương trình có cấu trúc giải phương trình bậc hai

Chia bài toán thành 2 khối chúc năng (2 hàm):

• Hàm tính 

• Hàm tính nghiệm x

Trang 16

Tên file : tinh_delta.m

function delta = tinh_delta (a,b,c)

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

end

Tên file : nghiem_don.m

function x = nghiem_don (a,b)

x = -b*0.5/a;

end

Tên file : nghiem_kep.m

function [x1,x2] = nghiem_kep (delta,a,b)

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

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

end

Tên file : giai_bac2.m

a = input(‘tham so a = ’);

b = input(‘tham so b = ’);

c = input(‘tham so c = ’);

delta = tinh_delta (a,b,c);

if (delta < 0) disp(‘Vo nghiệm’);

elseif (delta > 0) disp(‘Nghiem kep:’) [x1,x2] = nghiem_kep (delta,a,b) else

disp(‘Nghiem don:’)

x = nghiem_don (a,b) end

Các file lệnh và file hàm phải ở cùng một thư mục

Trang 17

Một số lưu ý

Chọn tên biến

Chọn tên biến có tính tự minh họa và ngắn gọn Ví dụ:

Không nên đặt biến quá dài:

Không nên đặt tên các biến quá giống nhau:

Không nên đặt các chỉ số của vòng lặp là i, j, vì dễ gây nhầm với số phức: z= x + i*y

Chuyển từ công thức text book sang các phép tính:

Trang 18

Kết hợp các phép tính trên cùng 1 biến vào cùng một nhóm:

Người dùng không được đặt tên các hàm trùng với tên các hàm trong thư viện hàm của MATLAB: sin(), cos() …

Ngày đăng: 13/04/2022, 00:34

TỪ KHÓA LIÊN QUAN

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

w