相关疑难解决方法(0)

使用数组的矩阵乘法

我正在尝试使用多维数组([2][2])进行简单的矩阵乘法.我对此有点新意见,而我却无法找到它我做错了什么.我非常感谢能告诉我它是什么的任何帮助.我宁愿不使用库或类似的东西,我主要是这样做以了解它是如何工作的.非常感谢你提前.

我在主方法中声明我的arays如下:

Double[][] A={{4.00,3.00},{2.00,1.00}}; 
Double[][] B={{-0.500,1.500},{1.000,-2.0000}};
Run Code Online (Sandbox Code Playgroud)

A*B应该返回单位矩阵.它没有.

public static Double[][] multiplicar(Double[][] A, Double[][] B){
//the method runs and returns a matrix of the correct dimensions
//(I actually changed the .length function to a specific value to eliminate 
//it as a possible issue), but not the correct values

    Double[][] C= new Double[2][2];
    int i,j;

    ////I fill the matrix with zeroes, if I don't do this it gives me an error
    for(i=0;i<2;i++) {
        for(j=0;j<2;j++){
            C[i][j]=0.00000;
        }
    } 
    ///this is where …
Run Code Online (Sandbox Code Playgroud)

java arrays matrix multidimensional-array matrix-multiplication

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

端口MATLAB将椭球代码绑定到Python

存在MATLAB代码以找到所谓的"最小体积包围椭圆体"(例如,这里,也在这里).为方便起见,我会粘贴相关部分:

function [A , c] = MinVolEllipse(P, tolerance)
[d N] = size(P);

Q = zeros(d+1,N);
Q(1:d,:) = P(1:d,1:N);
Q(d+1,:) = ones(1,N);


count = 1;
err = 1;
u = (1/N) * ones(N,1);


while err > tolerance,
    X = Q * diag(u) * Q';
    M = diag(Q' * inv(X) * Q);
    [maximum j] = max(M);
    step_size = (maximum - d -1)/((d+1)*(maximum-1));
    new_u = (1 - step_size)*u ;
    new_u(j) = new_u(j) + step_size;
    count = count + 1; …
Run Code Online (Sandbox Code Playgroud)

python matlab porting linear-programming bounding-box

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

将椭球拟合到3D数据点

我有一大堆3D数据点,我想要适合椭圆体.

我的数学很差,所以我在没有任何数学库的情况下无法实现最小二乘法.

有没有人知道或者有一段代码可以将椭球放到数据中,我可以直接插入到我的项目中?在C中最好,但是从C++,Java,C#,python等转换对我来说应该没问题.

编辑:能够找到该中心也将是一个巨大的帮助.请注意,这些点的间距不均匀,因此取平均值不会产生中心.

math geometry least-squares

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

边界椭圆约束为水平/垂直轴

背景:我正在尝试将地形图剪辑为围绕多个风力涡轮机的最小尺寸椭圆,以最小化地图的大小.执行此贴图剪裁的程序可以剪切为椭圆,但只有椭圆,其轴沿x轴和y轴对齐.

我知道边界椭圆问题算法(找到包围一组点的最小区域椭圆).

但是,我如何约束这个算法(或制作一个不同的算法),使得得到的椭圆需要使其长轴水平或垂直定向,无论哪个给出最小的椭圆 - 从不以一个角度?

在此输入图像描述

当然,这种约束使得得到的椭圆大于"需要"包围所有点,但这仍然是约束.

language-agnostic algorithm geometry

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

如何在一组2D点周围拟合边界椭圆

给定一组2d点(笛卡尔形式),我需要找到最小面积椭圆,使得集合中的每个点都位于椭圆上或内部.

我在这个网站上找到了伪代码形式的解决方案,但是我在C++中实现解决方案的尝试却没有成功.

下图以图形方式说明了我的问题的解决方案是什么样的:

一组带有边界椭圆的点

在我的尝试中,我使用了特征库来进行矩阵上的各种操作.

//The tolerance for error in fitting the ellipse
double tolerance = 0.2;
int n = 10; // number of points
int d = 2; // dimension
MatrixXd p = MatrixXd::Random(d,n); //Fill matrix with random points

MatrixXd q = p;
q.conservativeResize(p.rows() + 1, p.cols());

for(size_t i = 0; i < q.cols(); i++)
{
    q(q.rows() - 1, i) = 1;
}

int count = 1;
double err = 1;

const double init_u …
Run Code Online (Sandbox Code Playgroud)

c++ pseudocode eigen

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