我试图编写这个函数来计算投影公式 P(x)= x +(c- a点x)a *(1 / | a | ^ 2)。注意,x和a是向量,c是标量。另请注意,点x是a和x的乘积点/内积。这就是我所拥有的,
double dotProduct(double *q, double *b, int length) {
double runningSum = 0;
for (int index = 0; index < length; index++)
runningSum += q[index] * b[index];
return runningSum;
}
void project(double *x ,int n, double *a, double c)
{ double m_sum = 0.0;
for (int i = 0; i < n; i++) {
m_sum += a[i]*a[i];
}
for ( int j = 0; j < n; j++) {
x[j] = x[j] + (1/ m_sum)* (c - dotProduct(a, x, n))*a[j];
}
}
所以我的问题是如何创建一个测试文件来检查项目函数的一致性,因为它不会返回任何内容。我的代码是否正确?没有任何回报。