编写计算高斯'收敛准则的算法;方法
Writing an algorithm to calculate the convergency criteria for Gauss' Method in Javascript
我正试图编写一种算法,该算法将计算给定线性系统的收敛标准,但我正面临某种语义错误。然后,我无法取得任何进展,因为我没有太多的JavaScript知识。
代码如下所示:var SumOfLines=function(A,B,X)
{
var N;
var I=[];
for(var i=0;i<A.length;++i)
{
for(var j=0;j<A.length;++j)
{
if (i!=j)
{
N+=Math.abs(A[i][j])
}
else
{
N=N
}
I[i] = N/Math.abs(A[i][i])
}
}
return I[i]
}
var A=[[10,2,1]
,[1,5,1]
,[10,3,10]]
var B=[7,-5,-3]
text=SumOfLines(A,B,[1,2,3])
基本上,它将为线性系统的每条线计算除对角线上的系数外的所有系数的模数之和除以对角线上元素的模数的结果。
编译并运行代码后,我得到的结果是'undefined'
。有人知道是什么导致了这个错误信息吗?谢谢你。
在函数结束时,返回I[I]。此时,i的值为a .length,因此返回的是数组中不存在的元素。如果您想返回数组的最后一个元素,只需返回I.pop()
在Javascript中,未初始化的变量没有定义为默认值。
试着改变这个:
var N;
这:
var N=0;
(或任何其他有意义的初始值)
除此之外,你的数组是空的(size=0),你不能用索引添加新元素,你需要使用push()
,在末尾添加一个新元素,增加数组的大小。
改变:
I[i] = N/Math.abs(A[i][i])
这:
I.push(N/Math.abs(A[i][i]));
更新:我刚刚注意到,改变返回值:
return I[i]
i
在那里没有定义,您在for
之外。改成return I[I.length-1]
感谢您的回答,您在修复代码时帮助了我很多。你可以在下面看到:
var SumOfLines=function(A,B,X)
{
var N=0;
var I=[];
for(var i=0;i<A.length;++i)
{
for(var j=0;j<A.length;++j)
{
if (i!=j)
{
N+=Math.abs(A[i][j])
}
else
{
N+=0
}
I[i] = N/Math.abs(A[i][i])
}
N=0
}
return I
}
var A=[[10,2,1]
,[1,5,1]
,[2,3,10]]
var B=[7,-5,-3]
text=SumOfLines(A,B,[1,2,3])
此外,代码必须为每次迭代重置N的值,这就是代码在第二行和第三行给出错误结果的原因。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 找到将 N 个对象分布到 M 集合中的所有方法的算法
- 算法-根据图像的高度和宽度确定图像尺寸的最佳方法
- 使用webSockets避免Nagle算法效果的最佳方法
- 是否有一种方法可以使用HTML5大纲算法和CSS(可能还有JS)生成文档导航
- 编写计算高斯'收敛准则的算法;方法