不規則に変化する無数のデータを一つの数式を経由させることで一定の値に近づける関数の求め方
6 次查看(过去 30 天)
显示 更早的评论
一変数に対して不規則に変化する無数のデータを一つの数式を経由させることで一定の値に収束させる関数の求め方について伺いたいです。
大変わかりにくい質問かと思いますが、お助けいただけたらと思います。
あるX-Yの位置グラフについてXが増加するにつれて(増加の幅は一定ではないが、必ず増加する状況です)Yの値がある値Rより上下して測定される状況です。
この時最小二次方などで近似式を導出することは難しくありませんが、実際にあるYに関する無数のエクセルデータにある関数をつかって、値Rに変える・近づける関数の導出が行いたいのですが、良いアイディアはありませんか。
MATLABの質問でなく、数学の質問になってるかもしれませんがよろしくおねがいします。
2 个评论
Takumi
2020-1-30
値Rは既知ですか?だとしたら無理やりRに収束する関数 (指数関数とかで表現)を掛けたりするとできますが…データを改ざんしていることになりそうです。 それともRは未知で、推定によってRに収束させたいということですか? 未知パラメータの推定なら例えばカルマンフィルタとかを使うと良さそうですね
采纳的回答
Takumi
2020-2-1
编辑:Takumi
2020-2-1
無理矢理ある値に収束させたいなら近似式を導出するというよりはある値に収束する関数(例えば指数関数)を変形するのがいいのではないでしょうか。例えば指数関数を使ってこんな関数を考えることができます。
これは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'); % 修正値
この式に物理的意味は全くありません。
状況がわからないのでなんとも言えませんが、データがバラつくなら、ばらつきが正規分布するなど、モデル化して真値を推定するか、エラーバーなどでばらつきと一緒にデータを表示する方がいいと思います。
フィルタについては本などを調べてみてください。
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!