2010-07-02 39 views
6

Có ai biết thư viện Calculus cho JavaScript không? Tôi đã làm một số Googling và đã không đưa ra bất cứ điều gì. Tôi đã đăng ký API WolframAlpha, nhưng điều đó rất tốn kém trừ khi họ chọn cấp cho tôi một khoản trợ cấp.Có thư viện Calculus cho JavaScript không?

Lý tưởng nhất, tôi có thể nạp một mảng 2d điểm vào một hàm và lấy lại biểu đồ (Mảng) của các điểm của đạo hàm.

Nếu thư viện đó không tồn tại, tôi sẽ tạo một thư viện để chia sẻ.

+2

Điểm không có đạo hàm. Thư viện lý tưởng của bạn có thể thử và phù hợp với đường cong của dữ liệu và tính đạo hàm đó không? –

+0

Có! Thư viện lý tưởng của tôi sẽ làm chính xác điều đó. –

+0

Đó là một ý tưởng hấp dẫn và/hoặc tuyệt vời! :) Tôi là một tổng số tính n00b, vì vậy hãy tha thứ cho sự thiếu hiểu biết của tôi, nhưng: làm thế nào bạn sẽ đi về việc tìm kiếm một đường cong để phù hợp với dữ liệu (lập trình)? – tommytwoeyes

Trả lời

5

Vì bạn nói bạn có một mảng 2-D điểm, tôi cho rằng bạn có một hàm của hai biến f(x, y). Điều đó có nghĩa là bạn không có một đạo hàm duy nhất. Thay vào đó bạn nhận được một tập hợp các dẫn xuất từng phần.

Bạn có thể ước tính các dẫn xuất từng phần bằng cách sử dụng các công thức khác biệt hữu hạn.

Đạo hàm một phần đối với x tại f(x, y) sẽ là (f(x+h, y) - f(x-h, y))/2h.

Đạo hàm một phần đối với y tại f(x, y) sẽ là (f(x, y+h) - f(x, y-h))/2h.

Trong các công thức này, h là khoảng cách giữa các nút trên lưới của bạn, giả sử bạn có lưới cách đều nhau. Nếu các khoảng cách ngang và dọc khác nhau, hãy sử dụng khoảng cách ngang cho một phần có liên quan đến x và khoảng cách theo chiều dọc cho một phần đối với y.

Cập nhật: Tôi hiểu sai câu hỏi của bạn. Tôi nghĩ mảng 2-D là một mảng các giá trị tên miền. Nếu bạn có danh sách các giá trị xf(x), bạn có thể ước tính f'(x)(f(x+h) - f(x-h))/2h. Điều này sẽ làm việc ở mọi nơi ngoại trừ ở điểm đầu tiên và cuối cùng mà một trong các thuật ngữ sẽ nằm ngoài phạm vi. Bạn có thể sử dụng (f(x + h) - f(x))/h ở đầu bên trái và (f(x) - f(x-h))/h ở đầu bên phải. Sự gần đúng sẽ kém chính xác hơn ở các điểm kết thúc nhưng không thể tránh được.

+0

Tôi nghĩ rằng nó thực sự là một chức năng của một biến, f (x) = y. Mỗi giá trị của x được đặt cách nhau bởi 1. Tôi vẫn có thể sử dụng công thức khác biệt hữu hạn? –

+0

Tuyệt vời! Điều đó vẫn hợp lệ khi 'h' là rất lớn (1)? –

+0

Độ chính xác sẽ phụ thuộc vào hai điều: h^2 và kích thước của đạo hàm thứ ba. Nếu h = 1, lỗi của bạn sẽ lớn trừ khi f '' '(x) nhỏ, tức là trừ khi f xấp xỉ bậc hai. –

Các vấn đề liên quan