亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kaltest.cpp

?? 基于C的Kalman濾波源碼
?? CPP
字號:
// Kaltest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "stdlib.h"
#include <stdio.h>
#include <malloc.h>
#include <math.h>

int klman(int n, int m, int k, double f[], double q[], double r[], double h[], double y[], double x[], double p[], double g[]);
//n 是時間更新(動態)系統的維數
//m 是觀測系統的維數
//k 是觀測序列的長度
//f, n x n 階增益矩陣,將k-1時刻狀態與K時刻狀態聯系起來
//q, n x n 階矩陣,是差分方程(模型)中w的過程激勵噪聲的協方差矩陣
//r, m x m 階矩陣,是觀測噪聲的協方差矩陣
//h, m x n 階矩陣,是觀測矩陣
//y, k x M 階矩陣,是觀測向量序列y(i,j), (j=1,.....m),表示第i時刻的觀測向量
//x, k x n 階矩陣,輸入兼輸出,
//p, n x n 階矩陣,輸入兼輸出,調用時存放p0,返回時存放最后時刻的估計誤差協方差矩陣
//g, n x m 階矩陣,輸出參數,存放最后時刻穩定增益矩陣

int rinv(int n, double a[]);

int main(int argc, char* argv[])
{
	
	

 




	//printf("Hello World!\n");
	return 0;
}


//
//-------------------------------------------------------------------------------------------------------------------
//離散線性 Kalman filter
int klman(int n, int m, int k, double f[], double q[], double r[], double h[], double y[], double x[], double p[], double g[])
{
	int i,j,kk,ii,l,jj,js;
	double *e,*a,*b;
	//extern int brinv();
	e=(double *)malloc(m*m*sizeof(double));
	l=m;
	if (l<n) l=n;
	a=(double *)malloc(l*l*sizeof(double));
	b=(double *)malloc(l*l*sizeof(double));
	
	for (i=0; i<=n-1; i++)
		for (j=0; j<=n-1; j++)
		{
			ii=i*l+j; a[ii]=0.0;
			for (kk=0; kk<=n-1; kk++)
				a[ii]=a[ii]+p[i*n+kk]*f[j*n+kk];
		}
		
	for (i=0; i<=n-1; i++)
		for (j=0; j<=n-1; j++)
		{
			ii=i*n+j; p[ii]=q[ii];
			for (kk=0; kk<=n-1; kk++)
				p[ii]=p[ii]+f[i*n+kk]*a[kk*l+j];
		}
			
		for (ii=2; ii<=k; ii++)
		{
			for (i=0; i<=n-1; i++)
				for (j=0; j<=m-1; j++)
				{
					jj=i*l+j; a[jj]=0.0;
					for (kk=0; kk<=n-1; kk++)
						a[jj]=a[jj]+p[i*n+kk]*h[j*n+kk];
				}
					
			for (i=0; i<=m-1; i++)
				for (j=0; j<=m-1; j++)
				{
					jj=i*m+j; e[jj]=r[jj];
					for (kk=0; kk<=n-1; kk++)
						e[jj]=e[jj]+h[i*n+kk]*a[kk*l+j];
				}
						
			js=rinv(m,e);
			if (js==0) 
			{
				free(e);
				free(a);
				free(b);
				return(js);
			}
			
			for (i=0; i<=n-1; i++)
				for (j=0; j<=m-1; j++)
				{
					jj=i*m+j; g[jj]=0.0;
					for (kk=0; kk<=m-1; kk++)
						g[jj]=g[jj]+a[i*l+kk]*e[j*m+kk];
				}
				
			for (i=0; i<=n-1; i++)
			{
				jj=(ii-1)*n+i; x[jj]=0.0;
				for (j=0; j<=n-1; j++)
					x[jj]=x[jj]+f[i*n+j]*x[(ii-2)*n+j];
			}
			
			for (i=0; i<=m-1; i++)
			{
				jj=i*l; b[jj]=y[(ii-1)*m+i];
				for (j=0; j<=n-1; j++)
					b[jj]=b[jj]-h[i*n+j]*x[(ii-1)*n+j];
			}
			
			for (i=0; i<=n-1; i++)
			{
				jj=(ii-1)*n+i;
				for (j=0; j<=m-1; j++)
					x[jj]=x[jj]+g[i*m+j]*b[j*l];
			}
			
			if (ii<k)
			{
				for (i=0; i<=n-1; i++)
					for (j=0; j<=n-1; j++)
					{
						jj=i*l+j; a[jj]=0.0;
						for (kk=0; kk<=m-1; kk++)
							a[jj]=a[jj]-g[i*m+kk]*h[kk*n+j];
						if (i==j) a[jj]=1.0+a[jj];
					}
						
				for (i=0; i<=n-1; i++)
					for (j=0; j<=n-1; j++)
					{
						jj=i*l+j; b[jj]=0.0;
						for (kk=0; kk<=n-1; kk++)
							b[jj]=b[jj]+a[i*l+kk]*p[kk*n+j];
					}

				for (i=0; i<=n-1; i++)
					for (j=0; j<=n-1; j++)
					{
						jj=i*l+j; a[jj]=0.0;
						for (kk=0; kk<=n-1; kk++)
							a[jj]=a[jj]+b[i*l+kk]*f[j*n+kk];
					}

				for (i=0; i<=n-1; i++)
					for (j=0; j<=n-1; j++)
					{
						jj=i*n+j; p[jj]=q[jj];
						for(kk=0; kk<=n-1; kk++)
							p[jj]=p[jj]+f[i*n+kk]*a[j*l+kk];
					}
				}
			}
			
			free(e);
			free(a);
			free(b);
			
			return(js);
}


