2011-11-08 35 views
9

Tôi đang tìm cách tính tích phân không xác định của một phương trình.Tích phân vô hạn trong R

Tôi có dữ liệu từ nguồn cấp dữ liệu gia tốc vào R thông qua chương trình C trực quan và từ đó nó đủ đơn giản để đưa ra một phương trình biểu thị đường cong gia tốc. Đó là tất cả tốt trong tốt, tuy nhiên tôi cần phải tính toán vận tốc tác động là tốt. Từ sự hiểu biết của tôi từ những ngày tốt nghiệp trung học tốt, sự tích phân vô hạn của đường cong tăng tốc của tôi sẽ mang lại phương trình cho vận tốc.

Tôi biết thật dễ dàng để thực hiện tích hợp số với hàm integrate(), có bất kỳ thứ gì có thể so sánh được với tích phân không giới hạn không?

+1

Nếu bạn ngụ ý một phần tử * không xác định biểu tượng *, thì không. (Nhưng có giao diện ví dụ như để Yacas ["nhưng một hệ thống đại số máy tính"] mà có thể làm điều đó.) Mặt khác, có vẻ như với tôi rằng tất cả tích hợp số là trong một số ý nghĩa xác định (tức là để có được một câu trả lời bạn phải xác định giới hạn). –

Trả lời

1

Nếu NA bạn đề cập là thông tin theo nghĩa chỉ ra không có đầu vào tăng tốc thì chúng phải được thay thế bằng số không. Giả sử bạn có dữ liệu trong acc.vec và thiết bị ghi với tốc độ rec_per_sec:

acc.vec[is.na(ac.vec)] <- 0 
vel.vec <- cumsum(acc.vec)/recs_per_sec 

Tôi không nghĩ rằng việc xây dựng một đường cong phù hợp nhất sẽ cải thiện độ chính xác của bạn trong trường hợp này. Để vẽ vận tốc so với thời gian:

plot(1:length(acc.vec)/recs_per_sec, vel.vec, 
     xlab="Seconds", ylab="Integrated Acceleration = Velocity") 
+0

Cảm ơn bạn đã phản hồi! Không có NA trong dữ liệu, đầu vào từ gia tốc luôn luôn là một giá trị, tôi chưa bao giờ thấy giá trị 0 đi ra khỏi bộ đệm của tôi. Cảm ơn bạn cho tốc độ vs thời gian gợi ý! hoạt động tuyệt vời! Tôi gần như đã từ bỏ nó rồi nghĩ rằng id kiểm tra lại ở đây một lần nữa. – user1003131

9
library(Ryacas) 
x <- Sym("x") 
Integrate(sin(x), x) 

cho

expression(-cos(x)) 

Một cách khác:

yacas("Integrate(x)Sin(x)") 

Bạn có thể tìm thấy chức năng tham khảo here

+2

Ngoài Ryacas, có gói rSymPy, sử dụng SymPy của Python cho CAS. – jthetzel

1

Như Ben nói, hãy thử các gói Ryacas tính -nguyên một hàm. Nhưng bạn có thể nên tự hỏi mình liệu bạn có thực sự muốn tạo một hàm liên tục mà chỉ xấp xỉ dữ liệu của bạn ở vị trí đầu tiên (các lỗi phù hợp). Tôi muốn gắn bó với tích hợp số của dữ liệu thực tế của bạn. Hãy ghi nhớ sự không chắc chắn trong mỗi điểm dữ liệu, tất nhiên.

+0

Tất nhiên, bạn có thể phù hợp với một spline làm mịn (http://stackoverflow.com/questions/7953135/r-perfect-smoothing-curve) và tích hợp nó ... –

+0

Cảm ơn tất cả mọi người cho đầu vào! Tôi đang tìm kiếm tích phân không xác định bởi vì tôi muốn vẽ đồ thị thời gian vận tốc (cho mục đích trực quan ... không nhất thiết phải chính xác). Cảm ơn lời khuyên về Yacas, nhưng dường như nó không giống như chức năng tôi chuyển vào nó (NA được sản xuất bởi cưỡng chế). Tôi cho rằng tôi có thể tích hợp dần dần trên hàm tăng tốc của tôi khi vận tốc tại một điểm bằng với tích phân từ 0 đến điểm đó, tuy nhiên để có được một đường cong khá, nó sẽ đòi hỏi một số lượng đáng kể các lần lặp lại. – user1003131

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