标签: linear-interpolation

线性插值以找到三角形中的坐标

假设您有以下三点A,B和C,如下图所示:

在此输入图像描述

点总是根据它们的垂直偏移进行排序,因此最高点总是A.有时B和C可以具有相同的y坐标.

我正在尝试找到点D的x坐标.我可以通过插入点Ay和Cy来找到D的Y坐标(By /(Cy-Ay)).我正在使用以下公式进行插值(在C++中)

float linearInterpolation(float a, float b, float t)
{
    return a + (t * (b - a));
}
Run Code Online (Sandbox Code Playgroud)

换句话说,Dy = linearInterpolation(Ay,Cy,(By-Ay)/(Cy-Ay))

总而言之,我的问题是:我如何找到Dx?

谢谢

-

回答:

只是为了澄清,这是建议和工作的解决方案:

D.x = A.x + (B.y - A.y) * (C.x - A.x) / (C.y - A.y);
D.y = B.y;
Run Code Online (Sandbox Code Playgroud)

如下图所示:

在此输入图像描述

c++ geometry interpolation sdl linear-interpolation

4
推荐指数
1
解决办法
2685
查看次数

使用Math.Net Numerics对大x值进行错误的线性插值

我正在尝试使用Math.NET Numerics来插入DateTime - Value系列.我开始使用线性插值,但是我得到了一些看起来非常不合适的结果.

运行此测试:

public class script{

public void check_numerics()
  {
    var ticks = DateTime.Now.Ticks;
    Console.WriteLine("Ticks: " + ticks);
    var xValues = new double[] { ticks, ticks + 1000, ticks + 2000, ticks + 3000, ticks + 4000, ticks + 5000 };
    var yValues = new double[] {0, 1, 2, 3, 4, 5};
    var spline = Interpolate.LinearBetweenPoints(xValues, yValues);
    var ticks2 = ticks;
    for (int i = 0; i < 10; i++)
    {
      ticks2 += 500;
      Console.WriteLine(spline.Interpolate(ticks2));
    }
  }
} …
Run Code Online (Sandbox Code Playgroud)

c# linear-interpolation numerics math.net

4
推荐指数
1
解决办法
3996
查看次数

在没有插值的情况下计算R中的分位数 - 向上或向下舍入到实际值

我的理解是,当计算R中的分位数时,扫描整个数据集并确定每个分位数的值.

如果你要求.8,例如它会给你一个在该分位数处出现的值.即使不存在这样的值,R仍将为您提供在该分位数处发生的值.它通过线性插值来实现.

但是,如果想要计算分位数然后向上/向下舍入到最接近的实际值,该怎么办?

例如,如果.80处的分位数值为53,那么当真实数据集只有50和54时,那么如何让R列出这些值中的任何一个?

r quantile linear-interpolation

4
推荐指数
2
解决办法
1521
查看次数

如何在[0,1]以外的域中使用d3-scale-chromatic函数?

这是我的代码:

var color = d3.scaleLinear()
    .domain([0, 10000])
    .interpolate(d3.interpolateBlues);
console.log(color(5000));
Run Code Online (Sandbox Code Playgroud)

而不是告诉我5000对应淡蓝色,我得到错误"r0不是一个函数".我究竟做错了什么?

interpolation linear-interpolation d3.js

4
推荐指数
1
解决办法
2650
查看次数

如何使用线性插值在C(SDCC编译器)中构建查找表

对于LPC922微控制器(带SDCC),我想创建一个带线性插值的查找表.让我们假设我有x和y值

x=300 y=10,0201 
x=700 y=89,542 
x=800 y=126,452 
x=900 y=171,453 
x=1500 y=225,123
Run Code Online (Sandbox Code Playgroud)

具有线性插值的查找表的代码怎么样,所以我得到x = 850的正确值y((171,453 + 126,452)/ 2)?

c linear-interpolation

3
推荐指数
1
解决办法
2万
查看次数

Python Pandas 在 X 上线性插值 Y

我正在尝试回答这个 Udacity 问题:https ://www.udacity.com/course/viewer#!/c-st101/l-48696651/e-48532778/m-48635592

我喜欢 Python 和 Pandas,所以我使用 Pandas(0.14 版)

我有这个数据帧 df=

pd.DataFrame(dict(size=(1400,
                        2400,
                        1800,
                        1900,
                        1300,
                        1100), 
                   cost=(112000,
                         192000,
                         144000,
                         152000,
                         104000,
                         88000)))
Run Code Online (Sandbox Code Playgroud)

我将这个 2100 平方英尺的值添加到我的数据框中(注意没有成本;这就是问题;您希望为2,100平方英尺的房子支付多少费用)

 df.append(pd.DataFrame({'size':(2100,)}), True)
