问题标签 [equation-solving]

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.

0 投票
4 回答
3163 浏览

python - 如何精确求解具有大整数系数(超过整数)的二次方程?

我在 Google Code Jam 中读到了一个关于靶心的问题。(比赛已经结束了,可以聊聊了)

在此处输入图像描述

玛丽亚从 t 毫升黑色颜料开始,她将用它来绘制厚度为 1 厘米(一厘米)的戒指。厚度为 1 厘米的环是两个半径相差 1 厘米的同心圆之间的空间。

Maria 在半径为 r cm 的白色圆圈周围画出第一个黑色环。

半径为 1cm 的圆盘面积为 π cm2。覆盖面积 π cm2 需要一毫升油漆。玛丽亚最多可以画出多少个黑环?

根据我在纸上的计算,绘制一个带有 n 个环、内半径为 r 的靶心的油漆面积是 pi 的倍数2*n**2 + n*(2*r-1)

所以给定t*pi油漆的毫升数,问题是找到最大的 n 使得f(n,r) <= t

今天早上我用二分搜索解决了这个问题https://github.com/hickford/codejam/blob/master/2013/1A/bullseye/bu​​llseye.py

我选择二分搜索而不是二次方程,因为我非常担心浮点不精确——在这个问题中,t 和 r 是 10**18 大的整数)。在之前的 Code Jam 中,算术的不精确让我感到厌烦。

但我很好奇。你能支持二次方程以给出具有大整数系数的方程的正确答案吗?像 Sympy 或 Numpy 这样的数学库有什么可以提供给我的吗?


证明二次方程对大输入给出错误的答案。例如,使用r=308436464205151562t=1850618785230909388。要求解的二次方程是

IE。系数是

用 Python 计算

这是错误的答案!正确答案(通过二分搜索找到)是 3

0 投票
5 回答
6716 浏览

python - 求解二次公式

我正在编写一个程序来使用二次公式求解二次方程,但它仅在 a = 1 时有效,但我希望它在 a 大于 1 时工作

这是我的代码:

它适用于 1,但是当我使用说 4 时使用多个数字时,我会收到此错误

如果有帮助,有没有办法解决这个问题!

0 投票
2 回答
13160 浏览

matlab - 找到欠定线性方程组的正解

我对matlab有点陌生,如果这非常简单,我很抱歉。

考虑以下问题:

找到x_1, x_2, x_3 > 0这样的

在这种情况下,我想要解决方案

有没有一种简单的方法可以让 Matlab 为我解决这样的问题?

0 投票
3 回答
3659 浏览

matlab - 非线性方程符号系统matlab

我试图象征性地解决以下方程组:

使用函数 solve(Sys,[x,y,z,w,q,r,t]) 我得到:警告:找不到显式解决方案。

在 169 处解决

但是如果我尝试在 Mathematica 中求解相同的方程组,我会找到两个解。难道我做错了什么???

谢谢!

0 投票
1 回答
3763 浏览

matlab - MATLAB。试图访问 y(4);索引超出范围,因为 numel(y)=3

我对 matlab ode45 有疑问。当我编写系统 y(1) 和 y(2) 时,它只能工作,但是当我使用更多时,它会显示尝试访问 y(4);索引超出范围,因为 numel(y)=3 这是我的程序的代码,请检查一下`

`

0 投票
2 回答
331 浏览

performance - 更高效的算法在 Haskell 中表现更差

我的一个朋友在他参加的 C++ 课程中向我展示了一个家庭练习。由于我已经了解 C++,但刚开始学习 Haskell,我尝试以“Haskell 方式”解决练习。

这些是练习说明(我是从我们的母语翻译的,所以如果说明不清楚,请发表评论):

编写一个程序,从用户那里读取非零系数 (A,B,C,D) 并将它们放在以下等式中: A*x + B*y + C*z = D 程序还应该从用户那里读取N,代表一个范围。程序应在 -N/2 到 N/2 范围内找到方程的所有可能积分解。

例如:

最直接的算法是通过蛮力尝试所有可能性。我通过以下方式在 Haskell 中实现它:

到目前为止一切都很好,但是练习说明指出可以实现更有效的算法,所以我想如何让它变得更好。由于方程是线性的,基于 Z 始终是第一个递增的假设,一旦找到解决方案,就没有必要递增 Z。相反,我应该递增 Y,将 Z 设置为范围的最小值和继续。这样我可以节省多余的执行。由于 Haskell 中没有循环(至少据我所知),我意识到应该使用递归来实现这种算法。我通过以下方式实现了算法:

两者产生相同的结果。但是,尝试测量执行时间会产生以下结果:

这意味着愚蠢的算法实际上比更复杂的算法执行得更好。基于我的算法是正确的假设(我希望不会出错:)),我假设第二个算法受到递归产生的开销的影响,而第一个算法不是因为它是使用实现的列表理解。有没有办法在 Haskell 中实现比愚蠢的算法更好的算法?(另外,我很高兴收到关于我的编码风格的一般反馈)

