不規則に変化する無数のデータを一つの数式を経由させることで一定の値に近づける関数の求め方
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Takeru Katagiri
el 25 de En. de 2020
Comentada: Takeru Katagiri
el 7 de Feb. de 2020
一変数に対して不規則に変化する無数のデータを一つの数式を経由させることで一定の値に収束させる関数の求め方について伺いたいです。
大変わかりにくい質問かと思いますが、お助けいただけたらと思います。
あるX-Yの位置グラフについてXが増加するにつれて(増加の幅は一定ではないが、必ず増加する状況です)Yの値がある値Rより上下して測定される状況です。
この時最小二次方などで近似式を導出することは難しくありませんが、実際にあるYに関する無数のエクセルデータにある関数をつかって、値Rに変える・近づける関数の導出が行いたいのですが、良いアイディアはありませんか。
MATLABの質問でなく、数学の質問になってるかもしれませんがよろしくおねがいします。
2 comentarios
Takumi
el 30 de En. de 2020
値Rは既知ですか?だとしたら無理やりRに収束する関数 (指数関数とかで表現)を掛けたりするとできますが…データを改ざんしていることになりそうです。 それともRは未知で、推定によってRに収束させたいということですか? 未知パラメータの推定なら例えばカルマンフィルタとかを使うと良さそうですね
Respuesta aceptada
Takumi
el 1 de Feb. de 2020
Editada: Takumi
el 1 de Feb. de 2020
無理矢理ある値に収束させたいなら近似式を導出するというよりはある値に収束する関数(例えば指数関数)を変形するのがいいのではないでしょうか。例えば指数関数を使ってこんな関数を考えることができます。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/269415/image.png)
これはx=0でf=y(1)、x→∞で→Rとなる関数です。
例えばこんな感じです。
n=50; % データ数
x=rand(1,n);
x(1)=0;
x=cumsum(x); % 0から始まってランダムに増加するx
R=10; % 収束値
b=1; % データのばらつき幅
y=R +(2*b*rand(1,n)-b); % Rの前後に幅bでばらつくサンプルデータ
a=0.2; % 減衰率
f=exp(-a*x).*y-R*(exp(-a*x)-1);
plot(x,y,'or'); % 元データ
hold on
plot(x,R*ones(size(x)),'--'); % 収束線
plot(x,f,'*b'); % 修正値
この式に物理的意味は全くありません。
状況がわからないのでなんとも言えませんが、データがバラつくなら、ばらつきが正規分布するなど、モデル化して真値を推定するか、エラーバーなどでばらつきと一緒にデータを表示する方がいいと思います。
フィルタについては本などを調べてみてください。
Más respuestas (0)
Ver también
Categorías
Más información sobre デジタル フィルター解析 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!