數值計算程式大放送-數學變換與濾波 //
//傅利葉級數逼近
//f-長度為2n+1的陣列,存放[0,2pi]上2n+1個等距點處的函式值
//n-整型變數
//a-長度為n+1的陣列,返回時存放傅利葉級數係數ak
//b-長度為n+1的陣列,返回時存放傅利葉級數係數bk
void kfour(double f,int n,double a,double b);
////快速離散傅利葉變換(fft)
//pr-長度為n的陣列,當l=0時,存放n個取樣輸入的實部,返回時存放離散傅利葉變換的模;
// 當l=1時,存放傅利葉變換的n個實部,返回時存放逆傅利葉變換的模;
//pi-長度為n的陣列,當l=0時,存放n個取樣輸入的虛部,返回時存放離散傅利葉變換的幅角(單位為度);
// 當l=1時,存放傅利葉變換的n個虛部,返回時存放逆傅利葉變換的幅角(單位為度);
//n-整型變數,輸入的點數
//k-整型變數,滿足n=2^k
//fr-長度為n的陣列,當l=0時,返回時存放離散傅利葉變換的實部;
// 當l=1時,返回時存放逆傅利葉變換的實部
//fi-長度為n的陣列,當l=0時,返回時存放離散傅利葉變換的虛部;
// 當l=1時,返回時存放逆傅利葉變換的虛部
//l-整型變數,l=1時,計算傅利葉變換,當l=0時,計算逆傅利葉變換
//il-整型變數,il=0時,表示不要求計算傅利葉變換或逆變換的模與幅角
// il=1時,表示要求計算傅利葉變換或逆變換的模與幅角
void kkfft(double pr,double pi,int n,int k,double fr,double fi,int l,int il);
////快速沃什(walsh)變換
//p-長度為n的陣列,存放n=2^k個給定的輸入序列
//n-整型變數,輸入的點數
//k-整型變數,滿足n=2^k
//x-長度為n的陣列,返回時存放沃什(walsh)變換序列;
void kkfwt(double p,double x,int n,int k);
////等距節點五點三次平滑
//n-整型變數,輸入的點數,要求n>=5
//y-長度為n的陣列,存放n個等距觀測點上的觀測資料
//yy-長度為n的陣列,返回時存放平滑結果
void kkspt(int n,double y,double yy);
////離散隨機線性系統的卡爾曼(kalman)濾波
//n-整型變數,動態系統的維數
//m-整型變數,觀測系統的維數
//k-觀測序列的長度
//f-n*n陣列,系統狀態轉移矩陣
//q-n*n陣列,模型雜訊wk的協方差矩陣
//r-m*m陣列,觀測雜訊vk的協方差矩陣
//h-m*n陣列,觀測矩陣
//yy-k*m陣列,觀測向量序列
//x-k*n陣列,x[0,j]存放給定的初值,其餘各行返回狀態向量估計序列
//p-n*n陣列,存放初值p0,返回時存放最後時刻的估計誤差協方差矩陣
//g-n*m陣列,返回最後時刻的穩定增益矩陣
//呼叫函式 brinv(double a,int n);
int klman(int n,int m,int k,double f,double q,double r,double h,double y,double x,double p,double g);
//選自《徐世良數值計算程式集(c)>>
每個程式都加上了適當地注釋,陸陸續續幹了幾個月才整理出來的啊。
今天都給貼出來了
#include
//傅利葉級數逼近
//f-長度為2n+1的陣列,存放[0,2pi]上2n+1個等距點處的函式值
//n-整型變數
//a-長度為n+1的陣列,返回時存放傅利葉級數係數ak
//b-長度為n+1的陣列,返回時存放傅利葉級數係數bk
void kfour(double f,int n,double a,double b)
a[i]=t*(f[0]+u1*c1-u2);
b[i]=t*u1*s1;
u0=c*c1-s*s1;
s1=c*s1+s*c1;
c1=u0;
}return;}
//快速離散傅利葉變換(fft)
//pr-長度為n的陣列,當l=0時,存放n個取樣輸入的實部,返回時存放離散傅利葉變換的模;
// 當l=1時,存放傅利葉變換的n個實部,返回時存放逆傅利葉變換的模;
//pi-長度為n的陣列,當l=0時,存放n個取樣輸入的虛部,返回時存放離散傅利葉變換的幅角(單位為度);
// 當l=1時,存放傅利葉變換的n個虛部,返回時存放逆傅利葉變換的幅角(單位為度);
//n-整型變數,輸入的點數
//k-整型變數,滿足n=2^k
//fr-長度為n的陣列,當l=0時,返回時存放離散傅利葉變換的實部;
// 當l=1時,返回時存放逆傅利葉變換的實部
//fi-長度為n的陣列,當l=0時,返回時存放離散傅利葉變換的虛部;
// 當l=1時,返回時存放逆傅利葉變換的虛部
//l-整型變數,l=1時,計算傅利葉變換,當l=0時,計算逆傅利葉變換
//il-整型變數,il=0時,表示不要求計算傅利葉變換或逆變換的模與幅角
// il=1時,表示要求計算傅利葉變換或逆變換的模與幅角
void kkfft(double pr,double pi,int n,int k,double fr,double fi,int l,int il)
fr[it]=pr[is];
fi[it]=pi[is];
}pr[0]=1.0;
pi[0]=0.0;
p=6.283185306/(1.0*n);
pr[1]=cos(p);
pi[1]=-sin(p);
if (l!=0) pi[1]=-pi[1];
for (i=2; i<=n-1; i++)
for (it=0; it<=n-2; it=it+2)
m=n/2;
nv=2;
for (l0=k-2; l0>=0; l0--)}}
if (l!=0)
}if (il!=0)
else
}else}}
return;
}//快速沃什(walsh)變換
//p-長度為n的陣列,存放n=2^k個給定的輸入序列
//n-整型變數,輸入的點數
//k-整型變數,滿足n=2^k
//x-長度為n的陣列,返回時存放沃什(walsh)變換序列;
void kkfwt(double p,double x,int n,int k)
}for (i=0; i<=n-1; i++)
l=1;
for (i=1; i<=k; i++)
}l=2*l;
}return;
}//等距節點五點三次平滑
//n-整型變數,輸入的點數,要求n>=5
//y-長度為n的陣列,存放n個等距觀測點上的觀測資料
//yy-長度為n的陣列,返回時存放平滑結果
void kkspt(int n,double y,double yy)
}else
yy[n-2]=2.0*y[n-5]-8.0*y[n-4]+12.0*y[n-3];
yy[n-2]=(yy[n-2]+27.0*y[n-2]+2.0*y[n-1])/35.0;
yy[n-1]=-y[n-5]+4.0*y[n-4]-6.0*y[n-3];
yy[n-1]=(yy[n-1]+4.0*y[n-2]+69.0*y[n-1])/70.0;
}return;
}/離散隨機線性系統的卡爾曼(kalman)濾波
//n-整型變數,動態系統的維數
//m-整型變數,觀測系統的維數
//k-觀測序列的長度
//f-n*n陣列,系統狀態轉移矩陣
//q-n*n陣列,模型雜訊wk的協方差矩陣
//r-m*m陣列,觀測雜訊vk的協方差矩陣
//h-m*n陣列,觀測矩陣
//yy-k*m陣列,觀測向量序列
//x-k*n陣列,x[0,j]存放給定的初值,其餘各行返回狀態向量估計序列
//p-n*n陣列,存放初值p0,返回時存放最後時刻的估計誤差協方差矩陣
//g-n*m陣列,返回最後時刻的穩定增益矩陣
int brinv(double a,int n);
int klman(int n,int m,int k,double f,double q,double r,double h,double y,double x,double p,double g)}}
if (d+1.0==1.0)
if (is[k]!=k)
}if (js[k]!=k)
}l=k*n+k;
a[l]=1.0/a[l];
for (j=0; j<=n-1; j++)
}for (i=0; i<=n-1; i++)}}
}for (i=0; i<=n-1; i++)}}
for (k=n-1; k>=0; k--)
}if (is[k]!=k)}}
free(is); free(js);
return(1);
}
Python技巧大放送(三)
此方法可用於將給定字串的第乙個字母轉換為小寫。def decapitalize string return str 1 lower str 1 decapitalize foobar foobar decapitalize foobar foobar 這個方法計算乙個字串中母音的數量 a e i o...
喜迎國慶 好禮大放送
從2004年開始,沃通 wosign 專注提供一站式各種全球信任的數字證書產品和技術服務,為了感謝廣大使用者十年來對沃通 wosign 的信賴和支援,藉此舉國歡慶之際,沃通 wosign 開展 迎國慶,好禮大放送 活動。活動物件 在活動時間內購買沃通ssl證書的所有客戶。活動細則 1.在活動時間內已...
漫畫繪製技法大放送 上
網路收集整理 jundark 1b 一 人體基本結構 1b 小孩 孩子的頭部較大,一般比例為三到四個頭高。成年人 人體立姿為七個頭高 立七 坐姿為五個頭高 坐五 蹲姿為三個半頭高 蹲三半 立姿手臂下垂時,指尖位置在大腿二分一處。老人 由於骨骼收縮,老年人的比例較成年人略小一些,在畫老年人時,應注意頭...