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ị x
và f(x)
, bạn có thể ước tính f'(x)
là (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.
Nguồn
2010-07-02 01:42:56
Đ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? –
Có! Thư viện lý tưởng của tôi sẽ làm chính xác điều đó. –
Đó 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