Một số trình biên dịch/thông dịch cho ngôn ngữ tính toán khoa học cần tính đạo hàm của biểu thức tại một điểm cụ thể bằng cách duyệt AST và áp dụng quy tắc đạo hàm tương ứng với từng loại nút — đây là nguyên lý cơ bản của kỹ thuật automatic differentiation.
Cho một biểu thức tiền tố chỉ chứa một biến duy nhất x, hằng số nguyên không âm, và các toán tử hai ngôi +,−,×,÷,∧ (viết là + - * / ^), trong đó toán hạng bên phải của ^ luôn là một hằng số nguyên không âm (số mũ). Cho giá trị x0 cụ thể, hãy tính f(x0) và f′(x0) bằng cách đánh giá đệ quy trên cây theo các quy tắc:
Dòng 1: biểu thức tiền tố, các token cách nhau bởi khoảng trắng. Dòng 2: một số thực x0 (có thể âm, có thể có phần thập phân).
In ra trên một dòng hai số thực f(x0) và f′(x0), cách nhau bởi một khoảng trắng, mỗi số làm tròn và hiển thị đúng 6 chữ số thập phân.
Ví dụ: với biểu thức + ^ x 2 * 3 x (tức f(x)=x2+3x) và x0=2: f(2)=4+6=10, f′(x)=2x+3⇒f′(2)=7. Output: 10.000000 7.000000.
Ví dụ:
Đầu vào:
+ ^ x 2 * 3 x
2
Đầu ra:
10.000000 7.000000
Đầu vào:
/ x - x 1
2
Đầu ra:
2.000000 -1.000000
Đang tải editor...