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

CHƯƠNG TRÌNH GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH MỘT ẨN BẰNG PHƯƠNG PHÁP NỘI SUY NEWTON (có code c++)

15 122 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 15
Dung lượng 348,69 KB
File đính kèm DemoC++.zip (2 KB)

Nội dung

MỞ ĐẦU1Trong khoa học và công nghệ có rất nhiều bài toán được chuyển thành bài toán giải hệ phươngtrình, đặc biệt là việc ứng dụng giải hệ phương trình trong chuyên nghành khoa học máy tính.Tuy nhiên, có một vấn đề là các phương trình đại số dạng phức tạp thì phần lớn ta không thểtìm được nghiệm đúng. Vì vậy, cần phải có những phương pháp tìm nghiệm gần đúng, đồngthời ước lượng được sai số của chúng là rất cần thiết. Có nhiều phương pháp xác định nghiệmgần đúng dựa trên mức sai số cho phép. Nhìn chung, các phương pháp này thường sẽ trải quaba nhiệm vụ chính đó là vây nghiệm, tách nghiệm và thu hẹp khoảng chứa nghiệm. Chúng ta sẽđi tìm hiểu về phương pháp lặp Newton hay còn được gọi là phương pháp tiếp tuyến và đi vàoxây dựng chương trình tìm nghiệm gần đúng của phương trình một ẩn ở dạng cụ thể. Phươngpháp này có ưu điểm lớn khi so sánh với các phương pháp khác. Ưu điểm là nó cho ta được tốcđộ hội tụ nhanh giúp giảm số lần lặp đáng kể, nhanh chống cho ta kết quả nghiệm tương đốichính xác, còn nhược điểm là biết , để tính ta phải tính giá trị của hàm và giá trị củahàm tại điểm