//
//--------------------------------------------------------------------------------------------------------------------
//矩陣求逆
int rinv(int n, double a[])
{
	int *is,*js,i,j,k,l,u,v;
	double d,p;
	
	is=(int *)malloc(n*sizeof(int));
	js=(int *)malloc(n*sizeof(int));

	for (k=0; k<=n-1; k++)
	{
		d=0.0;
		for (i=k; i<=n-1; i++)
			for (j=k; j<=n-1; j++)
			{
				l=i*n+j; p=fabs(a[l]);
				if (p>d) { d=p; is[k]=i; js[k]=j;
				}
			}
		
		if (d+1.0==1.0)
		{
			free(is);
			free(js);
			printf("err**not inv\n");
			return(0);
		} 

	if (is[k]!=k)
		for (j=0; j<=n-1; j++)
		{
			u=k*n+j;
			v=is[k]*n+j;
			p=a[u]; a[u]=a[v]; a[v]=p;
		} 

	if (js[k]!=k)
		for (i=0; i<=n-1; i++)
		{
			u=i*n+k;
			v=i*n+js[k];
			p=a[u]; a[u]=a[v]; a[v]=p;
		} 

	l=k*n+k;
	
	
	a[l]=1.0/a[l];
	for (j=0; j<=n-1; j++)
		if (j!=k)
		{
			u=k*n+j;
			a[u]=a[u]*a[l];
		}

	for (i=0; i<=n-1; i++)
		if (i!=k)
			for (j=0; j<=n-1; j++)
				if (j!=k)
				{
					u=i*n+j;
					a[u]=a[u]-a[i*n+k]*a[k*n+j];
				}
				
	for (i=0; i<=n-1; i++)
		if (i!=k)
		{
			u=i*n+k;
			a[u]=-a[u]*a[l];
		}
	} 

	for (k=n-1; k>=0; k--)
	{
		if (js[k]!=k)
			for (j=0; j<=n-1; j++)
			{
				u=k*n+j; v=js[k]*n+j;
				p=a[u]; a[u]=a[v]; a[v]=p; 
			}
			
		if (is[k]!=k)
			for (i=0; i<=n-1; i++)
			{
				u=i*n+k;
				v=i*n+is[k];				
				p=a[u]; a[u]=a[v]; a[v]=p;
			}
	}
			
		free(is);
		free(js);
		
		return(1);
} 

//
//---------------------------------------------------------------------------------------------------------------------
//
double * MatrixInver(double A[],int m,int n) /*矩陣轉置*/
    { 
      int i,j; 
      double *B=NULL; 
      B=(double *)malloc(m*n*sizeof(double)); 
      
	  for(i=0;i<n;i++)
		  for(j=0;j<m;j++)
			  B[i*m+j]=A[j*n+i];

      return B; 
     }
