[問題] 關於線性的近似方法 有點怪

作者: jackhzt (巴克球)   2016-03-22 11:35:25
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:piecewise linear approximation(PLA)
目的:使用線性的方式,切割一個序列 ( 時間序列)
目標方法: 簡單來說連結起點和終點, 依時間依序比較點和線的距離
太大就將點和終點連線, 以新的線再依序和接下來的點比距離, 重複做
以下是原文敘述:
http://imgur.com/eUcKxg6
http://imgur.com/BLbYeyJ
問題:
(step1):
Input time series Q(i : j) and threshold value "error". A vector Bp
is used to restore the breakpoints. "k" records the number of
the present breakpoints. "pos" denotes the position of the
newest breakpoint.
Initially, i = 1, j = m, where m is the length of time series.
Since the first point and the last point
are the special breakpoints, let k = 2, Bp(1) = q1 and
Bp(2) = qm.
(step2):
For time series Q(i : j), create line segment L(i : j) according
to the formula (6). Set two variables l = i + 1 and
best_so_far = 0. *公式6在我的程式碼中有付
(step3):
Calculate the distance of point ql to the line segment L(i : j),
that is D(ql,L(i : j)).
(step4):
If D(ql,L(i : j)) > best_so_far, best_so_far = D(ql,L(i : j)) and
pos = l.
(step5):
l = l + 1. If l>=j, go to the step 6; otherwise, go back to step3.
(step6):
If best_so_farPe, k = k + 1, Bp(k) = q_pos, go back to the Step
2 and let the two subsequences Q(i : pos) and Q(pos : j)
redo the step 2 to step 6, respectively.
(step7):
Sort the element of vector Bp by an ascending time and
output the sorted result.
出自:http://tinyurl.com/hhosdmk -3.1
1.我的程式碼看起來有點問題,尤其是step 6這地方不太會表示,有高手可以解惑嗎?
2.有沒有比較正常的打法?我的打法好像問題很大
3.package方面有試過一些,但是有辦法表達和上面敘述一樣的package目前好像沒找到
程式碼可貼於以下網站: http://ideone.com/TOEISf
求高手救援
作者: celestialgod (天)   2016-03-22 11:43:00
為啥不直接用approx就好圖的字太小,看可不可以直接貼上來,看了眼睛痛請忽略第一個推文

Links booklink

Contact Us: admin [ a t ] ucptt.com