TRƯỜNG ĐẠI HỌC ĐỒNG THÁP KHOA KỸ THUẬT – CÔNG NGHỆ NHĨM: Dương Tấn Thành, Lê Hồ Hồng Huy, Nguyễn Thị Thiện Vy, Hồ Ngọc Vinh Quang BÁO CÁO TỔNG KẾT NGHIÊN CỨU CHUYÊN ĐỀ CHƯƠNG TRÌNH GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH MỘT ẨN BẰNG PHƯƠNG PHÁP NỘI SUY NEWTON NGÀNH: KHOA HỌC MÁY TÍNH LỚP: ĐHCNTT18a GIẢNG VIÊN HƯỚNG DẪN: Ths NGUYỄN THỊ THÙY LINH Đồng Tháp, 26 tháng 11 năm 2019 DANH SÁNH SINH VIÊN NHÓM ST T MSSV HỌ TÊN 0018413051 Dương Tấn Thành 0018410639 0018410683 0018413050 Lê Hồ Hoàng Huy Nguyễn Thị Thiện Vy Hồ Ngọc Vinh Quang GHI CHÚ Nhóm trưởng ĐT:039 919 8294 E-mail:duongthanh6959@gmail.com Bảng phân công công việc: STT CƠNG VIỆC Lập trình viên, sưu tầm thuật tốn Trình nội dung pp Newton, cho tập ví dụ Trình nội dung pp Newton Lập trình viên GHI CHÚ Làm Demo C++ Làm Demo C++ MỤC LỤC Mở đầu………………………………………………… trang Nội dung đề tài………………………………………… trang 2.1 Kiến thức tổng quan……………………………………trang 2.1.1 Khái niệm công thức phương pháp Newton………trang 2.1.2 Bài tập ví dụ………………………………………… trang 2.2 Chương trình ứng dụng…………………………………trang 2.2.1 Đặt vấn đề…………………………………………… trang 2.2.2 Phương pháp giải vấn đề……………………… trang 2.2.3 Thiết kế cài đặt thuật toán………………………….trang 2.2.4 Demo chương trình C++…………………….…………….trang Kết luận………………………………………………… trang 12 3.1 Kết quả đạt được…………………………………………trang 12 3.2 Hạn chế………………………………………………… trang 12 3.3 Hướng phát triển…………………………………………trang 12 Tài liệu tham khảo……………………………………… …trang 13 Phụ lục……………………………………………………….trang 14 MỞ ĐẦU Trong khoa học cơng nghệ có nhiều toán chuyển thành toán giải hệ phương trình, đặc biệt việc ứng dụng giải hệ phương trình chun nghành khoa học máy tính Tuy nhiên, có vấn đề phương trình đại số dạng phức tạp phần lớn ta khơng thể tìm nghiệm Vì vậy, cần phải có phương pháp tìm nghiệm gần đúng, đồng thời ước lượng sai số chúng cần thiết Có nhiều phương pháp xác định nghiệm gần dựa mức sai số cho phép Nhìn chung, phương pháp thường trải qua ba nhiệm vụ vây nghiệm, tách nghiệm thu hẹp khoảng chứa nghiệm Chúng ta tìm hiểu phương pháp lặp Newton hay gọi phương pháp tiếp tuyến vào xây dựng chương trình tìm nghiệm gần phương trình ẩn dạng cụ thể Phương pháp có ưu điểm lớn so sánh với phương pháp khác Ưu điểm cho ta tốc độ hội tụ nhanh giúp giảm số lần lặp đáng kể, nhanh chống cho ta kết quả nghiệm tương đối xác, cịn nhược điểm biết xn  , để tính xn ta phải tính giá trị hàm f giá trị x hàm f  điểm n  NỘI DUNG ĐỀ TÀI 2.1 Kiến thức tổng quan 2.1.1 Khái niệm cơng thức phương pháp Newton[1] Cho phương trình f (x ) = 0, x ∈ (a, b) Gọi x* nghiệm gần đúng, x nghiệm xác Áp dụng công thức Taylor: f ( x)  f ( x* )  f ( x* )( x  x* )  o( x  x * )   f ( x)  f ( x * )  f ( x * )( x  x * ) f ( x* )  x x  f ( x* ) * xn  xn   Xây dựng dãy lặp Newton: f ( xn  ) f ( xn  ) Từ công thức Newton suy ra:  f ( xn  )  f ( xn  )( xn  xn  ) Từ ta suy cách xác định xn từ xn  sau: từ điểm ( xn  , f ( xn  )) đồ thị, ta vẽ tiếp tuyến với đồ thị điểm này, hoành xn giao điểm tiếp tuyến với trục Phương pháp Newton gọi phương pháp tiếp tuyến Phương pháp Newton sử dụng công thức sai số tổng quát sau: xn  xn  x  f ( xn ) m Với m = Nếu xem phương pháp Newton lặp đơn, đó: f ( x) f ( x) f ( x)  g ( x)  f ( x) [ f ( x)]2 Nhận thấy f ( x) x[ a ,b ] g ( x) x  g (x) = 0, chọn x0 thích hợp phương pháp Newton hội tụ nhanh (nhờ hệ số co nhỏ), chọn ( g ( x)  1) x0 không phù hợp phương pháp Newton khơng hội tụ Định lý   Giả sử f(x) có đạo hàm liên tục đến cấp đạo hàm f ( x ), f ( x ) không đổi dấu đoạn [a, b] chọn x0 thỏa f ( x0 ) f ( x0 )  phương pháp lặp Newton hội tụ Chú ý: Điều kiện Fourier điều kiện cần không đủ f ( x) 0 điều kiện tiên  Nếu f ( a ) f ( a )  0, chọn x0 a  Nếu f ( a ) f ( a )  0, chọn x0 b   Nếu f ( a ) 0, xét f (b) f (b) + Ưu điểm phương pháp tiếp tuyến tốc độ hội tụ nhanh + Nhược điểm phương pháp tiếp tuyến biết f giá trị đạo hàm xn  , để tính xn ta phải tính giá trị hàm f  điểm xn  2.1.2 Ví dụ giải phương trình ẩn phương pháp Newton (Giải BT kèm theo) Ta có f(0)>0, f(0.5) K+1 K K : Kmax Đưa xk + > Không hội tụ Kết thúc Hình 1.2 2.2.4 Demo chương trình C++ giải gần phương trình ẩn xác định[4] + Ghi chú: Ta gọi tên x0 thuật tốn phía x1 chương trình /* * * * * Chương trình * * * * */ #include #include #include #include #include using namespace std; double x, x1, e, fx, fx1; /*Khai báo biến toàn cục*/ float a, b, c; double f(double x); //Khởi tạo hàm f(x) double f(double x) //Cài đặt cấu trúc hàm phương trình e^x+a^(-x)+b*cos(x)-c=0 { double A=pow(2.718281828, x)+pow(a, -x)+b*cos(x)-c; return A; } double fprime(double x); //Khởi tạo hàm f '(x) double fprime(double x) //Cài đặt hàm tính f'(x) { double B=pow(2.718281828, x)-pow(a, -x)*log(a)-b*sin(x); return B; } void Nhap(){ //Khai báo thủ tục nhập vào coutb>>c; cout

Ngày đăng: 09/11/2020, 14:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w