Hướng dẫn how do you write a trapezoidal rule in python? - làm thế nào để bạn viết một quy tắc hình thang trong python?
Trong chương trình Python này, Show
Mã nguồn Python: Quy tắc hình thang
Đầu raĐầu ra của phương pháp hình thang trên chương trình Python là:Trapezoidal method Python program is: Enter lower limit of integration: 0 Enter upper limit of integration: 1 Enter number of sub intervals: 6 Integration result by Trapezoidal method is: 0.784241 Bạn bị tắt bởi một yếu tố của hai. Thật vậy, quy tắc hình thang như được dạy trong lớp toán sẽ sử dụng một sự gia tăng như
Enter lower limit of integration: 0 Enter upper limit of integration: 1 Enter number of sub intervals: 6 Integration result by Trapezoidal method is: 0.7842419 đang trung bình chiều cao của hàm tại hai điểm liền kề trên lưới. Vì mỗi hai hình thang liền kề có một cạnh chung, công thức trên yêu cầu đánh giá chức năng gấp đôi thường xuyên khi cần thiết. Một triển khai hiệu quả hơn (gần với những gì bạn đã đăng), sẽ kết hợp các thuật ngữ phổ biến từ các lần lặp liền kề của 0:
để đi đến:
mang lại sản lượng Quy tắc hình thang là một phần của hầu hết các giáo trình khóa học liên quan đến toán học ngoài kia. Cho dù bạn đang nghiên cứu kỹ thuật, khoa học máy tính hay toán học thuần túy, bạn sẽ bắt gặp quy tắc hình thang (hoặc hình thang). Trong bài đăng này, chúng tôi sẽ học cách sử dụng Python để thực hiện và tự động hóa quy tắc hình thang! Quy tắc hình thang - một bản tóm tắtQuy tắc hình thang rất hữu ích nếu bạn cần ước tính khu vực dưới một đường cong cho một tập hợp các đầu vào và mẫu cho một hàm. Thật thú vị, bạn không nhất thiết phải biết công thức của hàm. Tuy nhiên, bạn phải biết các đầu ra của hàm được lấy mẫu theo các khoảng thời gian đều đặn (chiều cao của hình thang). Nếu bạn không quen thuộc hoặc không hoàn toàn hiểu quy tắc hình thang, hãy đọc bài viết trước của tôi về cách hiểu quy tắc hình thang. Nó đã giành chiến thắng mất nhiều thời gian và nó sẽ giúp bạn hiểu logic đằng sau quy tắc này! Tôi cần gì để thực hiện quy tắc hình thang?Trong bài đăng này, chúng tôi sẽ sử dụng Python để thực hiện quy tắc hình thang. Ngoài ra, sẽ thực hiện nó theo một vài cách khác nhau và so sánh mức độ hiệu quả của mỗi lần thực hiện. Đối với mục đích của bài đăng này, tôi khuyên bạn nên cài đặt miniconda với phiên bản Python mới nhất có sẵn nếu bạn chưa có nó. Miniconda là một người quản lý môi trường Python cho phép bạn dễ dàng có các cài đặt Python khác nhau và các thư viện khác nhau. Thiết lập môi trường và các công cụKhi bạn đã cài đặt miniconda trong hệ thống của mình, bạn cần mở dòng lệnh nhắc nhở của Anaconda và tạo môi trường cho thử nghiệm của chúng tôi trong bài đăng này. Chỉ cần nhập các lệnh sau trong lời nhắc của Anaconda nhắc nhở:
Để nhanh chóng giải thích các lệnh trên:
Hy vọng rằng, tất cả các lệnh hoạt động tốt và bạn đã thiết lập tất cả! Nếu không, hãy bỏ một bình luận với các lỗi bạn có và tôi sẽ cố gắng giúp bạn. Một triển khai Python thuần túyTrong phần này, chúng tôi sẽ thực hiện quy tắc hình thang chỉ với Python và thư viện tiêu chuẩn của nó. Mặc dù đây sẽ là triển khai ít hiệu quả nhất, nhưng ít nhất là so với các đối tác Numpy, nhưng nó cung cấp một cái nhìn sâu sắc hơn về cách các loại thuật toán này được thực hiện. Vì vậy, tôi sẽ khuyên bạn nên gõ giải pháp này và hiểu các kỹ thuật được sử dụng ở đây! Tạo mảng mẫu đầu vàoĐể bắt đầu, chúng ta cần tạo một loạt các đầu ra cho chức năng mà chúng ta muốn ước tính khu vực với quy tắc hình thang. Để tóm tắt nhanh, nếu chúng ta muốn ước tính khu vực có N hình thang trong khoảng [A, B], thì chúng ta cần đầu ra cách nhau n+1.N trapeziums in the interval [a,b], then we need N+1 equally spaced outputs. Vì vậy, hãy để bắt đầu với việc tạo các đầu vào mẫu (các giá trị x).x values).
Với các đầu vào đầu tiên và cuối cùng, A và B, hàm trên sẽ trả về danh sách các mẫu N+1 được đặt ngang bằng nhau bởi chiều cao của mỗi tam giác, H hoặc DX. Hơn nữa, phần tử đầu tiên sẽ là A và cuối cùng sẽ là b. Bạn có thể giải quyết nó về mặt toán học nếu bạn muốn.a and b, the function above will return a list of N+1 samples equally spaced by the height of each triangle, h or dx. Furthermore, the first element will be a and the last will be b. You can work it out mathematically if you want. Tạo các mẫu đầu raKhi các đầu vào cách đều nhau được tính toán, việc có được mảng đầu ra là dễ dàng, như được hiển thị trong mã bên dưới.
Thật thú vị, hàm trên được gọi là 4 vì nó áp dụng hàm 5 cho mỗi phần tử trong danh sách 6.Phải thừa nhận rằng, mã này có thể khá lạ đối với người mới bắt đầu vì chúng tôi đang chuyển một chức năng như một đầu vào cho một chức năng khác, nhưng đó là một tính năng khá tốt của Python. Vì vậy, khi chúng tôi nói rằng chúng tôi áp dụng chức năng của mỗi đầu vào, điều đó chỉ đơn giản là chúng tôi gọi hàm đầu vào đó với từng phần tử của 6List là một tham số.Ví dụ, giả sử chúng tôi có danh sách các đầu vào 8, thì nếu chúng tôi gọi 9 sẽ trả về 0.Nhận kết quả cuối cùngĐặt hai và hai lại với nhau, giờ đây chúng ta có thể sử dụng các chức năng mà chúng tôi đã thực hiện để có được kết quả quy tắc hình thang cho một mảng các mẫu. Để tóm tắt lại từ bài viết về việc giải thích quy tắc hình thang, đưa ra một tập hợp các mẫu cách đều nhau cho một hàm, quy tắc hình thang cho chúng ta biết như sau: \int_{a}^{b} f(x) dx \approx \frac{h}{2} \{f(a) + f(b) + 2[f(a+h) +\cdots+f(a+(n-1)h)]\} Hàm sau đây chỉ có điều đó: Nó lấy một mảng các mẫu và chiều cao của hình thang (chiều rộng của mỗi mẫu) và trả về ước tính tích hợp bằng quy tắc hình thang. Enter lower limit of integration: 0 Enter upper limit of integration: 1 Enter number of sub intervals: 6 Integration result by Trapezoidal method is: 0.7842410 Nếu bạn chỉ đơn giản muốn ước tính đạo hàm của một hàm giữa hai điểm, chúng ta có thể xác định một hàm để thực hiện điều đó với quy tắc hình thang: Enter lower limit of integration: 0 Enter upper limit of integration: 1 Enter number of sub intervals: 6 Integration result by Trapezoidal method is: 0.7842411 Vì vậy, được đưa ra một đối tượng giống như hàm 1 (như lambdas), các điểm mẫu đầu tiên và cuối cùng ( 2 và 3) và số lượng hình thang 4, 5 sẽ trả về ước tính bằng cách sử dụng quy tắc hình thang. Voilà!Ví dụ, 6 trả về ước tính đáng kinh ngạc là 1.7724538509055154. Hy vọng, bạn có thể thấy ước tính này tốt như thế nào nếu bạn biết bất cứ điều gì về tích phân của \ int _ {-\ infty}^{\ infy} e^{-x^{2}} dx.\int_{-\infty}^{\infty} e^{-x^{2}} dx.
Một triển khai ngây thơBất kỳ học giả hoặc nhà khoa học dữ liệu nào cũng sẽ đặt câu hỏi về việc triển khai Python Pure Pure, và tự hỏi tại sao chúng tôi không sử dụng Numpy, một thư viện được xây dựng cho toán học nặng. Cắt theo đuổi, chúng ta có thể sử dụng các mảng và chức năng Numpy để tạo ra việc triển khai nhanh hơn chức năng 5:Enter lower limit of integration: 0 Enter upper limit of integration: 1 Enter number of sub intervals: 6 Integration result by Trapezoidal method is: 0.7842412
5, nhưng nó sử dụng Numpy để tạo các mảng đầu vào và đầu ra. Lưu ý rằng hàm đầu vào 1 cần xử lý toàn bộ đầu vào mảng numpy! Vì vậy, hãy gắn bó với các chức năng numpy.Cuối cùng, để tính toán tích phân tương tự như triển khai Python Pure Pure Python sẽ là 0. Lưu ý cách hàm đầu vào sử dụng 1, xử lý toàn bộ mảng numpy cùng một lúc, làm cho nó hiệu quả hơn. Không cần phải nói, nó trả về ước tính tương tự.Một quy tắc hình thang thậm chí nhỏ hơn thực hiệnBạn có tin rằng chúng ta có thể thực hiện tất cả các triển khai trên chỉ trong ba dòng mã không? Do Numpy cung cấp cho chúng tôi chức năng 2, chúng tôi có thể trực tiếp dựa vào Numpy để áp dụng quy tắc hình thang trên một tập hợp các mẫu! Mã dưới đây cho thấy cách.Enter lower limit of integration: 0 Enter upper limit of integration: 1 Enter number of sub intervals: 6 Integration result by Trapezoidal method is: 0.7842413 3 sẽ sử dụng việc thực hiện chính quy tắc hình thang của Numpy. Tuy nhiên, vì nó được thực hiện trong mã gốc, với các thói quen được tối ưu hóa cao, nó sẽ hút các phương pháp khác được thể hiện trong bài đăng này về hiệu quả!Rõ ràng, 4 sẽ trả về ước tính giống như những người khác.Điểm chuẩn các triển khai khác nhau của Quy tắc hình thangKhi tôi tò mò về việc biết các triển khai Numpy đã tốt hơn bao nhiêu từ các Python Pure Python, tôi quyết định đánh giá tất cả các chức năng quy tắc hình thang mà chúng tôi đã tạo trong bài đăng này. Ngoài ra, tất cả chúng đều ước tính tích phân cho cùng một hàm, cụ thể là f (x) = e^{-x^{2}}. Tuy nhiên, tôi đã thay đổi các điểm đầu vào đầu tiên và cuối cùng (giới hạn tích phân 2, 3) và số lượng hình thang 4.f(x) = e^{-x^{2}}. However, I’ve changed the first and last input points (the integral bounds 2, 3), and the number of trapeziums
4.
6.Không có gì đáng ngạc nhiên, việc triển khai Python Pure Pure Python rất chậm so với các đối tác vô cùng. Trong trường hợp số lượng hình thang lớn, chúng ta thấy sự chậm lại 20 lần. Vì vậy, không có gì bất ngờ theo nghĩa đó. Tuy nhiên, tôi đã giả định sai rằng chức năng 7 sẽ nhanh hơn so với bộ mở rộng ngây thơ của chúng tôi. Như chúng ta có thể thấy, cả hai chức năng gần như đã đi đến ngón chân về hiệu quả, nhưng 7 không thua đối tác Numpy ngây thơ một chút trong mỗi kịch bản. Tôi thậm chí gấp đôi ba lần kiểm tra nó!Đi để cho bạn thấy: Điểm chuẩn của bạn trước khi đưa ra bất kỳ giả định nào! TL;DRChúng tôi đã thấy trong bài viết này dễ dàng như thế nào khi thực hiện quy tắc hình thang hoàn toàn trong Python. Hơn nữa, nhiệm vụ này thậm chí còn trở nên dễ dàng hơn (và hiệu quả hơn) khi sử dụng thư viện số như Numpy. Điểm chuẩn cho chúng ta thấy rằng, trong trường hợp xấu nhất, việc triển khai Python Pure Pure đã thực hiện tồi tệ hơn hai mươi lần so với việc triển khai Numpy. Ngoài ra, họ cũng cho chúng ta thấy rằng một Numpy ngây thơ, thực hiện quy tắc hình thang với các mảng và chức năng numpy trong các dòng Python, đã thực sự hoạt động tốt hơn chức năng ____57 của Numpy (một chút). Tôi có nghĩ rằng việc thực hiện Python Pure Pure là vô ích không? Không, hoàn toàn ngược lại. Biết cách sử dụng Python để thực hiện các phương pháp toán học là hữu ích; Nó cung cấp cho bạn một cái nhìn sâu sắc về những gì mọi người phải làm khi viết cùng một thứ bằng các ngôn ngữ khác. Nó sẽ làm tôi ngạc nhiên nếu Numpy thực sự thực hiện cùng một công thức trong mã gốc (C/C ++), với một số tối ưu hóa. Trên thực tế, nó chắc chắn hữu ích khi biết làm thế nào một cái gì đó được thực hiện. Nó giúp bạn hiểu một khái niệm tốt hơn! Tôi đã bỏ lỡ bất cứ điều gì? Phát hiện ra bất kỳ sai lầm trong văn bản hoặc mã? Bạn có câu hỏi nào không? Vui lòng đăng một bình luận bên dưới và tôi sẽ cố gắng hết sức để trả lời càng sớm càng tốt! Làm thế nào để bạn làm quy tắc hình thang trong Python?Quy tắc hình thang được thực hiện trong một hàm Python riêng biệt lấy hàm toán học chung \ (f (x) \) làm đối số, cùng với dữ liệu đầu vào cho vấn đề: giới hạn tích hợp \ (a \) và \ (b \) vàtham số độ phân giải số \ (n \).
Làm thế nào để bạn sử dụng công thức hình thang?Làm thế nào để áp dụng quy tắc hình thang ?.. Bước 1: Lưu ý số lượng các giao dịch phụ, "N" và các khoảng "A" và "B" .. Bước 2: Áp dụng công thức để tính toán chiều rộng khoảng thời gian phụ, h (hoặc) △ x = (b - a)/n .. Bước 3: Thay thế các giá trị thu được trong công thức quy tắc hình thang để tìm diện tích gần đúng của đường cong đã cho,. |