Hello everyone, anyone knows how to approximate a data with polynomial of degree 8 using least square method?

1 回表示 (過去 30 日間)
Polynomial degree is 8 and it should be approximated piecewise.
  • y = a0t0 + a1t1 + a2t2 + + antn ………………………….. (1)
Data description:
The first column is Time(GPS format) unit is seconds.
Second column is y values, so I have to find the coefficients (a0, a1...). And this should be done peicewise (9 points), then iterate this method till the end of the data.
Data is attached.
  5 件のコメント
Mohammad Shafi Nikzada
Mohammad Shafi Nikzada 2021 年 6 月 25 日
This is what our assistant prof. wants. Find the coefficients, plug it into the equation and then calculate Velocity and acceleration. :D
Matt J
Matt J 2021 年 6 月 25 日
編集済み: Matt J 2021 年 6 月 25 日
Your data looks very sinuisoidal. Are you sure you couldn't convince your assistant prof. just to fit a sinusoid?

サインインしてコメントする。

回答 (2 件)

Walter Roberson
Walter Roberson 2021 年 6 月 25 日
Loop, moving one point at a time. At each location use polyfit on 9 points to create coefficients. polyder() https://www.mathworks.com/help/matlab/ref/polyder.html and evaluate to get velocity. polyder() again and evaluate to get acceleration.
Then move one point further on.

David Hill
David Hill 2021 年 6 月 25 日
編集済み: David Hill 2021 年 6 月 25 日
Use polyfit, place the x and y columns of your data into the function.
p=polyfit(x,y,8);%you will need to convert time using datenum and likely normalize

カテゴリ

Help Center および File ExchangePolynomials についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by