如何计算给定三个点的抛物线的顶点

2024-03-29

我有三个 X/Y 点,形成一条抛物线。我只需要计算经过这三个点的抛物线的顶点是什么。最好是一种快速的方法,因为我必须做很多这样的计算!

“询问科学家”网站提供这个答案 http://www.newton.dep.anl.gov/askasci/math99/math99028.htm:

抛物线的一般形式由以下方程给出: A * x^2 + B * x + C = y 其中 A、B 和 C 是任意实数常数。您有三对点,它们是 (x,y) 有序对。将每个点的 x 和 y 值代入抛物线方程。您将得到三个未知数(三个常数)的三个线性方程。然后,您可以轻松地求解这个由三个方程组组成的 A、B 和 C 值,并且您将得到与 3 个点相交的抛物线方程。顶点是一阶导数为 0 的地方,一点代数给出: ( -B/2A , C - B^2/4A ) 顶点。

很高兴看到用 C# 或 C++ 执行此计算的实际代码。有人吗?


谢谢 David,我将您的伪代码转换为以下 C# 代码:

public static void CalcParabolaVertex(int x1, int y1, int x2, int y2, int x3, int y3, out double xv, out double yv)
{
    double denom = (x1 - x2) * (x1 - x3) * (x2 - x3);
    double A     = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / denom;
    double B     = (x3*x3 * (y1 - y2) + x2*x2 * (y3 - y1) + x1*x1 * (y2 - y3)) / denom;
    double C     = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3) / denom;

    xv = -B / (2*A);
    yv = C - B*B / (4*A);
}

这就是我想要的。抛物线顶点的简单计算。稍后我将处理整数溢出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算给定三个点的抛物线的顶点 的相关文章

  • 如何对 SciPy 曲线拟合施加约束?

    我正在尝试使用自定义概率密度函数来拟合一些实验值的分布 显然 结果函数的积分应始终等于 1 但简单的 scipy optimize curve fit function dataBincenters dataCounts 的结果永远不会满足
  • 在 python 中使用 scipy curve_fit 拟合 boxcar 函数时出现问题

    我无法让这辆棚车正常工作 我明白了 OptimizeWarning 无法估计参数的协方差 类别 优化警告 并且输出系数没有改善到超出起始猜测 import numpy as np from scipy optimize import cur
  • scipy curve_fit 不喜欢数学模块

    在尝试创建一个示例时scipy optimize curve fit我发现scipy似乎与Python的不兼容math模块 而函数f1工作正常 f2抛出错误消息 from scipy optimize import curve fit fr
  • 如何使用 scipy.optimize.curve_fit 在 python 上拟合良好的洛伦兹分布?

    我正在尝试拟合具有多个吸收峰 穆斯堡尔谱 的洛伦兹函数 但 curve fit 函数无法正常工作 仅拟合几个峰值 我怎样才能适应它 图 尝试调整多洛伦兹 下面我展示我的代码 请帮我 import numpy as np import mat
  • 使用叠加的 PDF 绘制直方图

    这是我之前几个问题的后续 这是我正在使用的代码 import pandas as pd import matplotlib pyplot as plt import scipy stats as stats import numpy as
  • 绘图数字化 - 从图形图像中抓取样本值

    这并不是真正的 OCR 因为它不识别字符 但它与应用于曲线的想法相同 有人知道用于从 光栅 绘图图像检索值的图像处理库或已建立的算法吗 例如 在这张图中 我很难用眼睛读取精确的值 因为网格线之间存在这样的间隙 我可以使用直尺或其他工具 但它
  • 如何从多项式拟合中提取方程?

    我的目标是将一些数据拟合到多项式函数并获得包括拟合参数值的实际方程 我适应了这个例子 http scikit learn org stable auto examples linear model plot polynomial inter
  • 如何在具有多个峰值的数据集中找到 FWHM?

    我正在使用一个 Python 脚本 它可以在特定的值范围内沿着一维轮廓查找峰值 或在我的例子中为谷值 的索引 我的目标是测量每个感兴趣的山谷的半高宽 这是一维轮廓的示例 https i stack imgur com UTj33 png 这
  • 向 scipy.optimize.curve_fit 添加约束?

    我可以选择向 sio curve fit 添加边界 有没有办法扩展涉及参数函数的边界功能 换句话说 假设我有一个带有两个或多个未知常数的任意函数 然后我们还可以说我知道所有这些常量的总和小于 10 有没有办法可以实现最后一个约束 impor
  • 如何使用 scipy 获得非平滑 2D 样条插值

    我想要一个二维三次样条拟合一些不规则的间隔数据 即一个完全拟合给定点处的数据的函数 但也可以返回之间的值 我所能找到的 对于不规则间隔的数据 是scipy interpolate SmoothBivariateSpline 我不知道如何关闭
  • Matlab 曲线拟合不适用于小值(1e-12),我该怎么办?

    我安装了曲线拟合工具箱 并且正在尝试将扩散数据拟合到特定函数 该函数是以下形式的误差函数 y 3500 2500 erf x x0 2 sqrt D t 我希望该应用程序为我提供合理的值D and x0 而 t 是预定义的常数 拟合所基于的
  • 对标准化数据的曲线拟合结果进行非标准化

    我正在拟合指数衰减函数lsqvurcefit in Matlab 为此 我首先正常化 http en wikipedia org wiki Standard score Standardizing in mathematical stati
  • 在 nlme 中拟合数据的技巧?

    当我将数据放入 nlme 时 我第一次尝试从未成功 之后nlme fit model 我习惯于看到这样的事情 Error in nlme formula model mass SSbgf day w max t e t m random l
  • 复杂数据的曲线拟合

    我想用共享相同参数的两个函数来拟合复杂的数据集 为此我使用了 def funcReal x a b c d return np real a 1j b np exp 1j k x kappa1 x np exp kappa2 x c 1j
  • 获取matlab中fit函数的函数句柄并分配fit参数

    我正在将自定义函数拟合到我的数据中 获得拟合后 我想获得类似拟合函数的函数句柄之类的东西 包括设置为拟合找到的参数的参数 我知道我可以得到模型 formula fit 我可以通过以下方式获取参数 coeffvalues fit 但有没有什么
  • 如何拟合余弦函数?

    I wrote a python function to get the parameters of the following cosine function param Parameters param add amp value am
  • R中的指数曲线拟合

    time 1 100 head y 0 07841589 0 07686316 0 07534116 0 07384931 0 07238699 0 07095363 plot time y 这是一条指数曲线 在不知道公式的情况下如何在这条
  • scipy.optimize.curve_fit,TypeError:不支持的操作数类型

    我已经进行了搜索 问题似乎类似于Python scipy 或 pow 不支持的操作数类型 list 和 list https stackoverflow com questions 9156208 python scipy unsuppor
  • Python 使用 curve_fit 拟合对数函数

    我正在尝试使用拟合对数曲线curve fit 假设如下Y a ln X b 但拟合的数据看起来仍然不正确 现在我正在使用以下代码 from scipy optimize import curve fit X 3 0 3 1 3 2 3 3
  • 用由少量元素组成的向量平滑曲线?

    我有 4 条曲线 由这些向量表示 x 300 700 1000 1500 y1 1 0055394199673442 0 11221578805214968 1 502661406039569 1 0216939169819494 y2 1

随机推荐