0 投票
1 回答
12518 浏览

optimization - 在 Matlab 中解决多变量优化的最佳方法?

我正在尝试以数值方式计算许多方程和变量(100+)的系统的解。到目前为止,我尝试了三件事:

  1. 我现在知道 p(i) 的向量(包含大部分内生变量)正在减少。因此,我只给出了一些起点,然后当我看到特定的 p 太低(高)时,我的猜测增加(减少)。当然,这总是以另一个被固定为条件,但事实并非如此。这最终应该会起作用,但是我在有限时间内达到解决方案既不高效也不明显。它在将系统减少到 4-6 个变量时起作用。
  2. 我可以围绕彼此创建 100 多个循环,并为每个循环使用二等分。这最终会引导我找到解决方案,但是需要很长时间来编程(因为我不知道如何在彼此周围创建 n 个循环而不必实际编写循环 - 这也很糟糕,因为我想增加/减少变量的数量很容易)并执行。
  3. 我正在尝试 fminsearch,但正如预期的那样浪费了大量的变量 - 没门!

我会很感激任何想法......这是代码(这是我尝试过的 fminsearch):

这是运行文件

这是程序文件

0 投票
1 回答
1243 浏览

python - 如何使用 PuLP 配置时间/时间线性编程约束?

我正在尝试使用 PuLP 解决假设的线性问题。该问题旨在最大限度地降低 5 年内的运营成本,同时最大限度地提高产品形状和条件。该问题必须产生5个成本,每年一个,同时优化整个系统和每年的运营。

total_cost涉及维护三种类型的传感器:

  • 问题必须考虑到,每年,传感器的状态都比前一年好,并且不能超过 12% 的传感器的状态为"Very poor".
  • 如果曝光不高,系统应该能够用另一种类型的传感器替换或降级购买新的传感器。(此声明与本帖无关)

对于sensor_type_a

  • 固定成本:
    • 每单位 1 至 5 年的租金为[50, 55, 55, 55, 60]
    • 第 1 年至第 5 年的每单位保险为[ 1.0, 1.2, 1.2, 1.8, 2.0]
  • 可变成本:
    • 功率基于传感器测量的项目数:10+.05*each_measurement。价格每年上涨1%
    • 维护是基于$500 for the total number of sensors + each_measurement*2.45. 价格每年上涨2%
  • 曝光指数指示每个传感器的状态,并基于下表:

_

对于sensor_type_b

  • 固定成本:
    • 每单位 1 至 5 年的租金为[60, 65, 65, 70, 75]
    • 第 1 年至第 5 年的每单位保险为[ 1.1, 1.3, 1.4, 1.7, 2.0]
  • 可变成本:
    • 功率基于传感器测量的项目数:10+.08*each_measurement。价格每年上涨1%
    • 维护是基于$500 for the total number of sensors + each_measurement*2.65. 价格每年上涨1.5%
  • 曝光指数表示每个传感器的状态,基于下表:

_

对于sensor_type_c

  • 固定成本:
    • 1 至 5 年所有单元的维护是[5000, 5100, 5200, 5300, 5400]
    • 第 1 年至第 5 年的每单位保险为[ 1.1, 1.3, 1.4, 1.7, 2.0]
  • 曝光指数表示每个传感器的状态,基于下表:

_

我的目标函数/方程是最小化之一:

我的限制:

我在设置约束函数时遇到了麻烦。这是我在概念上想做的事情(伪和python的混合):

问题:

如果我的伪+python 没有走上正轨,我该如何正确设置约束来解决问题?

请注意,我为每个变量填写的每个项目都有一个表格,其中包含适当的类别和数据点

编辑以反映以下评论:

总共有 2,700 个单元或位置需要测量。我有以下性质的表:

该模型不能改变今年传感器类型的构成,但它应该能够为未来几年充分建模。这意味着包括更换成本等,以获得更好的传感器并降低总体成本。

单位可以互换。

0 投票
1 回答
1406 浏览

algorithm - MATLAB - 用于方程系统的 lsqnonlin

我有一个系统如下:

系数 [AO] 的值是已知的,我正在尝试估计 [x,y](通过最小化 p 的值)。如有必要,我有一个起始猜测 [x0,y0]。

我对matlab中的函数处理不是很精通。我该如何编程(使用 RLS 解决方案——这让我想到了 lsqnonlin)?我应该使用 lsqnonlin 吗?

我正在使用 MATLAB 2010b。多谢你们。

PS:有时我使用一个额外的方程(类似于这两个),因此使系统超定。它还会起作用吗?

0 投票
3 回答
486 浏览

matlab - Setting up a system of linear equations in matlab

I have the following equation that I want to solve:

H*b0 = M(Q+1)b(Q+1)+l+M'B

The unknowns are b0, b(q+1) and B. The sizes of the known matrices are:

So I want to figure out how to find the vectors.

Is there a built in command that I could do to do this?

This comes from This paper

EDIT:: Size of unknowns should be (all are column vectors):