我有一些离散值和假设,这些值位于高斯曲线上.应该使用仅使用3个离散值的最大计算算法.你知道实现这个计算的C/C++中的库或代码吗?
谢谢!
PS:原始任务是自动对焦实现.我移动(显微镜)相机并在不同位置捕捉图片.具有最不同颜色的位置应该具有最佳焦点.
编辑 这是很久以前:-(我只是想删除这个问题,但让它尊重好的答案.
我有一堆数据,例如,我想要一个我想要的功能1/(ax^2+bx+c).我的目标是获得a,b,c值.
MATLAB有什么功能可以帮助解决这个问题吗?我一直在检查fit()功能,但我没有得出结论.哪种方式最好?
可能的重复:
将密度曲线拟合到 R 中绘图的R最佳拟合曲线中的直方图
我有一组数据,当绘制在直方图中时是高斯分布。我已经从 .csv 文件中读取了数据,如下所示:
"values"
1.29989
1.15652
1.27818
1.19699
1.28243
1.19433
1.10991
...
Run Code Online (Sandbox Code Playgroud)
使用data<-read.csv("~/peak.csv")...所以我创建一个直方图使用hist(data$values)。我希望能够将高斯拟合到这个直方图,并将拟合函数的 sigma 和均值与根据数据计算的 sigma 和均值进行比较。
我看过的所有地方都提到了nls,glm但我无法弄清楚如何使用这些函数将高斯拟合到直方图,即使在执行?nls和 之后?glm。请帮忙?
如何适应非线性数据的使用scipy.optimize import curve_fit在Python使用以下3种方法:
我只能从我的数据文件中链接和绘图。
from matplotlib import pyplot as plt
from matplotlib import style
import numpy as np
import pylab
from scipy.optimize import curve_fit
style.use('ggplot')
data = np.genfromtxt('D:\csvtrail3.csv', delimiter=',', skiprows=1)
x=data[:,0]
y=data[:,1]
data.fit_lorentzians()
plt.plot(x, y)
plt.title('Epic chart')
plt.ylabel('Y Axis')
plt.xlabel('X Axis')
plt.show()
Run Code Online (Sandbox Code Playgroud)
请建议我如何为该数据归档该行。我不想直接合身。我想要平滑的配合。
我一直在尝试将多项式曲面拟合到具有3个坐标的一组点。
令数据为:
DATA <- with(mtcars, as.data.frame(cbind(1:32, wt,disp,mpg)))
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用以下方法绘制表面:
例如:
library(scatterplot3d)
attach(mtcars)
DATA <- as.data.frame(cbind(1:32, wt,disp,mpg))
scatterplot3d(wt,disp,mpg, main="3D Scatterplot")
model <- loess(mpg ~wt + disp, data=DATA)
x <-range(DATA$wt)
x <- seq(x[1], x[2], length.out=50)
y <- range(DATA$disp)
y <- seq(y[1], y[2], length.out=50)
z <- outer(x,y,
function(wt,disp)
predict(model, data.frame(wt,disp)))
z
p <- persp(x,y,z, theta=30, phi=30,
col="lightblue",expand = 0.5,shade = 0.2,
xlab="wt", ylab="disp", zlab="mpg")
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用surf.ls函数:
surf.ls(2,DATA[,2],DATA[,3],DATA[,4])
Run Code Online (Sandbox Code Playgroud)
但是我得到的是这样的:
我真的不知道如何将其转换为3D图,更重要的是,如何获得最适合曲面的公式。
我将衷心感谢您的帮助。
PS我已经删除了我的上一篇文章,并在此文章中包含了更多细节。
我正在尝试制作一个简单的函数,在给定数据集的情况下进行指数曲线拟合.我写了以下内容:
function expCurveFit(d){
var sum_x2 = 0, sum_lny = 0, sum_x = 0, sum_xlny = 0, n = d.length;
for(var i=0;i<d.length;i++){
var x = d[i][0];
var y = d[i][1];
sum_x2 += x^2, sum_lny += Math.log(y), sum_x += x, sum_xlny += x*Math.log(y);
}
var a = ((sum_lny*sum_x2)-(sum_x*sum_xlny))/((n*sum_x2)-sum_x^2);
var b = ((n*sum_xlny)-(sum_x*sum_lny))/((n*sum_x2)-sum_x^2);
return [a,b];
}
Run Code Online (Sandbox Code Playgroud)
但是a和b似乎不正确.我正在使用Wolfram的基本公式.输入的数组是表格[[x1,y1],[x2,y2]...[xn,yn]].任何人都有工作建议,插件,库或修订功能?
我已经将四阶多项式曲线拟合到我的数据中,如下所示:
y<-c(-13,16,35,40,28,36,43,33,40,33,22,-5,-27,-31,-29,-25,-26,-31,-26,-24,-25,-29,-23,4)
x<-1:24
#4th order polynomial fit
fit<-lm(y~poly(x,4,raw=TRUE))
plot(x,y,ylim=c(min(y)-10,max(y)+10))
lines(x,predict(fit,data.frame(x=x)),col="red")
abline(h=0,lty=2)
Run Code Online (Sandbox Code Playgroud)
我的最终目标是计算这条曲线与零线相交的 3 个点。
所以首先,我需要延长曲线拟合的末端,使其第三次超过零线。完成此操作后,我想计算该方程通过零线的 3 个点。
r curve-fitting polynomial-math polynomials polynomial-approximations
我正在尝试绘制多项式的曲线,但是有一些点使得曲线在某些地方看起来非常直.如何在多项式上测试更多点,这样我就能得到更好的曲线?图片说明了下面的问题,代码试图解决问题.
library('MonoPoly') # monotonic polynomials
dataT = read.csv("data.csv", header=TRUE, sep=",")
x <- dataT[,'x']
y <- dataT[,'y']
fitResult <- monpol(y~x, degree=3,algorithm="Hawkins")
fitted <- fitted(fitResult) # not enough data points. Only 120
z = predict(fitResult, seq(1, 5, 0.01)) # attempt at making more data points
plot(1:5, 1:5, type = "n")# setting up coord system
points(x,y,col="red") # plotting data fitting to
lines(sort(x), sort(fitted),col="blue") #plotting fitted because z isn't working
points(x,z,col="blue") # plotting curve
Run Code Online (Sandbox Code Playgroud) 对于我正在进行的一个项目,我已经成功地对道路图像数据执行了 SFM 程序,并且能够生成一个包含点云坐标(X、Y、Z)、RGB 值和法线(nx、纽约州,新西兰)。
现在,我有兴趣根据我拥有的数据计算每个点的曲率值。我在 Python 中遇到过Surface Curvature MATLAB Equivalent,但据说该实现仅在 X、Y 和 Z 是二维数组时才有效。
如果路面非常粗糙,高斯曲率和平均曲率是否适用?给定大小 NX3 的 (X,Y,Z) 坐标数据和大小 NX3 的 (nx,ny,nz) 法线数据,我应该如何找到曲率?Python 中是否有当前的实现?
python curve-fitting smoothing point-clouds structure-from-motion
我正在尝试将一些数据拟合到一个非线性函数中,并希望使用模型函数来查看是否可以得到比现有函数更好的拟合。在尝试解决问题时,我提出了更多问题。我有:
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import least_squares
from scipy.optimize import curve_fit
temperature = [ 38., 40., 42., 44., 46., 48., 50., 52., 54., 56., 58., 60., 62., 64., 66., 68., 70., 71.9, 73.81, 75.69, 77.6, 79.49, 81.38, 83.29, 85.19, 87.11, 89., 90., 91., 92., 93., 94., 95., 96., 97., 98., 99., 100. ]
exp_rate = [ 8.71171203e-01, 1.15342914e+00, 1.39178845e+00, 1.66700007e+00, 1.96267002e+00, 2.32390602e+00, 2.68542886e+00, 3.13116448e+00, 3.60152705e+00, 4.12575295e+00, 4.67617489e+00, 5.29745193e+00, 6.06796117e+00, 6.99056274e+00, 8.40124338e+00, 1.04449551e+01, 1.38236107e+01, 1.96811651e+01, …Run Code Online (Sandbox Code Playgroud) curve-fitting ×10
r ×4
python ×3
polynomials ×2
scipy ×2
3d ×1
c ×1
c++ ×1
gaussian ×1
javascript ×1
math ×1
matlab ×1
matplotlib ×1
numpy ×1
point-clouds ×1
python-2.7 ×1
regression ×1
smoothing ×1
surface ×1