//
//
//
double Surplus(double A[],int m,int n) /*求矩陣行列式*/
     { 
      int i,j,k,p,r; 
      double X,temp=1,temp1=1,s=0,s1=0; 
      
	  if(n==2)
      {
		  for(i=0;i<m;i++)
			  for(j=0;j<n;j++)
				  if((i+j)%2) temp1*=A[i*n+j];
				  else temp*=A[i*n+j];
				  X=temp-temp1;
	  } 
      else
	  { 
      
		  for(k=0;k<n;k++)
		  {
			  for(i=0,j=k;i<m,j<n;i++,j++)
				  temp*=A[i*n+j];
			  if(m-i)
			  {
				  for(p=m-i,r=m-1;p>0;p--,r--)
					  temp*=A[r*n+p-1];
			  }
			  
			  s+=temp;
			  temp=1;
		  }
		  
		  for(k=n-1;k>=0;k--)
		  {
			  for(i=0,j=k;i<m,j>=0;i++,j--)
				  temp1*=A[i*n+j];
			  if(m-i)
			  {
				  for(p=m-1,r=i;r<m;p--,r++)
					  temp1*=A[r*n+p];
			  }
			  
			  s1+=temp1;
			  temp1=1;
		  }
		  
		  X=s-s1;
	  }
      
	  return X;
	 
	 }
//
//
//
double * MatrixOpp(double A[],int m,int n) /*矩陣求逆*/ 
     { 
      int i,j,x,y,k; 
      double *SP=NULL,*AB=NULL,*B=NULL,X,*C; 
      SP=(double *)malloc(m*n*sizeof(double)); 
      AB=(double *)malloc(m*n*sizeof(double)); 
      B=(double *)malloc(m*n*sizeof(double)); 
      X=Surplus(A,m,n); 
      X=1/X; 
      for(i=0;i<m;i++) 
      for(j=0;j<n;j++) 
      {for(k=0;k<m*n;k++) 
      B[k]=A[k]; 
      {for(x=0;x<n;x++) 
      B[i*n+x]=0; 
      for(y=0;y<m;y++) 
      B[m*y+j]=0; 
      B[i*n+j]=1; 
      SP[i*n+j]=Surplus(B,m,n); 
      AB[i*n+j]=X*SP[i*n+j]; 
      } 
      } 
      C=MatrixInver(AB,m,n); 
      return C; 
     } 
