java - LU 分解方法中的线程“main”java.lang.NullPointerException 中的异常
问题描述
我有来自 LU 分解方法的 2 个矩阵(下矩阵和上矩阵),我正在尝试获取变量。 这是我的下矩阵和上矩阵
public void getZ() {
for(int i = 0; i < z.length; i++) { // iteration
if(i != nodeApplied) { // first we initialize the z with 0
// unless we reach the node that the force was applied
z[i] = 0;
} else {
z[i] = force;
}
}
}
public void getNewZ() {
// lower
int[] newZ = new int[n]; // we create a new int list to save the values of the variables
for (int i = 0; i < n; i++) {
int decrement = 0; // all positions in the row before the diagonal subtracted
for (int j = 0; j < n; j++) {
if (j == i) { // if it is a diagonal
newZ[i] = (z[i] - decrement) / lu.lower[i][i];
} else { // if is not in the diagonal
decrement += lu.lower[i][j] * newZ[j];
}
}
}
this.z = newZ;
}
public void getVariables() {
getNewZ();
for(int i = 0; i < n; i++) {
System.out.println(z[i]);
}
}
Exception in thread "main" java.lang.NullPointerException
at Matrix.getNewZ(Matrix.java:92)
at Matrix.<init>(Matrix.java:68)
at Matrix.main(Matrix.java:118)
解决方案
我认为变量 'lu' 尚未实例化,当前指向 null。
推荐阅读
- sql - SQL:按变量等级检索数据
- vue.js - Vue 无法读取未定义的属性
- laravel - Laravel 5.3 日志权限 - 以无人身份创建/写入:nogroup
- android - 意图失败并在 SpeechFactory.fromSubscription 上取消(LUIS azure,android sdk)
- xgboost - Python、XGBoost、自定义目标函数:预测在迭代过程中保持不变,即使梯度不为零
- python - 将 Flask 请求注入另一个 Flask 应用程序
- r - H0 和 FM 指数下的贝克伽马分布 (dendextend)
- javascript - 实现泛型类型的打字稿泛型类
- vba - 根据单元格值复制数据
- javascript - Jimdo:使用 javascript/jquery 将占位符添加到 html