📄 gramsch.cpp
字号:
#include <stdio.h>
/*gramsch-克莱姆-施密特正交化子程序
*对n*m矩阵ww的第k行做施密特正交化,防止收敛到同一个方向
*/
void gramsch (float *ww, int n, int m, int k)
{
int ip, jp;
float tmp;
/* do Gram-Schmidt on row k of (n*m) matrix ww */
k -= 1;
if (k > n) {
printf("Error in gramsch");
}
else {
for (ip = 0; ip < k; ip++) {
tmp = 0;
for (jp = 0; jp < m; jp++) {
tmp += ((ww[m * ip + jp]) * (ww[m * k + jp]));
}
for (jp = 0; jp < m; jp++) {
ww[m * k + jp] = (ww[m * k + jp] - ((ww[m * ip + jp]) * tmp));
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -