问题标签 [numerical-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 根据输入在matlab中实现的异常行为算法
我正在为科学计算做家庭作业,特别是matlab中的迭代方法Gauss-Seidel和SOR,问题是对于一个矩阵给了我意想不到的结果(解决方案不收敛)并且对于另一个矩阵收敛。
这是sor的代码,其中:
- A:系统矩阵 A * x = b
- xini:初始迭代数组
- b:与系统无关的数组 A * x = b
- maxiter:最大迭代次数
- tol:公差;
- 特别是,SOR 方法将接收称为 w 的第六个参数,它对应于松弛参数。
这是sor方法的代码:
这是 Gauss-seidel 方法的代码:
对于此输入:
当调用函数 Gauss-Seidel 或 sor 时:
高斯的输出是:
对于 sor 是:
但是对于以下系统能够找到解决方案:
解决方案:
方法的行为取决于两个矩阵的条件?因为我注意到第二个矩阵比第一个矩阵的条件更好。有什么建议么?
matlab - matlab拟合exp2
我没有成功地使用 exp2(2 个指数的总和)寻找拟合函数的文档。如何操作功能一目了然:
但是由于有多种方法可以拟合指数总和,因此我试图找出使用了什么算法。特别是当我用一点噪音拟合一个指数(原始数据)时会发生什么,指数是如何传播的。我模拟了几个案例,似乎它“放弃”了第二组系数的所有权重,但行数据分析通常显示不同的行为。
有人对文档有建议吗?
image - 随机像素的图像插值
我想问一个关于单通道图像插值的问题。为简单起见选择单通道,否则我正在处理多通道图像。假设有一个具有纯黑色背景(像素强度 0)的单通道图像,其中有一些像素具有非零强度值。我想应用一种插值算法来用来自相邻非零强度像素的插值填充图像的整个黑色区域。
对于适用于此问题的平滑插值,您会推荐哪种插值算法?
作为输入,我们当然知道那些非黑色像素的位置及其强度。但是位置有点随机(一行可能是 10 个像素,另一行只有 8 个)。
c++ - 用于数值计算的有用 c++ 库
到目前为止,我已经使用了 boost 库。
但是,我想使用矩阵运算和随机数。
请让我知道有用的 C++ 库。
谢谢。
matlab - 在 MATLAB 中为图像处理生成三次样条时出错 - “数据站点应该是不同的”
我正在用 MATLAB 开发一个图像处理程序。其中一部分涉及从输入图像中以固定间隔对一些点进行采样(这基本上是具有1 像素宽边缘的二进制线图,类似于 Paint / GIMP / Photoshop 中的“铅笔”工具制作的那些),以及然后生成以采样像素为节点的三次样条曲线。
现在,我知道如何在给定一组点的情况下在 MATLAB 中生成三次样条(x, y)
,但问题是:图像不是真正的函数(x
比如x
像素的行号),因为它可能有多个“值” " 在每个 x - 值是该行中所有黑色列的数量。因此,MATLAB 的spline()
函数抱怨“数据站点应该是不同的”。
我该如何解决这个问题?
c++ - 自适应正交 (C++)
我在 C++ 中的自适应梯形规则算法存在问题——基本上,无论指定的容差如何,我都会得到相同的精确近似值。对于较大的公差,递归应该很早就停止(因为 abs(coarse-fine) 将小于 3.0*large tolerance 并且递归的 minLevel 约为 5)。
但是,此函数的作用是运行最大次数,而不管公差的选择如何。我哪里搞砸了?编辑:也许我的辅助函数有问题?
这是 main() 中的内容:
math - 使用固定(常数)指数计算功率
我有一种情况,我需要计算 x^ya 很多次,其中 y 是一个常数,并且 x 保证是一个有效数字。
如何比 Pow(double x, double y) 更有效地执行各种检查和评估?
我希望预先计算 y 变换。
编辑
两者都是实数。x = 0 ... 4,000,000,000。
embedded - PIC中的计算方程
在我问这个问题之前,我先介绍一下问题的背景。
我的 PIC 18F 汇编程序解决了 Rntc 到 T°C 的关系。但最好的精度是 3 位数。
我在组装示例中使用的 NTC 参考电阻是 10000 欧姆,对应于 25°C 的温度。
只有 3 位可用,方程解为 =xF6 ,d246 在 T 的显示屏上显示,小数点在 24 和 6 之间。
计算 T(包括牛顿近似)的时间约为 800us。这个计算时间看起来比 MPlab C 好很多
计算方程 y = 9.228*x*x-840.852*x+25236.82 的 sqrt 的汇编程序遇到了缩放 b2-4ac 的问题……当我尝试包含小数时,这些数字溢出了我的 24 位数学套件,例如我必须使用 a=9 。b=840 c=25236
Q1 使用整数,是否有一些技巧可以使用 24 位数学计算上述数字?
c++ - 正确设计并行的、性能关键的数字代码
我是一名受过培训的机械工程师,在研究环境中工作,主要扩展现有的 25 岁以上 C 的大型数字代码库。我最近决定要学习如何从头开始设计一个严肃的科学软件。
我曾与大学计算机科学系的一些学者交谈过,似乎人们普遍认为,最有可能构建大规模数值应用程序的人是机械/化学/生物系。同样,大多数编写这些应用程序的人都很少或根本没有接受过软件设计原则的培训。
作为大多数工程师,我是边做边学的,所以我将给自己设定一个任务来完成以下任务:开发一个自适应网格方案,根据任意移动曲线的位置进行局部细化/粗化。穿过这个网格,求解热方程(或其他一些 PDE)。
我想包括的东西:
- 并行(我对 MPI 有短暂的经验,所以可能会坚持这个)——也许结合在 OpenCL 中(周围没有 Nvidia 卡,所以没有 CUDA)
- Python 和 C++ 的结合(Python 中的脚本驱动 UI,C++ 中的执行)
- 面向对象,基于设计模式(我很想学的一部分)
- 单元测试框架(我使用过 gtest 并且可能会坚持使用它,但不确定单元测试的详细程度,我已经阅读了有关单元测试科学代码的各种不同建议)
- 基于Linux——在这个阶段不要太在意可移植性
- 也许使用 Boost 库
- 使用 HDF5 或 VTK 保存结果(我知道 VTK,但觉得 HDF5 更适合)
- 性能分析
我试图回答的一些问题:
- 这感觉像是一项艰巨的任务,没关系,但是分解它的一般过程是什么?您是从基本的基础设施(MPI 包装器、矩阵类等)开始,还是从高级交互(主控制器、UI 等)开始,还是从完全不同的地方开始?
- Python + C++ 的范例是否适合在集群上启动 MPI?
- 我还没有找到任何在科学背景下处理应用程序设计的书籍——是因为它不存在,还是我没有找对地方?
- 我很清楚理想的“让它运行然后配置文件”的优化方式,但我认为一开始做出的一些非常基本的设计决策会影响性能。对于数字代码的高级设计,需要注意哪些主要问题?
注意:我不确定这个问题是否符合 stackexchange 格式——如果不符合,我会很乐意重新措辞……