Run Code Online (Sandbox Code Playgroud)

该问题希望您使用线性插值来回答您希望支付的成本/价格

熊猫可以插值吗?如何?

我试过这个:

df.interpolate(method='linear')
Run Code Online (Sandbox Code Playgroud)

但它给了我88,000的成本;只重复最后一个成本值

我试过这个:

df.sort('size').interpolate(method='linear')
Run Code Online (Sandbox Code Playgroud)

但它给了我172,000的成本;仅介于152,000192,000 Closer的成本之间 ,但不是我想要的。正确答案是168,000(因为有 80 美元/平方英尺的“斜率”)

编辑:

我检查了这些问题

python linear-interpolation pandas

3
推荐指数
1
解决办法
7349
查看次数

如何在Java数组中实现线性插值方法?

我正在研究一个简单的线性插值程序。而且在实现算法时遇到了一些麻烦。假设总共有12个数字,我们让用户输入3个数字(位置0,位置6和位置12)。然后程序将计算其他数字。这是我的一段代码来实现:

static double[] interpolate(double a, double b){
    double[] array = new double[6];
    for(int i=0;i<6;i++){
        array[i] = a + (i-0) * (b-a)/6;
    }
    return array;
}

static double[] interpolate2(double a, double b){
    double[] array = new double[13];
    for(int i=6;i<=12;i++){
        array[i] = a + (i-6) * (b-a)/6;
    }
    return array;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我使用了两个函数。但是我想找到一个通用的功能来完成这项工作。但是,我不知道如何找到表示i-0和的通用方法i-6。如何解决?根据浮点线性插值,我知道也许我应该添加一个形式参数float f。但是我不太明白这float f意味着什么以及如何基于它修改我的代码。有人可以帮我吗?谢谢。

java arrays linear-interpolation

3
推荐指数
1
解决办法
1万
查看次数

在scipy.interpolate.interp1d中将元组传递给fill_value会导致ValueError

scipy.interpolate.interp1d(v0.17.0)中的文档为可选的fill_value参数说明以下内容:

fill_value:...如果是两元素元组,则第一个元素用作x_new <x [0]的填充值,第二个元素用于x_new x [-1].

因此,我在此代码中传递了一个两元素的tupe:

N=100
x=numpy.arange(N)
y=x*x
interpolator=interp1d(x,y,kind='linear',bounds_error=False,fill_value=(x[0],x[-1]))
r=np.arange(1,70)
interpolator(np.arange(1,70))
Run Code Online (Sandbox Code Playgroud)

但它抛出ValueError:

ValueError: shape mismatch: value array of shape (2,) could not be broadcast to indexing result of shape (0,1)
Run Code Online (Sandbox Code Playgroud)

谁能指点我,我在这里做错了什么?在此先感谢您的帮助.

scipy linear-interpolation

3
推荐指数
1
解决办法
2501
查看次数

快速线性插值和上采样

我有一系列采样不均匀的指标。我想将这些指标线性插值和上采样到特定的采样频率。我尝试过使用 Accelerate Framework 和 SIMD 框架,但我不太确定该怎么做。

问题本身如下:

let original_times:[Double] = [0.0, 2.0, 3.0, 6.0, 10.0]
let original_values: [Double] = [50.0, 20.0, 30.0, 40.0, 10.0]
let new_times:[Double] = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一种通过某种线性插值方法找到 new_values 的方法。

arrays interpolation linear-interpolation accelerate-framework swift

2
推荐指数
1
解决办法
2345
查看次数

pandas - 根据列值添加缺失的行以获得 linspace

我有一个像这样的熊猫数据框

     a   b  c
0  0.5  10  7
1  1.0   6  6
2  2.0   1  7
3  2.5   6 -5
4  3.5   9  7
Run Code Online (Sandbox Code Playgroud)

我想根据某个步骤填充与“a”列相关的缺失列。在本例中,给定步长 0.5,我想用缺失值(即 1.5 和 3.0)填充“a”列,并将其他列设置为空,以获得以下结果。

     a     b    c
0  0.5  10.0  7.0
1  1.0   6.0  6.0
2  1.5   NaN  NaN
3  2.0   1.0  7.0
4  2.5   6.0 -5.0
5  3.0   NaN  NaN
6  3.5   9.0  7.0
Run Code Online (Sandbox Code Playgroud)

使用 pandas 或其他库(如 numpy 或 scipy)执行此操作的最简洁方法是什么?

谢谢!

python interpolation autofill linear-interpolation pandas

2
推荐指数
2
解决办法
1268
查看次数