问题标签 [bisection]
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.
python - 从字典列表中获取最近的元素
我的程序生成以下列表(摘录):
它已经按“x”键的值排序。我正在尝试编写一个方法,该方法针对给定坐标返回此列表的两个元素的元组(xPos, yPos)
:
- 左边最近的元素 (
x <= xPos
) - 最右边的元素 (
x > xPos
)
距离就是欧几里得距离(“毕达哥拉斯”)。该函数的第二个参数是允许的最大距离:
我尝试使用 bisect 函数分别获取最近元素的插入点xPos
以及 for xPos - maxDistance
(case 'left') 和xPos + maxDistance
(case 'right) 以缩小搜索区域。然后我计算了这个切片列表中每个剩余元素的距离
不知何故,这感觉非常不雅。有没有更好的方法来做到这一点?
编辑: 也许我的意图不是很清楚:我需要列表的两个元素。“2D 窗格”中最靠近左侧和右侧的元素。因此,我还需要考虑 y 坐标。
可能会发生(实际上几乎每次),就其 x 坐标而言最近的元素比具有接近 y 坐标的元素更远。
c - 用二等分法求解方程的C程序
该程序用于使用二分法求解方程给出错误“函数显示返回值”。
在这种方法中,我们给定一个函数f(x)
,我们近似 2 个根a
,b
对于函数,使得f(a).f(b)<0
.
然后我们找到另一个点
我们对给定的迭代次数重复这些步骤
python - 使用二等分的多项式根
我是 python 新手,我很难通过二分法找到多项式的根。到目前为止,我有两种方法。一种用于在值 x 处评估多项式
下一个方法应该使用二分法来找到给定多项式的根
如何使用二分法找到根?我已经获得了一个测试脚本来测试这些。
编辑:我按照伪代码结束了这个:
这个对吗?由于 return xmid 语句的缩进错误,我无法对其进行测试。
python - if/else 语句执行不正确
学习python,目前正在学习二分法解题。我正在编写代码,该代码应该接受用户从 0 到 100 的猜测,并尝试使用二分法找到该猜测。这是代码:
我意识到,当我的猜测 < 答案为 false 时,else 块不会执行,所以我的高数永远不会改变。为什么会这样?我在这里忽略了什么吗?
python - 使用 bisect 组合两个列表中的数字
在以下两个列表中
目标是组合字典中最接近的数字,一旦到达第二个列表中的最后一项,组合就必须停止,所以在这种情况下,如果第一个列表中没有组合的项目,这些项目将不被考虑,所以上述列表的输出将是
此代码给出以下输出
输出
该声明
给出这个输出
有人可以帮忙吗?
vba - VBA 寻根槽二分法
当我知道我的函数的根不是 0 时,我的 vba 代码一直返回值 0。
这是非常简单的代码,但我似乎无法调试它。知道这个错误可能来自哪里吗?
javascript - 牛顿与二分法的javascript实现
出于好奇,我想验证牛顿在求解非线性方程方面确实比二分法(对于它成功收敛的情况)更快。
我从textbook algorithms
. 测试的功能是:
收敛精度设置为 1e-4。牛顿从x0 = 0.5
,开始converges in 2 iterations
。二等分以 开始interval [0,1]
,收敛于14 iterations
。
我performance.now()
用来测量这两种方法的经过时间。令人惊讶的是,经过多次尝试,牛顿总是比二分法慢。
我将程序移植到 C(视觉 C):牛顿比二分法快得多。
这些数字代码是如此简单,以至于我无法发现任何奇怪的事情发生。任何人都可以帮忙吗?
c - Difference between two roots using bisection method in C?
I have written this C code to compare the root of two functions using bisection method. My first function (g(x)) executes correctly but the second one (h(x)) outputs "#1QO" on screen. I can't find what I did wrong in the code.
Can you please explain? Any kind of help would be highly appreciated. Thanks!
EDIT: Initialised i=1 in bisection and changed bisection (h,0,2,0.0005)
to bisection (h,1,2,0.0005)
and it works Thanks everyone!
java - 如何基于二分法求解方程组
我正在尝试实现二分法来找到方程的解。
方程的形式是这样的:
pe^(-x) + q sin(x) + r cos(x) + s tan(x) + t x^2 + u = 0 ,其中 0 ≤ p,r ≤ 20, -20 ≤ q,s,t ≤ 0 e -20 ≤ u ≤ 20
输入示例:
3
1. 0 0 0 0 -2 1
1 0 0 0 -1 2
1 -1 1 -1 -1 1
应该给:
0.7071
不可能
0.7554
我试图实现这一点,但我无法显示 4 位小数的结果,我意识到 ab 和 c 是 xx 的形式,只有一位小数。我认为问题从这里开始。任何帮助将不胜感激。这是我的代码
}
python - 在对数运行时间中使用二等分法的 Wting 反转函数
我正在尝试编写一个可以接受任何函数并返回 a 参数的函数,如果将其放入函数中,将返回接近 0 的答案(接近 epsilon),该函数将如下所示:
x0, x1 是寻找答案的范围。我知道的另一件事是它仅适用于可以是正数和负数的函数(例如 f(X) = x^2+1 不是一个很好的函数来解决)。
我在这里找到了答案Bisection method
编辑: 到目前为止一切顺利。现在我有了我需要编写的主要函数——一个为函数提供崇高价值的函数。函数本身获取需要反转的函数和答案假设接近的 epsilon。
例如,对于 f(x) = x+2,我希望inverse_func(f(100))返回 100。我得到的提示是我可以使用我展示的 prev 函数。我试着这样做:
我试图赋予“解决”功能来为我解决问题。我给它一个函数,该函数从 f(x) 减去求解函数需要找到的值计算给定值。
例如对于 f(x) = x+2,然后调用
minus_func = inverse(g(100)) =inverse(102) print(minus_func) 应该返回
100 因为“solve”中的函数是 102-f(x),当然“solve”可以为此找到正确的值。
我在我的代码中尝试了这个,它工作正常,但还不够好。对于某些功能,它工作正常。但对其他人来说,它根本不起作用。对于功能:
可能还有其他人,它不起作用。有人知道如何解决这个问题吗?
ps - 我正在用 python 编写代码,所以如果答案也在 python 中,那就太好了。但其他一切都可以(我也知道java,任何可以解释逻辑的东西当然都很棒)
谢谢!