//
//
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情av网| 一区二区三国产精华液| 毛片av一区二区三区| 欧美视频一二三区| 日韩制服丝袜av| 日韩欧美亚洲另类制服综合在线| 免费看日韩精品| 精品国产免费视频| 成人午夜免费视频| 国产精品国产三级国产aⅴ原创| 成人中文字幕电影| ●精品国产综合乱码久久久久| 91欧美一区二区| 亚洲第四色夜色| 欧美成人女星排名| 国产99精品在线观看| 亚洲人成在线播放网站岛国| 日本道在线观看一区二区| 亚洲高清免费视频| 26uuu成人网一区二区三区| 国产精品白丝jk白祙喷水网站 | 国产农村妇女精品| 99久久精品99国产精品| 亚洲午夜久久久久久久久电影网 | 亚洲欧美国产三级| 911精品国产一区二区在线| 久久精品国产精品亚洲精品| 久久久99精品免费观看| 91高清视频免费看| 久色婷婷小香蕉久久| 中文字幕一区二区三区四区不卡| 欧美怡红院视频| 国内精品国产成人| 自拍偷拍亚洲欧美日韩| 欧美一区二区三区播放老司机| 国产精品白丝av| 亚洲chinese男男1069| 久久久综合激的五月天| 在线视频中文字幕一区二区| 免费成人你懂的| 亚洲激情校园春色| 久久精品一区二区三区不卡牛牛| 在线欧美日韩国产| 国产精品综合久久| 日韩av一级片| 一区二区三区在线免费播放| 久久久亚洲高清| 欧美精品v国产精品v日韩精品| 国产丶欧美丶日本不卡视频| 图片区日韩欧美亚洲| 国产精品欧美综合在线| 宅男噜噜噜66一区二区66| 91一区二区在线| 国产一区二区久久| 日日噜噜夜夜狠狠视频欧美人| 中文字幕精品三区| 欧美大肚乱孕交hd孕妇| 欧美在线观看一二区| 成人av免费在线观看| 国内精品久久久久影院薰衣草| 亚洲电影在线免费观看| 亚洲欧美一区二区三区久本道91| 久久久久99精品国产片| 欧美福利视频一区| 欧洲亚洲精品在线| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品99久久久| 国内精品视频一区二区三区八戒| 偷拍一区二区三区| 一区二区三区久久| 亚洲欧美精品午睡沙发| 国产精品日产欧美久久久久| 久久久精品国产免费观看同学| 日韩午夜中文字幕| 日韩一级免费观看| 日韩一区二区在线观看| 56国语精品自产拍在线观看| 欧美亚洲国产怡红院影院| 97精品久久久午夜一区二区三区 | 久久se这里有精品| 蜜臀91精品一区二区三区| 午夜精品123| 日韩精品亚洲一区| 偷拍自拍另类欧美| 美女任你摸久久| 麻豆一区二区三| 久久99久久久久| 韩国v欧美v日本v亚洲v| 激情亚洲综合在线| 国产91精品入口| 99久久精品国产一区| av网站免费线看精品| 欧美一区二区播放| 欧美久久久久中文字幕| 欧美精品电影在线播放| 日韩欧美电影在线| 久久久精品tv| 中文字幕一区av| 亚洲欧美激情在线| 丝袜美腿成人在线| 久久成人av少妇免费| 国内欧美视频一区二区| 高清不卡一区二区在线| 91蜜桃免费观看视频| 欧美色网站导航| 欧美刺激午夜性久久久久久久| 久久在线观看免费| 自拍偷拍亚洲欧美日韩| 亚洲国产精品一区二区久久| 秋霞国产午夜精品免费视频 | 美女视频黄免费的久久| 国产精品123区| 色女孩综合影院| 欧美一级片在线| 国产精品视频九色porn| 亚洲国产日韩在线一区模特| 蜜桃精品视频在线| av高清久久久| 日韩一级完整毛片| 国产精品乱码妇女bbbb| 天堂va蜜桃一区二区三区漫画版| 激情久久久久久久久久久久久久久久 | 在线观看视频一区| 精品卡一卡二卡三卡四在线| 最新日韩av在线| 狂野欧美性猛交blacked| 99久久国产综合色|国产精品| 欧美精品免费视频| 国产精品国产三级国产专播品爱网 | 久久综合色8888| 洋洋av久久久久久久一区| 精品中文字幕一区二区| 91碰在线视频| 久久久精品人体av艺术| 午夜精品福利在线| 成人午夜视频在线观看| 51精品国自产在线| 亚洲色图丝袜美腿| 国产另类ts人妖一区二区| 欧美日韩一区二区三区免费看| 久久综合九色综合97_久久久| 亚洲国产欧美另类丝袜| 成人av网在线| 久久久亚洲综合| 日本欧美久久久久免费播放网| 99精品视频在线免费观看| 久久综合给合久久狠狠狠97色69| 亚洲午夜一区二区三区| av激情亚洲男人天堂| 久久精品免费在线观看| 秋霞午夜av一区二区三区| 欧美亚洲综合在线| 亚洲人成小说网站色在线| 国产一区美女在线| 日韩欧美区一区二| 午夜精品在线看| 欧美这里有精品| 中文字幕一区二区5566日韩| 国产sm精品调教视频网站| 精品国产乱码久久久久久老虎| 丝袜美腿亚洲综合| 欧美日韩免费高清一区色橹橹| 亚洲欧美激情插| 色哟哟在线观看一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 69堂亚洲精品首页| 婷婷综合久久一区二区三区| 欧美主播一区二区三区| 一区二区三区四区在线播放| 99精品欧美一区| 亚洲色图在线看| 91麻豆免费在线观看| 亚洲视频狠狠干| 91啪九色porn原创视频在线观看| 综合欧美一区二区三区| 99久久综合国产精品| 自拍偷拍欧美精品| 91久久国产最好的精华液| 一区二区三区欧美日韩| 91久久精品一区二区三区| 亚洲国产综合91精品麻豆| 在线免费一区三区| 三级影片在线观看欧美日韩一区二区| 欧美男女性生活在线直播观看| 亚洲成a天堂v人片| 日韩一区二区三区电影在线观看| 免费高清视频精品| 久久九九国产精品| 9人人澡人人爽人人精品| 亚洲乱码国产乱码精品精的特点 | 久久久久久久久99精品| 国产不卡高清在线观看视频| 国产精品人成在线观看免费| 一本一道波多野结衣一区二区| 一区二区免费看| 日韩三级高清在线| 成人高清免费在线播放| 一区二区三区中文字幕精品精品 | 国产蜜臀av在线一区二区三区| av一区二区不卡|