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

Bairstows method python Có file Code

16 4 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 16
Dung lượng 422,55 KB
File đính kèm Bairstow's method.rar (400 KB)

Nội dung

Một định danh trong Python là một chuỗi ký tự được sử dụng để định danh cho biến, hàm, lớp, hoặc đối tượng trong chương trình. Định danh trong Python phải bắt đầu bằng một chữ cái từ A tới Z hoặc từ a tới z, hoặc một dấu gạch dưới (_) và được theo sau bởi bất kỳ ký tự, dấu gạch dưới hoặc số nào (từ 0 tới 9).Tuy nhiên, Python không cho phép sử dụng các ký tự đặc biệt như , và % trong định danh. Ngoài ra, Python là một ngôn ngữ phân biệt chữ hoachữ thường, do đó, các định danh như viettuts và Viettuts được coi là khác nhau.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP VIỆT - HUNG KHOA CÔNG NGHỆ THÔNG TIN … o0o… BÁO CÁO KẾT THÚC HỌC PHẦN LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ Giảng viên hướng dẫn : Ths.Hà Đăng Tồn Nhóm sinh viên thực : Quách Tấn Sang : Đặng Quang Trung Lớp : K43CNT2 * Hà Nội - Năm 2023 MỤC LỤC Phần A: HỆ ĐIỀU HÀNH UBUNTU 1.1 Sơ lược Ubuntu .1 1.2 Tính Ubuntu Phần B: NGÔN NGỮ PYTHON 2.1 Python .5 2.2 Những ưu điểm python .5 2.3 Cú pháp python 2.3.1 Định danh (identifier) Python 2.3.2 Các từ khóa Python Phần C: GIẢI THUẬT BAIRSTOW’S .8 3.1 Phương thức Bairstow’s 3.2 Mã giả 3.3 Tài liệu Bairstow’s 10 3.4 Kết đạt 14 3.4.1 Mã nguồn chương trình 14 3.4.2 Chương trình chạy kiểm thử 15 DANH MỤC TÀI LIỆU THAM KHẢO NHẬN XÉT KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT OS Operating System Phần A: NGÔN NGỮ PYTHON A.1 Python Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa năng, thiết kế với ưu điểm mạnh dễ đọc, dễ học dễ nhớ Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình ngơn ngữ lập trình dễ học dùng rộng rãi phát triển trí tuệ nhân tạo AI Python Guido van Rossum tạo lần đầu mắt vào năm 1991 Ban đầu, Python phát triển để chạy Unix hưng theo thời gian, Python dần mở rộng sang hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux hệ điều hành khác thuộc họ Unix Mặc dù phát triển Python có đóng góp nhiều cá nhân, Guido van Rossum tác giả chủ yếu Python Ơng giữ vai trị chủ chốt việc định hướng phát triển Python A.2 Những ưu điểm python Python ngôn ngữ lập trình phổ biến với nhiều ưu điểm đáng kể sau: Dễ học sử dụng: Python có cú pháp đơn giản, dễ đọc dễ hiểu, phù hợp cho người bắt đầu học lập trình Bên cạnh đó, Python cịn có nhiều thư viện mạnh mẽ, cung cấp nhiều chức tiện ích giúp cho việc lập trình dễ dàng nhanh chóng 2 Đa tảng: Python chạy nhiều hệ điều hành khác Windows, Linux, MacOS, nhiều tảng khác Mã nguồn mở: Python ngôn ngữ mã nguồn mở, tức truy cập sử dụng mã nguồn Python miễn phí Điều giúp cho cộng đồng lập trình viên phát triển cải tiến Python liên tục Hỗ trợ đa dạng ứng dụng: Python sử dụng cho nhiều mục đích khác lập trình web, khoa học liệu, trí tuệ nhân tạo, máy học, lập trình đồ họa, nhiều lĩnh vực khác Tính linh hoạt: Python có tính linh hoạt cao, cho phép kết hợp với ngôn ngữ khác C++, Java, C# để tạo ứng dụng phức tạp Hỗ trợ đa luồng: Python hỗ trợ đa luồng, cho phép thực nhiều tác vụ đồng thời tăng tốc độ xử lý tác vụ phức tạp A.3 Cú pháp python A.3.1 Định danh (identifier) Python Một định danh Python chuỗi ký tự sử dụng để định danh cho biến, hàm, lớp, đối tượng chương trình Định danh Python phải bắt đầu chữ từ A tới Z từ a tới z, dấu gạch (_) theo sau ký tự, dấu gạch số (từ tới 9) Tuy nhiên, Python không cho phép sử dụng ký tự đặc biệt @, $ % định danh Ngồi ra, Python ngơn ngữ phân biệt chữ hoa-chữ thường, đó, định danh viettuts Viettuts coi khác Để đặt tên cho định danh Python, nên tuân theo qui tắc sau đây:  Sử dụng từ cụm từ mô tả đối tượng định danh  Sử dụng chữ thường dấu gạch để tách từ tên định danh  Tránh sử dụng từ viết tắt từ ngắn để tránh gây nhầm lẫn khó hiểu  Khơng sử dụng từ khóa có sẵn Python (ví dụ: if, else, for, while, ) làm tên định danh  Sử dụng chữ hoa cho số lớp đối tượng A.3.2 Các từ khóa Python Bảng liệt kê từ khóa Python Đây từ dành riêng bạn sử dụng chúng hằng, biến cho tên định danh Tất từ khóa Python dạng chữ thường and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield Phần B: GIẢI THUẬT BAIRSTOW’S B.1 Phương thức Bairstow’s Phương pháp Bairstow phương pháp dùng để tìm nghiệm hệ phương trình đa thức bậc cao Phương pháp phương pháp giải đa thức số sử dụng thuật tốn tính tốn kỹ thuật số Phương pháp Bairstow sử dụng phương pháp giải đa thức bậc bậc hai để giải phương trình đa thức bậc cao Nó sử dụng để giải hệ phương trình đa thức bậc cao Phương pháp Bairstow có số ưu điểm, bao gồm: Tính ổn định: Phương pháp Bairstow ổn định việc giải phương trình đa thức bậc cao, kể trường hợp hệ số đa thức gây chênh lệch lớn Độ xác: Phương pháp Bairstow đạt độ xác tương đối cao giải phương trình đa thức bậc cao Khả giải hệ phương trình đa thức: Phương pháp Bairstow sử dụng để giải hệ phương trình đa thức bậc cao Tốc độ tính tốn: Phương pháp Bairstow có tốc độ tính tốn nhanh so với nhiều phương pháp giải đa thức khác, đặc biệt với đa thức có bậc cao B.2 Tài liệu Bairstow’s Phương pháp Bairstow phương pháp lặp liên quan cách lỏng lẻo đến phương pháp Müller Newton-Raphson Trước vào mơ tả tốn học kỹ thuật này, nhớ lại dạng nhân đa thức f  x   x  1  x    x    x  3  x   Nếu chia cho thừa số khơng phải nghiệm (ví dụ, x + 6), phần nguyên đa thức bậc bốn Tuy nhiên, trường hợp này, có phần dư Dựa điều trên, phát triển thuật toán để xác định nghiệm đa thức: (1) đoán giá trị cho nghiệm x = t, (2) chia đa thức cho thừa số x - t, (3) xác định xem có phần dư khơng Nếu khơng có phần dư, giá trị đốn ta hồn hảo nghiệm với t Nếu có phần dư, ta điều chỉnh đốn cách có hệ thống lặp lại quy trình khơng cịn phần dư tìm nghiệm Sau làm điều này, tồn quy trình lặp lại cho phần nguyên để tìm nghiệm khác Phương pháp Bairstow phụ thuộc vào q trình tốn học chia đa thức cho thừa số Hãy nhớ lại từ trò chuyện giảm bậc đa thức (Mục 7.2.2) phép chia tổng hợp liên quan đến chia đa thức cho thừa số x - t Ví dụ, đa thức tổng qt [Cơng thức (7.1)] f n  x  a0  a1 x  a2 x   an x n Có thể chia đa thức cho thừa số x - t để thu đa thức thứ hai có bậc thấp đơn vị f n  x  b1  b2 x  b3 x   bn x n với phần dư R = b0, hệ số tính mối quan hệ đệ quy bn an bi ai  bi1t for i n 1 to Lưu ý t nghiệm đa thức gốc, phần dư b0 không Để cho phép tính nghiệm phức, phương pháp Bairstow chia đa thức cho thừa số bậc hai x2 - rx - s Nếu làm với Công thức (7.29), kết đa thức f n ( x) b2  b3 x   bn 1x n  bn x n với phần dư R  b1  x  r   b0 Tương tự phương pháp chia đa thức thơng thường, ta sử dụng mối quan hệ đệ quy đơn giản để thực phép chia cho thừa số bậc hai: bn  an bn  an  rbn bi   rbi1  sbi2 for i =n  to Nhân tử bậc hai giới thiệu phép xác định nghiệm phức Điều liên quan đến việc, hệ số đa thức gốc thực, nghiệm phức xuất dạng cặp liên hợp Nếu x2- rx- s thừa số xác đa thức, nghiệm phức xác định cơng thức bậc hai Do đó, phương pháp giảm xuống để xác định giá trị r s khiến cho hạng số bù trừ trở thành khơng Nói cách khác, tìm giá trị làm cho hạng số dư không Việc kiểm tra công thức (7.31) dẫn đến kết luận để phần dư không, b0 b1 phải khơng Vì khó có khả giả thuyết ban đầu giá trị r s dẫn đến kết này, phải tìm cách thức hệ thống để điều chỉnh giả thuyết để b0 b1 tiến dần đến không Để làm điều này, phương pháp Bairstow sử dụng chiến lược tương tự phương pháp Newton-Raphson Bởi b0 b1 hàm r s, mở rộng chúng cách sử dụng chuỗi Taylor, [từ nhớ lại công thức (4.26)] b1 b r  s r s b b b0  r  r , s  s  b0  r  s r s b1  r  r , s  s  b1  Ở đây, giá trị phía bên phải đánh giá r s Lưu ý giá trị bậc hai cao bị bỏ qua Điều đại diện cho giả định ngầm 2r 2s đủ nhỏ để thành phần bậc cao bị bỏ qua Một cách khác để diễn đạt giả định nói giả định ban đầu đủ gần với giá trị r s nghiệm Các thay đổi, Dr Ds, cần thiết để cải thiện đốn đầu ước tính cách đặt (7.33) không ra: b1 b r  s  b1 r s b0 b r  s  b0 r s Nếu đạo hàm riêng b xác định, có hệ phương trình gồm hai phương trình giải đồng thời cho hai ẩn số Dr Ds Bairstow đạo hàm riêng tính phép chia tổng hợp b tương tự cách b tạo ra: cn bn cn bn  rcn ci bi  rci1 +sci2 for i  n - to Trong đó, b0 / r c1, b0 / s b1 / r c2 b1 / s c3 Do đó, đạo hàm riêng tính phép chia đa thức giả tạo b's Sau đó, đạo hàm riêng thay vào Cơng thức (7.34) (7.35) với b's để tính c2r  c3s   b1 c1r  c2s   b0 Các phương trình giải để tìm Dr Ds, sau sử dụng chúng để cải thiện đoán đầu r s Tại bước, sai số xấp xỉ r s ước tính sau:  a ,r  r 100% r  a ,s  s 100% s Khi hai ước lượng sai số nhỏ tiêu chuẩn dừng xác định trước es, giá trị nghiệm xác định cơng thức: x  r  r  4s Ở điểm này, có ba khả tồn tại: Thương đa thức bậc ba cao Trong trường hợp này, phương pháp Bairstow áp dụng để tính tốn giá trị cho r s Các giá trị r s từ trước sử dụng ước đoán khởi đầu cho ứng dụng Thương đa thức bậc hai Trong trường hợp này, hai gốc cịn lại tính tốn trực tiếp cơng thức (7.39) Thương đa thức bậc Trong trường hợp này, gốc cịn lại tính đơn giản công thức x=- s r B.3 Ứng dụng Bairstow’s Bairstow's phương pháp giải hệ phương trình đa thức phi tuyến cách sử dụng phép lặp Phương pháp đặt theo tên nhà tốn học người Anh Herbert Bairstow Bairstow's có ứng dụng nhiều lĩnh vực, bao gồm toán học, kỹ thuật khoa học tự nhiên Dưới số ứng dụng phổ biến Bairstow's: Tìm nghiệm đa thức: Bairstow's sử dụng để tìm giá trị xấp xỉ nghiệm đa thức phi tuyến Điều áp dụng tốn liên quan đến phương trình đa thức, tìm nghiệm đa thức bậc cao Phân tích đa thức: Phương pháp Bairstow's sử dụng để phân tích cấu trúc tính chất đa thức Nó giúp xác định hệ số bậc đa thức, tìm thừa số nghiệm đa thức 3 Mơ hình hóa liệu: Bairstow's áp dụng việc xây dựng mô hình dự đốn dựa liệu thực tế Với việc tìm nghiệm gần đa thức, phương pháp giúp xây dựng mơ hình phù hợp với liệu cho Tính tốn khoa học kỹ thuật: Bairstow's sử dụng nhiều lĩnh vực khoa học kỹ thuật, bao gồm điện tử, điện lực, học Phương pháp giúp giải toán liên quan đến hệ thống phi tuyến đa thức B.4 Mã giả SUB Bairstow (a,nn,es,rr,ss,maxit,re,im,ier) DIMENSION b(nn), c(nn) r rr; s ss; n nn ier 0; ea1 1; ea2 DO IF n , OR iter $ maxit EXIT iter DO iter iter 1 b(n) a(n) b(n 1) a(n 1) r * b(n) c(n) b(n) c(n 1) b(n 1) r * c(n) DO i n 2, 0, 21 b(i) a(i) r * b(i 1) s * b(i 2) c(i) b(i) r * c(i 1) s * c(i 2) END DO det c(2) * c(2) c(3) * c(1) IF det fi THEN dr (2b(1) * c(2) b(0) * c(3))ydet ds (2b(0) * c(2) b(1) * c(1))ydet r r dr s s ds IF rfi0 THEN ea1 ABS(dryr) * 100 IF sfi0 THEN ea2 ABS(dsys) * 100 ELSE r5r11 s5s11 iter END IF IF ea1 # es AND ea2 # es OR iter $ maxit EXIT END DO CALL Quadroot(r,s,r1,i1,r2,i2) re(n) r1 im(n) i1 re(n 1) r2 im(n 1) i2 n5n22 DO i 0, n a(i) b(i 2) END DO END DO IF iter , maxit THEN IF n THEN r 2a(1)ya(2) s 2a(0)ya(2) CALL Quadroot(r,s,r1,i1,r2,i2) re(n) r1 im(n) i1 re(n 1) r2 im(n 1) i2 ELSE re(n) 2a(0)ya(1) im(n) END IF ELSE ier END IF END Bairstow (b) Roots of Quadratic Algorithm SUB Quadroot(r,s,r1,i1,r2,i2) disc r ^ * s IF disc THEN r1 (r SQRT(disc))y2 r2 (r SQRT(disc))y2 i1 i2 ELSE r1 ry2 r2 r1 i1 SQRT(ABS(disc))y2 i2 2i1 END IF END QuadRoo0074 B.5 Kết đạt B.5.1 Mã nguồn chương trình B.5.2 Chương trình chạy kiểm thử DANH MỤC TÀI LIỆU THAM KHẢO https://atozmath.com/example/CONM/Bisection.aspx?q=mu https://www.python.org/ Giáo trình Numerical Methods for Engineers NHẬN XÉT ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… …………………………

Ngày đăng: 08/08/2023, 13:03

w