我想尝试使用LSMR算法,所以我生成了一些数据并运行了最小二乘法。为什么LSMR解决方案和封闭形式的解决方案与我用来生成数据的真正$\beta$不同?
using Distributions: Normal
using IterativeSolvers: lsmr
# Settings
n = 500
k = 50
# Generate data
X = rand(Normal(0.0, 0.1), (n, k)) + rand(Normal(0.0, 0.2), (n, k))
β = randn(k)
y = (X * β) + rand(Normal(0.0, 0.1), n)
# So
我正在尝试对一些数据拟合一个圆圈。这需要数值求解一组三个非线性联立方程组(参见的完全最小二乘法)。
在我看来,IDL提供的NEWTON函数很适合解决这个问题。NEWTON需要一个函数的名称,该函数将为自变量的特定值计算方程系统的值:
FUNCTION newtfunction,X
RETURN, [Some function of X, Some other function of X]
END
虽然这很好用,但它要求方程系统的所有参数(在本例中是数据点的集合)都是在newtfunction中硬编码的。如果只有一个数据集需要求解,这是很好的,但是我有数千个数据集,并且不能手动为每个数据
这个问题类似于问题,如何将二维椭圆(在x-y平面上)拟合到给定点?(请参阅下面的链接) (How to fit a 2D ellipse to given points) 现在,我们已经知道了如何使用最小二乘法通过Casey提供的代码来拟合具有给定点的二维椭圆。(下面还提供了代码。)根据这段代码,如果我不仅想要拟合给定点,而且想要拟合(0,0)处的给定焦点,我该怎么做呢?还有没有更好的方法呢? 我在想,我们是否可以基于椭圆方程Ax^2 + Bxy + Cy^2 + Dx + Ey=1推导出焦点(作为x和y的函数),其中A,B,C,D,E是系数,并将其用作最小二乘法的约束。但不幸的是,我也不知
试图用递归来解决这个,但是对于输入7168,得到错误的答案。
给定正整数n,求最小二乘法(例如,1,4,9,16,.)之和为n。
例如,给定n= 12,返回3是因为12 =4+4+ 4;给定n= 13,返回2是因为13 =4+ 9。
def recursive(self, n, result, dp):
if n in dp:
return dp[n]
#very large number
large_no = 1 << 31
if n < 1:
return 0
#checking
我正在使用Matlab中的'fminsearch‘来解决值函数迭代问题。
parfor i_a = 1:Na %Loop over state variable a
for i_d = 1:Nd %Loop over state variable d
for i_y = 1:Ny %Loop over state variable y
for i_t = 1:Nt %Loop over state var
我有一个数据,一个整数序列(重复),乘以一个未知常数c,这是我需要找到的。这些数据也有噪音:
import pandas as pd
import numpy as np
#data
mySize=[1000,1]
#Unknown constant c to find with a solver
c=np.random.uniform(0.5,10)
#example data: df=c*[integer list]+noise
df = pd.DataFrame(c* np.random.randint(-500,500,size=mySize) +np.random.unifor