2010-07-27 39 views
15

Tôi đang sử dụng D để lấy các dẫn xuất của hàm. Tuy nhiên, R không đơn giản hóa biểu thức khi trả về đạo hàm. Tôi cần phải tìm ra liệu một hàm có đạo hàm có thể được diễn tả một cách tổng quát hay không. Có cách nào trong R để đơn giản hóa biểu thức?dẫn xuất của hàm

> D(expression(sqrt(1 - x^2)), 'x') 
-(0.5 * (2 * x * (1 - x^2)^-0.5)) 
> D(D(expression(sqrt(1 - x^2)), 'x'), 'x') 
-(0.5 * (2 * (1 - x^2)^-0.5 - 2 * x * (-0.5 * (2 * x * (1 - x^2)^-1.5)))) 

Thứ hai, có cách nào trong R để thực hiện tích hợp số không?

Trả lời

14
library(Ryacas) 
x <- Sym("x") 
Simplify(deriv(sqrt(1 - x^2),x,2)) # return the result simplified 

cho

expression((x^2 - 1 - x^2)/root(1 - x^2, 2)^3) 

Bạn cũng có thể thử

PrettyForm(Simplify(deriv(sqrt(1 - x^2),x,2))) 

mang đến cho

2  2 
    x - 1 - x 
--------------- 
       3 
    / 2 \ 
Sqrt\ 1 - x/

Như để tích hợp số thử givi ng điều này để xem những gì có sẵn

library(sos) 
findFn('{numerical+integration}') 
+1

điều này thực sự hữu ích. nó làm cho chức năng tìm kiếm dễ dàng hơn nhiều !! – user236215

2

Theo như tôi biết, R sẽ không đơn giản hóa kết quả của D(). Có vẻ như bạn muốn có một hệ thống đại số máy tính thích hợp, và R chắc chắn không phải là một CAS đầy đủ. MathematicaMaple là nổi tiếng nhất, nhưng cũng có một số giải pháp thay thế nguồn mở (as discussed on this SO post).

R có thể thực hiện tích hợp số - đối với loại câu hỏi này, điều đáng để tìm kiếm trong các trang trợ giúp R ​​trước (ví dụ: help.search('integrate')). Bạn có thể sử dụng integrate() trong gói stats. Cũng có area() trong gói MASS, nhưng điều đó đơn giản hơn nhiều (tức là cho mục đích trình diễn).

+1

R khả năng biểu tượng có thể được mở rộng bằng Ryacas hoặc rSymPy. – mbq

0

Bạn có thể muốn kiểm tra Octave ... Đó là miễn phí và afaik Toán người thích nó.

EDIT: @mbq, tôi không chắc chắn ... đó là những gì tôi nghĩ quá. Về cơ bản nó là miễn phí, có thể có thể làm những gì anh ta muốn - tại sao không cho nó một thử. Có một số evidence rằng dự đoán của tôi không phải là xấu. Tất nhiên nó cũng có thể là tôi không hiểu một điều :)

+1

Octave có biểu tượng? Tôi mặc dù nó chỉ là một "GNU MATLAB". – mbq

+0

cũng nghĩ rằng đó là GNU MATLAB, chỉ muốn nói rằng nó có thể dễ dàng hơn để xử lý trong một phần mềm toán học, ngay cả khi nó cần một số phần mở rộng. –

+0

Bạn cũng có thể xem Maxima. http://maxima.sourceforge.net/ –

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