Вывел систему уравнений для нахождения коэ-тов параболы по методу наименьших квадратов. Кто помнит линейку? Или самому придется лезть в детерминанты...
ロッシュ、どうしてこんなに全てが複雑なんだ?このサンプルに必要なものが含まれていることが事前にわからない場合、どのように係数を探すのでしょうか?実際、あなたはすべてをよりシンプルにすることができます。ウラジスラフ氏は冒頭で「近似誤差は近似の順番を示すものだ」と述べています。と、すでに書いています。もう一回、繰り返そうか。y=ax^2+bx+c という形の方程式があるとすると、線形回帰チャネル y1=b1X+c1 でサンプルを近似すると、実際には初期方程式の係数 b と等しい係数 b1 が得られます。そして、最初の式から線形回帰式を引くと、y=ax^2+c2という形の式が得られます。つまり、この式から、放物線の頂点がx軸に対してc2だけずれることがわかるのです。また、放物線の頂点がサンプルの真ん中に来ることも考慮に入れてください。放物線の頂点を(0,c2)、つまりサンプルの原点を放物線の頂点とすると、(y-c2)=ax^2という方程式が扱えることになります。しかし、当然ながらこの式の2倍パラメータaやc2はわからない。しかし、それらがどのように互いに依存しているかは分かっている c2=y-ax^2.放物線とx軸の交点もわかっている。つまり、x軸上に頂点とx軸との交点の3点があり、それによって目的の放物線を求める必要があるのです。ここで、問題を解決するには、放物線による近似の実効誤差が最小となるようなa、ひいてはパラメータc2を逐次近似して求める以外に方法はないと思います。そして、既知のc2によって、最初の方程式からパラメータcを求めることができ、これによって、二次関数の完全な方程式が得られるのである。他のものはもっと少ない計算時間で済むので、ウラジスラバの計算時間の大半を占めているのはこれだと思います。
よくわからないのですが、何が問題なのでしょうか。放物線方程式は、線形回帰 チャネルと同じ考察から、MNCを介して求められる。この連立方程式の解は曖昧さがなく、反復を必要とせず、真正面から解を求めることができる。Zi=Deti/Det , ここで Zi は放物線の係数、Det は行列式、Deti は自由項の列(Ti)を i 列に代入して得られる行列式である。同様に、得られた曲線チャンネル(将来的に明確に記述される)にも同じ基準を適用することができます - 放物線チャンネルのサンプル全体のRMSは、サンプルの2/3のRMSより大きくはありません。ハーストについては、答えが出ないのでとりあえず黙っておくが、そろそろ手をつけたい :)HZ 1986年の数学の参考書を見つけたので、だいぶ頭が良くなってきました :) (コルモゴロフやデミドビッチの方が良かったかも)。
Вывел систему уравнений для нахождения коэ-тов параболы по методу наименьших квадратов. Кто помнит линейку? Или самому придется лезть в детерминанты...
ここでは、連立一次方程式の解法と多項式回帰の形式での実装を紹介します。
m=1なら線になる。
の場合、放物線となる。
m=3なら立方体がある、というように。
//-------------------------------- #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 LightSkyBlue //----------------------------------- extern double hours = 24; extern int m = 2; extern int i0 = 0; //----------------------- double fx[]; double a[10,10],b[10],x[10],sx[20]; double sum; int p; int nn; //******************************************* int init() { IndicatorShortName("at_PR (Din)"); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,fx); p=hours*60/Period(); nn=m+1; return(0); } //********************************************************** int start() { int i,n,k; sx[1]=p+1; SetIndexDrawBegin(0,Bars-p+i0); //----------------------sx--------------------- for(i=1; i<=nn*2-2; i++) { sum=0.0; for(n=i0; n<=i0+p; n++) {sum+=MathPow(n,i);} sx[i+1]=sum; } //----------------------syx-------------------- for(i=1; i<=nn; i++) { sum=0.0; for(n=i0; n<=i0+p; n++) { if (i==1) sum+=Close[n]; else sum+=Close[n]*MathPow(n,i-1); } b[i]=sum; } //===============Matrix======================== for(int j=1; j<=nn; j++) { for(i=1; i<=nn; i++) { k=i+j-1; a[i,j]=sx[k]; } } //===============Gauss========================= af_Gauss(nn,a,b,x); //============================================= for (i=i0; i<=i0+p; i++) { sum=0; for(k=1; k<=m; k++) sum+=x[k+1]*MathPow(i,k); fx[i]=x[1]+sum; } //------------------------------------------------------------- return(0); } //*************************************************************** void af_Gauss(int n, double& a[][],double& b[], double& x[]) { int i,j,k,l; double q,m,t; for(k=1; k<=n-1; k++) { l=0; m=0; for(i=k; i<=n; i++) { if (MathAbs(a[i,k])>m) {m=MathAbs(a[i,k]); l=i;} } if (l==0) return(0); if (l!=k) { for(j=1; j<=n; j++) { t=a[k,j]; a[k,j]=a[l,j]; a[l,j]=t; } t=b[k]; b[k]=b[l]; b[l]=t; } for(i=k+1;i<=n;i++) { q=a[i,k]/a[k,k]; for(j=1;j<=n;j++) { if (j==k) a[i,j]=0; else a[i,j]=a[i,j]-q*a[k,j]; } b[i]=b[i]-q*b[k]; } } x[n]=b[n]/a[n,n]; for(i=n-1;i>=1;i--) { t=0; for(j=1;j<=n-i;j++) { t=t+a[i,i+j]*x[i+j]; x[i]=(1/a[i,i])*(b[i]-t); } } return; } //**********************************************************************それに基づいて、RMSと確率の両方のレベルを構築し、長さと外挿を最適化することができます。
信頼性の高い外挿で、まだすべてが明らかになっていませんが、どなたかご教示ください。
もし誰かがそれに注目したら?それとも、私は何のためにこの話を持ち出したのでしょうか?
ロッシュ、どうしてこんなに全てが複雑なんだ?このサンプルには必要なものが含まれているということが事前にわからないのに、どうやって係数を求めるんだ?実際、あなたはすべてをよりシンプルにすることができます。ウラジスラフ氏は冒頭で「近似誤差は近似の順番を示すものだ」と述べています。と、すでに書いています。もう一回、繰り返そうか。y=ax^2+bx+cという形の方程式があるとすると、線形回帰 チャンネルy1=b1X+c1でサンプルを近似すると、実際には初期方程式の係数bに等しい係数b1が得られます。そして、最初の式から線形回帰式を引くと、y=ax^2+c2という形の式が得られます。つまり、この式から、放物線の頂点がx軸に対してc2だけずれることがわかるのです。また、放物線の頂点がサンプルの真ん中に来ることも考慮に入れてください。放物線の頂点を(0,c2)、つまり放物線の頂点に標本の原点をとると、(y-c2)=ax^2という方程式を扱うことになります。しかし、当然ながらこの式の2倍パラメータaやc2はわからない。しかし、それらがどのように互いに依存しているかは分かっている c2=y-ax^2.放物線とx軸の交点もわかっている。つまり、x軸上に頂点とx軸との交点の3点があり、それによって目的の放物線を求める必要があるのです。ここで、問題を解決するには、放物線による近似の実効誤差が最小となるようなa、ひいてはパラメータc2を逐次近似して求める以外に方法はないと思います。そして、既知のc2によって、最初の方程式からパラメータcを求めることができ、これによって、二次関数の完全な方程式が得られるのである。Vladislavaの計算時間の大半を占めるのはこれだと思います。他のものは計算時間が少ないかもしれませんから。
頑張って、良い流れを作ってください。
ロッシュ、どうしてこんなに全てが複雑なんだ?このサンプルに必要なものが含まれていることが事前にわからない場合、どのように係数を探すのでしょうか?実際、あなたはすべてをよりシンプルにすることができます。ウラジスラフ氏は冒頭で「近似誤差は近似の順番を示すものだ」と述べています。と、すでに書いています。もう一回、繰り返そうか。y=ax^2+bx+c という形の方程式があるとすると、線形回帰チャネル y1=b1X+c1 でサンプルを近似すると、実際には初期方程式の係数 b と等しい係数 b1 が得られます。そして、最初の式から線形回帰式を引くと、y=ax^2+c2という形の式が得られます。つまり、この式から、放物線の頂点がx軸に対してc2だけずれることがわかるのです。また、放物線の頂点がサンプルの真ん中に来ることも考慮に入れてください。放物線の頂点を(0,c2)、つまりサンプルの原点を放物線の頂点とすると、(y-c2)=ax^2という方程式が扱えることになります。しかし、当然ながらこの式の2倍パラメータaやc2はわからない。しかし、それらがどのように互いに依存しているかは分かっている c2=y-ax^2.放物線とx軸の交点もわかっている。つまり、x軸上に頂点とx軸との交点の3点があり、それによって目的の放物線を求める必要があるのです。ここで、問題を解決するには、放物線による近似の実効誤差が最小となるようなa、ひいてはパラメータc2を逐次近似して求める以外に方法はないと思います。そして、既知のc2によって、最初の方程式からパラメータcを求めることができ、これによって、二次関数の完全な方程式が得られるのである。他のものはもっと少ない計算時間で済むので、ウラジスラバの計算時間の大半を占めているのはこれだと思います。
よくわからないのですが、何が問題なのでしょうか。放物線方程式は、線形回帰 チャネルと同じ考察から、MNCを介して求められる。この連立方程式の解は曖昧さがなく、反復を必要とせず、真正面から解を求めることができる。Zi=Deti/Det , ここで Zi は放物線の係数、Det は行列式、Deti は自由項の列(Ti)を i 列に代入して得られる行列式である。同様に、得られた曲線チャンネル(将来的に明確に記述される)にも同じ基準を適用することができます - 放物線チャンネルのサンプル全体のRMSは、サンプルの2/3のRMSより大きくはありません。ハーストについては、答えが出ないのでとりあえず黙っておくが、そろそろ手をつけたい :)HZ 1986年の数学の参考書を見つけたので、だいぶ頭が良くなってきました :) (コルモゴロフやデミドビッチの方が良かったかも)。
ありがとうございます、了解しました。でも、私は賛成できないし、自分の意見を貫きます。
繰り返しを必要としないシンプルなソリューションがあるのはVERY GOODです。私もリナルはちょっとさびしいです:o(;゜Д゜)私も何冊か見てみようと思います。Rosh もし、あなたがすでに決定的に解決しているのであれば、あなたが上でスケッチした完全な解決策を読むことも、興味を持つすべての人の興味を引くと思います。さらに、アルパリの別記事にすることもできるのでは?
そして、こちらはコースの一種である、http://www.exponenta.ru/educat/class/courses/student/la/examples.asp。
ここでは、連立一次方程式を解くアルゴリズムと、多項式回帰形式での実装を紹介する。
m=1 の場合 - 線。
の場合、放物線となる。
m=3なら-立方体など。
そう、これはまさにsolandrが望んでいたことなのです。しかし、私の数式を使って、このようなちょっとトリッキーなコードを素早く書くには、専門家でないと無理なのではないかという疑問が湧いてきました。しかし、私はコードに目を通しましたが、少なくとも行列の項のインデックス付けは私自身のアルゴリズムで、方程式のシステムを映し出します。なるほど、ANG3110はこういうもので犬を食べていたんですね(クモの枝を覚えています) :)
確かに、全面的に支持します!!!
とても素晴らしい、Necessary indicator!
ANG3110、コードの説明をお願いします。いきなりは難しいですね。もしかして、フォーラムに自分のブログがあって、そこにこのインジケータのことが全部詳しく書いてあったりするんですか?情報をお寄せいただき、ありがとうございました。