如何在代码中找到一个点和抛物线之间的距离
我试图在抛物线上找到抛物线的最接近的点,以与2D中的任意点,对于Directx Pixel着色器. 大量的谷歌搜索向我透露,这是一个常见的昂贵的家庭作业问题.不幸的是,数百个相关答案都说了诸如"一旦有了这个方程式,请使用图形计算器的最小功能,它将告诉您答案为6." 我承认,我没有记得前alc的.我认识到我寻求的方程式可能正坐在Wikipedia上,但是我不知道如何将这些希腊符号转换为HLSL函数. C,C ++,C#或任何其他语言中的解决方案也将不胜感激. 编辑:根据请求查看输入曲线的格式: //Equation of parabola being y = ax^2 + bx + c //p is the arbitrary point we're trying to find the closest point on the parabola for. float2 GetClosestPointOnParabola(float a, float b, floa
14 2024-04-22
编程技术问答社区
递归地找到第二个导数
我正在尝试在C中编写一个程序,该程序找到了给出x的f(x)的第二个衍生物的数值.当我使用我的功能找到第一个衍生物时,一切似乎都可以正常工作,但是递归的第二个衍生部分总是给我0.0.这是我的功能: double derivative(double (*f)(double), double x0, int order) { if(order == 1){ const double delta = 1.0e-6; double x1 = x0-delta; double x2 = x0+delta; double y1 = f(x1); double y2 = f(x2); return (y2 - y1) / (x2 - x1); } else if(order == 2) { const double delta = 1.0e-6; dou
6 2024-04-09
编程技术问答社区
二次方的衍生物
我正在使用用于学习的反向传播技术创建神经网络. 我知道我们需要找到所使用的激活函数的导数.我正在使用标准的Sigmoid函数 f(x) = 1 / (1 + e^(-x)) 我已经看到它的导数是 dy/dx = f(x)' = f(x) * (1 - f(x)) 这可能是一个愚蠢的问题,但这是否意味着我们必须在方程式期间两次通过x,因此它将扩展到 dy/dx = f(x)' = 1 / (1 + e^(-x)) * (1 - (1 / (1 + e^(-x)))) 或仅仅是采用f(x)的已经计算出的输出的问题,哪个是神经元的输出,然后代替f(x)? 的值 解决方案 这两种方法是等效的(因为数学功能没有副作用,并且始终返回给定输出的相同输入),因此您不妨这样做(更快)第二种方法. 其他解决方案 道格尔是正确的.只是做 f = 1/(1+exp(-x)) df = f * (1 - f) 其他解决方案 一个小代数可以简化这一点,因
20 2024-03-07
编程技术问答社区
在Matlab中对数组的操作
我有这个二维数组 x=[62,29,64; 63,31,62; 65,29,60; 63,29,62; 63,31,62;]; 每一列中的第一个元素为r,第二个为g,第三个是从下面的公式开始. . 我希望一个函数来计算以下操作: 到目前为止,我的功能定义看起来像这样: function[distance]=RGB_dist(x,y) distance=sqrt(sum(((x-y)*[3;4;2]).^2,2)); end 用上面的矩阵测试,disp(RGB_dist(x,x))仅输出零.这一定会发生,因为他正在计算同一向量之间的距离.我该如何计算与矩阵的任何两个向量(线)之间的距离.任何帮助将不胜感激. 解决方案 对于两条任意行(例如,第1行和第2行),DO: RGB_dist(x(1,:), x(2,:)) 如果您想要所有组合,请查看pdist2.如果您没有统计工具箱(即否pdist2),则使
10 2024-03-05
编程技术问答社区
如何对颜色进行二维分类?
我目前正在进行一个爱好项目,以自动解决流行的手机游戏我喜欢Hue 的难题.该游戏可用在这里. 基本上,游戏的整个前提是,您为您提供了一堆在网格中组织的彩色矩形块.您可以交换大多数块,除了几个固定块,这些块标记为黑点.游戏的目的是交换块,以便您获得二维色谱.对颜色进行排序,使每个块的颜色大约是周围颜色的平均值. (对不起,我不知道任何颜色理论,但我要寻找的是一个词.)这是一个典型的难题: 我已经能够通过ADB进行屏幕截图,从块中提取RGB矩阵,并标记哪些块为"固定".我在此问题的实际算法部分遇到了麻烦. 这是我到目前为止所做的: 将RGB转换为HSV,然后在一维列表中通过色相对颜色进行排序.这给了我一个频谱,但是我不知道如何将此结果转换为两个维度. 将颜色留在RGB中,并试图以奇异的颜色工作.我可能在这里可以做一些多变量的演算,但是困难在于某些颜色共享其RGB值中的一个或多个.有必要考虑所有三种颜色. 使用欧几里得距离找到每对颜色之间的距离.我知道最终的目标是要
12 2024-03-04
编程技术问答社区
用jQuery确定安卓的取消/回扫(从左到右滑动)。
在Android上,不使用Sencha或JQTouch或JQMobile之类的框架,但是使用JQuery(常规jQuery),我想检测一个取消/背面滑动(从左到右滑动).到目前为止,我已经完成了一些成就,但是我正在尝试确定在jQuery中实现的数学公式,以便我捕获一个从左到右的滑动事件,而不是另一种手势.你建议什么?我想我需要某种可接受的差异.我假设有某种演算公式可以在这里重新申请,但不幸的是,我回避了大学的微积分.因此,您的答案希望对我进行教育. 这是一些示例x,y开始/结束数据要播放: (a)从左中部到右上向对角线刷(在这种情况下是不良的手势) 21,269-278,85 (b)从左中间到右下对角线刷(在这种情况下是不良的手势) 13,269-331,436 (c)从左中间到中间(一个理想的手势)刷直(某种) 34,267-326,266 或 36,494-355,479 var gnStartX = 0; var gnSt
10 2024-02-10
编程技术问答社区
为一组三维长方形物品寻找最佳的三维盒子尺寸
当我说盒子时,我正在谈论运输盒. 我有许多随机大小的小物品,我需要将它们包装在尽可能少的盒子中. 我需要知道哪些盒子尺寸是最佳的. 所有项目均为矩形棱镜. 很容易排除一个太大而无法合适的物品的盒子尺寸. 我知道盒子尺寸(它们是我有库存的可用盒子尺寸) 项目可以水平或垂直定位,而不是对角线. 可以使用最多的盒子.目标是使用尽可能少的盒子. 多个盒子尺寸可用于最佳适合各种大小的项目. 存在哪种算法,使我可以计算出最佳空间使用所需使用的框尺寸? 将大多数物品放入尽可能少的盒子中. 可用的盒子尺寸来自我可用的库存.您可以创建有限数量的UP盒子大小. 解决方案 这是 bin包装问题,这是np----硬. 要看到这一点,请想象所有垃圾箱和包装的宽度和高度相同,而且所有垃圾箱(但不是包装)的长度相同.然后,这是一个一维问题:我们有大小V的垃圾箱,大小为a 1 ,a 2 ,...,A n .这种简化的情况正是包装问题.因此,快速解决您的问题可以使我们可以快
10 2024-01-23
编程技术问答社区
javascript 滑块加权值
我有一个JavaScript滑块,该滑块根据其位置在0到1之间输出值.我想将该值转换为100和1000之间的另一个等级的值,但基于一组数据点之间的分布. 这里的用例是,我希望滑块对更接近的数字集时对更改的敏感性降低.例如...假设量表中的值是: 100, 200, 300, 500, 1000 值100-500可能会占用滑块的第一个80%,因此它们的分布更加接近,因此更容易在它们之间进行选择. 显然有一个数学功能来计算此功能,也许涉及标准偏差和系数.有人知道这是什么吗? 解决方案 使用大规模的值之间的线性插值,例如 var bigValues = [100, 200, 300, 500, 1000]; var input; /* will vary in the range [0.0..1.0] */ var idx; /* index of nearest entry in bigValues below input */ var frac; /*
10 2024-01-23
编程技术问答社区
带有x86-64汇编的谐波系列
试图计算谐波系列. 现在,我正在输入我要增加的号码. 当我输入像1.2之类的少量数字时,程序只是停止,不会崩溃,似乎正在进行计算. ,但它永远不会完成程序 这是我的代码 denominator: xor r14,r14 ;zero out r14 register add r14, 2 ;start counter at 2 fld1 ;load 1 into st0 fxch st2 denomLoop: fld1 mov [divisor], r14 ;put 1 into st0 fidiv dword [divisor] ;divide st0 by r14 inc r14 ;increment r14 fst qword [currentSum] ;pop curren
24 2023-12-16
编程技术问答社区
在Mathematica中最小化一个自定义分布的NExpectation
这与6月的早期问题有关: 计算对Mathematica 自定义分布的期望 /p> 我有一个自定义混合分布,使用第二个自定义分布按照@Sasha在过去一年的许多答案中讨论的行进行定义. 定义分布的代码如下: nDist /: CharacteristicFunction[nDist[a_, b_, m_, s_], t_] := (a b E^(I m t - (s^2 t^2)/2))/((I a + t) (-I b + t)); nDist /: PDF[nDist[a_, b_, m_, s_], x_] := (1/(2*(a + b)))*a* b*(E^(a*(m + (a*s^2)/2 - x))* Erfc[(m + a*s^2 - x)/(Sqrt[2]*s)] + E^(b*(-m + (b*s^2)/2 + x))* Erfc[(-m + b*s^2 + x)/(Sqrt[2]*s)]); nDist
10 2023-12-11
编程技术问答社区
Python Matplotlib Quiver的错误方向
IM在矢量计算上创建了一个ipython笔记本. (至少至少). 在这个代码块上,我试图具有函数x^2 + xy + y^2的伪色彩图 并绘制其梯度给出的矢量字段 u = 2x+y和v = 2y+x 然而,箭量图似乎是旋转90度的,因此不指向正确的方向 x = arange(-2.0, 2.0,00.1) y = arange(-2.0, 2.0,00.1) X,Y = meshgrid(x, y) Z = X**2 + X*Y + Y**2 GradX = (2*X+Y) GradY = (2*Y+X) figure(figsize=(10, 10)) im = imshow(Z, cmap=cm.RdYlBu, interpolation='none', extent=[-2,2,-2,2]) quiver(X, Y, GradX, GradY, angles='xy', scale_units='xy') show() 解决方案 我怀疑您需要: im = i
14 2023-11-17
编程技术问答社区
渐进式微分法与交感法
我正在尝试制作一个python proram,以找到衍生物和积分,并展示如何.到目前为止,我发现有一个Integral_Steps函数返回所使用的步骤,但是我尚未找到等效的分化. 有人知道是否有同等学历? 如果没有,您对如何找到找到衍生物所需的步骤有任何想法吗? 解决方案 方法1(手动) 查看代码,表达式树的每个特定节点的逻辑生活在这将使您可以将代码添加到这些_eval_derivative方法中,以追踪整个过程并找到所有步骤. 方法2(使用示踪剂) python有多个 tracing packages. python-hunter @ionelmc 实际上非常好,并且非常适合此用例. 除其他许多功能外,它允许在函数开始执行时安装某些回调,而当功能返回其值时,它允许安装另一个回调.实际上,这正是我们需要的. 这是一个示例,显示了如何使用此方法(我在Python 3.7.3,Sympy 1.7和Hunter 3.3.1上进行了测试):
16 2023-10-13
编程技术问答社区
Sympy中的链条规则
我正在尝试使用Sympy进行一些基本实践.我想相对于极性坐标中的半径参数,在矩形坐标中象征性的第二个衍生物. 我想要一个不错的链条规则符号表达式,它可以在其中计算它的内容,并使无法进一步简化的内容保持不变. from sympy import * init_session() x, y, r, t = symbols('x y r t') # r (radius), t (angle theta) f, g = symbols('f g', cls=Function) g = f(x,y) x = r * cos(t) y = r* sin(t) Derivative(g,r, 2).doit() 此代码得出0.有没有办法获得答案的符号表示,而不是0? 解决方案 简短答案: 您的命令失败. 长答案: x, y, r, t = symbols('x y r t') # r (radius), t (angle theta) f, g = symbols(
20 2023-10-13
编程技术问答社区
Python-Sympy 最小值和最大值
我正在尝试学习Sympy的演算功能,并且能够通过以下方式获得第二个衍生物的根源: import numpy as np from numpy import linspace, math, arange, linspace from sympy import * import sympy as sp import math x = Symbol('x') f = (x**4) - (24*x**2) + 80 fd = diff(f) fdd = diff(fd) print(fd) print(fdd) polyRoots = solveset(f,x) dRoots = solveset(fd,x) #gets critical x values ddRoots = solveset(fdd,x) 如何将我从drots获得的值替换为原始方程式F,并输出一个值
32 2023-10-13
编程技术问答社区
用 Python 3 进行隐式微分?
我们如何在python 3中衍生一个隐式方程? 示例x^2+y^2=25差异化是:dy/dx=-x/y,尝试以下操作: from sympy import * init_printing(use_unicode=True) x = symbols('x') y = Function('y')(x) eq = x**2+y**2-25 sol = diff(eq, x) print(sol) 但显示: 2*x + 2*y(x)*Derivative(y(x), x) 如何获得-x/y? 解决方案 Sympy具有函数idiff,它可以执行您想要的 In [2]: idiff(x**2+y**2-25, y, x) Out[2]: -x ─── y 其他解决方案 您可以使用隐式函数定理,该定理指出,当两个变量x,y,与隐式方程f(x, y) = 0相关,然后相对于x等于- (df/dx) / (df/dy)(只要部分衍生物是连续的,df/dy
12 2023-10-13
编程技术问答社区
带有索引变量的sympy求和
我尝试创建一个带有索引变量的总和的sympy表达式-sympy">在这里 但是,我无法对此表达式进行羔羊,并给出一个数组以获取总和. 这是不可能的吗? 解决方案 也许喜欢吗? s = Sum(Indexed('x',i),(i,1,3)) f = lambda x: Subs(s.doit(), [s.function.subs(s.variables[0], j) for j in range(s.limits[0][1], s.limits[0][2] + 1)], x).doit() >>> f((30,10,2)) 42 其他解决方案 您可以使用lambdify.只需确保总和的限制与numpy数组的迭代匹配. from sympy import Sum, symbols, Indexed, lambdify import numpy as np x, i = symbols("x i") s = Sum(Indexed('x',i),(i,0,3))
40 2023-10-13
编程技术问答社区
LibGDX路径(CatmullRomSpline)恒定速度
我正在尝试使用libgdx catmullromspline在路径上达到持续的速度,并且我遇到问题.我已经尝试研究了这一主题,包括阅读LibGDX Wiki,但是他们实现恒定速度的解释确实没有任何意义,我无法获得他们的工作方法. 接口 - & - 花键 就我而言,衍生值非常大(在数百个中),因此,当将数字在0-1之间划分衍生物时,结果非常小,运动非常慢,仍然不恒定.所以我不确定他们的示例如何工作. 在我的示例中,我有几个视觉辅助工具与球的速度相吻合,屏幕底部的条随速度的增加而增加,颜色也随着速度的增加而从白色变为红色./p> 在我的path.java的ACT()方法中,我有两个部分从[1]和[2]开始评论.第一个是正常的,可变速度通过路径,第二个是我失败的尝试使libgdx Wiki持续速度工作的尝试失败.因此,只需将这些行解开以在两个版本之间切换. 我对恒定速度的想法涉及根据路径的总长度(使用样条上的近似长度(1000)方法)来弄清楚速度,然后使用派生函数来确定给定瞬时的
32 2023-09-08
编程技术问答社区
由网格值定义的曲面下的线型积分-Python
我需要计算两个点(x1,y1)和(x2,y2)之间的线积分. 我不确定使用Python使用此过程的最佳工具/方法. 由于我没有代表表面的函数,而是在均匀固定的网格格里德上的点上值,所以我假设我需要使用以下方法之一 trapz -- Use trapezoidal rule to compute integral from samples. cumtrapz -- Use trapezoidal rule to cumulatively compute integral. simps -- Use Simpson's rule to compute integral from samples. romb -- Use Romberg Integration to compute integral from (2**k + 1) evenly-spac
30 2023-08-22
编程技术问答社区
Pyth-从转折点坐标生成多项式
使用多项式转弯点的坐标列表,我试图找到多项式系数的列表.上图以图形方式显示了我要解决的内容. 我试图使用numpy.polyfit生成多项式,但是给出的多项式在任何地方都经过这些点,而不是在转弯点上. 是否存在可以执行此操作的函数? 如果没有这样的功能,我认为的方法是集成(x-turningX[0])(x-turningX[1])(x-turningX[n])以找到多项式,但我不确定如何在Python中进行此操作. 解决方案 您可以使用 scipy.interpolate.CubicHermiteSpline 通过为dydx参数提供一个零数组.例如,此代码 In [60]: import numpy as np In [61]: from scipy.interpolate import CubicHermiteSpline In [62]: x = np.array([1, 2.5, 4.5, 6, 7]) # x coordinates of t
28 2023-08-22
编程技术问答社区
scipy.integration.quad precision on big numbers
我尝试通过scipy.integrate.quad()来计算这样的积分(实际上是与其PDF的指数分布的CDF): import numpy as np from scipy.integrate import quad def g(x): return .5 * np.exp(-.5 * x) print quad(g, a=0., b=np.inf) print quad(g, a=0., b=10**6) print quad(g, a=0., b=10**5) print quad(g, a=0., b=10**4) 结果如下: (1.0, 3.5807346295637055e-11) (0.0, 0.0) (3.881683817604194e-22, 7.717972744764185e-22) (1.0, 1.6059202674761255e-14) 尽管使用np.inf解决了问题,所有使用大型上积分极限的尝试都会产生不正确的答案. s
20 2023-08-21
编程技术问答社区