📄 norm.java
字号:
package numericalAnalysis.norm;
/**
* 计算一个向量或一个矩阵的1范数,2范数,无穷大范数.注意:计算矩阵的2范数的方法未完成
*
* @author 山
*
*/
public class Norm {
/**
* 计算向量的1范数
*
* @param n
* 向量的维数
* @param vector
* 向量vector必须为vector[i]=vector的第i个元素,即0下标不使用
* @return 向量的1范数
*/
public static double vectorOne(int n, double[] vector) {
double sum = 0;
for (int i = 1; i < n + 1; i++)
sum += Math.abs(vector[i]);
return sum;
}
/**
* 计算向量的2范数
*
* @param n
* 向量的维数
* @param vector
* 向量vector必须为vector[i]=vector的第i个元素,即0下标不使用
* @return 向量的2范数
*/
public static double vectorTwo(int n, double[] vector) {
double sum = 0;
for (int i = 1; i < n + 1; i++)
sum += Math.pow(vector[i], 2);
return Math.sqrt(sum);
}
/**
* 计算向量的无穷大范数
*
* @param n
* 向量的维数
* @param vector
* 向量vector必须为vector[i]=vector的第i个元素,即0下标不使用
* @return 向量的无穷大范数
*/
public static double vectorInfinitive(int n, double[] vector) {
double max = Math.abs(vector[1]);
for (int i = 2; i < n + 1; i++)
if (max < Math.abs(vector[i]))
max = Math.abs(vector[i]);
return max;
}
/**
* 计算矩阵的1范数
*
* @param n
* 矩阵的阶数
* @param matrix
* 矩阵matrix必须为matrix[i][j]=matrix的第i行j列元素,即有0的下标都不使用
* @return 矩阵的1范数
*/
public static double matrixOne(int n, double[][] matrix) {
double[] sum = new double[n + 1];
for (int i = 1; i < n + 1; i++)
sum[i] = vectorOne(n, matrix[i]);
double maxSum = sum[1];
for (int i = 2; i < n + 1; i++)
if (maxSum < sum[i])
maxSum = sum[i];
return maxSum;
}
/**
* 计算矩阵的2范数(未完成,调用则返回0)
*
* @param n
* 矩阵阶数
* @param matrix
* 矩阵matrix必须为matrix[i][j]=matrix的第i行j列元素,即有0的下标都不使用
* @return 矩阵的2范数
*/
public static double matrixTwo(int n, double[][] matrix) {
return 0;
}
/**
* 计算矩阵的无穷大范数
*
* @param n
* 矩阵阶数
* @param matrix
* 矩阵matrix必须为matrix[i][j]=matrix的第i行j列元素,即有0的下标都不使用
* @return 矩阵的无穷大范数
*/
public static double matrixInfinitive(int n, double[][] matrix) {
double[] sum = new double[n + 1];
for (int j = 1; j < n + 1; j++)
for (int i = 1; i < n + 1; i++)
sum[j] += matrix[i][j];
double maxSum = sum[1];
for (int i = 2; i < n + 1; i++)
if (maxSum < sum[i])
maxSum = sum[i];
return maxSum;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -