标签: approximation

多边形(或其部分)的圆形近似

我的问题的简短描述

我需要为 3D 打印实现从 G1 指令到 G2 和 G3(http://www.cnccookbook.com/CCCNCGCodeArcsG02G03.htm)的GCODE 自动重构。

G1 是直线运动并打印(路径用矢量描述)。

我正在寻找基于给定向量路径的算法来近似圆/弧(特别是它的中点)。请注意,G2 和 G3 无法打印不属于圆的曲线 - 因此并非每个向量路径都可以通过这种方式近似。

我的问题的详细描述

我正在寻找通过圆(弧)来近似部分(或全部)向量路径(可以是正多边形、它的一部分或不规则多边形部分)的方法。但是,让我们首先关注规则多边形。

在图片中,我绘制了这个问题的不同情况。 注意:每个多边形都是由向量构建的(如第 5 点)。 在此处输入图片说明

  1. 全 x 边形上的近似值。
  2. 一侧不同的部分 x 边形的近似值
  3. x-gon 的近似值,其中两侧不同但彼此相等
  4. x-gon 的近似值,其中两侧不同(彼此不相等)不相等
  5. 所有边都相等的部分 x-gom 的近似值

这不是故事的开始……有几个标准:

  • 圆的起点/终点必须在矢量路径的起点/终点。
  • 我需要知道圆圈的中点。

我发现的解决方案(好的和坏的):

1) 和 5) - 我的简单解决方案

这是最简单的情况。我可以计算共享一个观点的每一侧之间的半径。如果它们具有相同的长度和每个之间的角度相等,我可以计算圆的中点(作为属于垂直中线的点,每边一条中线),我有我需要的一切:起点,终点,中点观点。

但此解决方案仅适用于情况 1 和 5。

当我遇到案例 2,3,4 或不规则多边形的部分时,我真的不知道该怎么办

algorithm approximation computational-geometry g-code

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

如何获取gnuplot图例中的波浪号或近似符号?

我想在我的gnuplot的图例中使用波浪号(〜)或近似符号(在latex\approx中).

我正在使用epscairo终端.

我尝试了设置: 设置编码iso_8859_1

要么

设置编码utf8

并使用不同的命令,例如\ 176,如此处所述(http://ayapin-film.sakura.ne.jp/Gnuplot/Docs/ps_guide.pdf),但似乎没有任何效果.

提前致谢!:)

gnuplot legend tilde approximation

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

网格中非相交路径的近似算法

我最近遇到了这个问题,并认为我可以在这里分享,因为我无法得到它。

我们得到一个编号为 1-25 的 5*5 网格,以及一组 5 对点,它们是网格上路径的起点和终点。

现在我们需要为 5 对点找到 5 条对应的路径,这样两条路径不应该重叠。另请注意,仅允许垂直和水平移动。此外,组合的 5 条路径应覆盖整个网格。

例如,我们给出了一对点:

P={1,22},{4,17},{5,18},{9,13},{20,23}
Run Code Online (Sandbox Code Playgroud)

那么对应的路径将是

  1. 1-6-11-16-21-22
  2. 4-3-2-7-12-17
  3. 5-10-15-14-19-18
  4. 9-8-13
  5. 20-25-24-23

到目前为止我想到的是:也许我可以计算所有点对从源到目标的所有路径,然后检查路径中是否没有公共点。然而,这似乎具有更高的时间复杂度。

谁能提出更好的算法?如果有人可以通过伪代码解释,我会很高兴。谢谢

algorithm approximation graph-algorithm

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

在什么情况下需要多项式的泰勒级数?

我很难理解为什么在编程时使用函数的泰勒级数来获得函数的近似值而不是仅使用函数本身会很有用。如果我可以告诉我的计算机计算 e^(.1) 并且它会给我一个精确值,为什么我要取近似值呢?

math taylor-series approximation

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

如何在Scilab中进行多项式逼近?

我有一组度量值,我想近似一下。我知道我可以用4次多项式来做到这一点,但我不知道如何使用Scilab找到它的五个系数。

现在,我必须使用Open office calc的用户友好功能。因此,为了继续仅使用Scilab,我想知道是否存在内置函数,或者我们是否可以使用简单的脚本。

scilab polynomial-math approximation

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

在dplyr中使用约

我正在尝试对使用点id之间的数据帧中的每个进行线性近似. 对于这个似乎是一个合适的选择,但由于一个错误,我无法让它工作:yearxdplyr

错误:大小不匹配(9),期望3(组大小)或1

示例代码:

library(dplyr)
dat <- data.frame(id = c(1,1,1,2,2,2,3,3,3), year = c(1,2,3,1,2,3,1,2,3), x = c(1,NA,2, 3, NA, 4, 5, NA, 6))

# Linear Interpolation
dat %>% 
  group_by(id) %>% 
  mutate(x2 = as.numeric(unlist(approx(x = dat$year, y = dat$x, xout = dat$x)[2])))
Run Code Online (Sandbox Code Playgroud)

样本数据:

  id year  x
1  1    1  1
2  1    2 NA
3  1    3  2
4  2    1  3
5  2    2 NA
6  2    3  4
7  3    1  5
8  3    2 …
Run Code Online (Sandbox Code Playgroud)

r approximation dplyr

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

如何在 python 中使用 Gurobi 的 MIPGap 和 TimeLimit?

我正在研究大规模 MILP。因此,我必须将时间限制设置为合理的值,或者必须将 MIPGap 设置为合理的水平。我已经知道 gurobi 的文档了。

MIPGap:https://www.gurobi.com/documentation/6.5/refman/mipgap.html

时间限制:https://www.gurobi.com/documentation/8.0/refman/timelimit.html#parameter :TimeLimit

当 MIPGap Gurobi 在最佳百分比范围内找到解决方案时,它将停止

TimeLimit Gurobi 将在一定时间后停止。

但是您能否给我发送一个示例,其中将时间限制设置为 5 分钟或将 MIPGap 设置为 5%?

我不知道如何具体实现这些角色?

请帮助我,我对 python 很陌生

我尝试过,但这不起作用

    model.Params.TimeLimit = 5
    model.setParam("MIPGap", mipgap)
Run Code Online (Sandbox Code Playgroud)

这是我的模型的简短版本


from gurobipy import *  
import csv
import geopandas as gpd
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from pandas.core.common import flatten
import math

################################# SOLVE function START ###################################################################
def solve(
      
       vpmaint, wpunit, wuunit, vumaint,
       kfuel, koil, …
Run Code Online (Sandbox Code Playgroud)

python optimization mathematical-optimization approximation gurobi

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

用于计算C中pi的近似值的循环

我正在尝试制作的程序应该使用系列pi = 4*(1 - (1/3)+(1/5) - (1/7)+(1/9) - 来使用C近似pi - ( 1/11)......)等等.

现在,从命令行开始,程序必须输入用于近似的术语量,例如,如果某人从命令行输入5,则估计将达到(1/9).

问题是我的输出总是产生零,我无法确定我所做的逻辑错误.我相信这是一个for循环问题.

另外一点,我使用的是C,而不是C++.

我的代码是:

/*
Finding pi of an infinite series
*/

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(int argc, char *argv[]){  //need to get input for amount of terms

    int i, pi;

    pi = 0;
    i = 0;
    double neg;  //neg to make a number negative

    neg = -1;       

    for(i = 1; i < argc; i++)
    {
        pi = pi + pow(neg, i)*(1/((2*i)-1));
        i = i + 1;
    } …
Run Code Online (Sandbox Code Playgroud)

c loops pi approximation

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

50 次迭代后,常数“pi”的近似值没有任何改善

在RI已经写了这个函数

ifun <- function(m)  {
  o = c() 
  for (k in 1:m) {
    o[k] = prod(1:k) / prod(2 * (1:k) + 1)
    }
  o_sum = 2 * (1 + sum(o))  # Final result

  print(o_sum)
}
Run Code Online (Sandbox Code Playgroud)

这个函数逼近 constant pi,但是,在m > 50逼近被卡住之后,即逼近是相同的值并且不会变得更好。我怎样才能解决这个问题?谢谢。

pi r approximation

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

定点近似为 2^x,输入范围为 s5.26

如何使用 exp2() 的极小极大多项式近似来实现 2^x 定点算术 s5.26 并且输入值在 [-31.9, 31.9] 范围内 如何使用以下链接中提到的 Sollya 工具生成多项式 Power of 2 定点逼近

fixed-point approximation

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