微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MATLAB中的线性方程:如何在k个未知数上求解k-1个方程组?

如何解决MATLAB中的线性方程:如何在k个未知数上求解k-1个方程组?

我正在尝试解决分配多边形Q作为输入和输出多边形P的任务,以使Q的2D坐标点成为多边形P的中点。

也就是说,给定在平面q1 ... qk上有k个点的序列,找到一个序列p1 ... pk使得

  • q1是p1和p2的中点

  • q2是p2和p3的中点

  • ...

  • qk是p1和pk的中点。

我在Matlab中编写了该函数,该函数处理奇数个k点的情况。 但是,对于偶数的k点,它不起作用。

function [P,FOUND] = InvertMidpoints(Q)
C=zeros(length(Q));
P=zeros(2,length(Q));
FOUND=false;
k=1;
x=[Q(1,:)]';
y=[Q(2,:)]';
if mod(length(Q),2)==0
    disp('Did not solve for even number of points')
else
    for i=1:(length(Q)-1)
        C(i,k)=1/2;
        C(i,k+1)=1/2;
        k=k+1;
        i=i+1;
    end
    C(length(Q),1)=1/2;
    C(length(Q),length(Q))=1/2;
    a=linsolve(C,x);
    b=linsolve(C,y);
    P(1,:)=a;
    P(2,:)=b;
    FOUND=true;
end
end

基本上,它用系数C矩阵求解线性方程。

我的教授为我提供了以下提示,但我确实没有得到它:

如果k为奇数且为,则矩阵C的秩始终为k 如果k为偶数,则将k − 1排名。因此,如果k为奇数,则可以构造上述矩阵并求解 问题。如果k为偶数,那么即使有解决方案,Matlab也将不允许您这样做。而是 您必须(a)丢掉一个方程式; (b)求解k中剩余的k − 1个方程组 未知数(c)检查找到的解是否满足最后一个方程式

请,您能告诉我这个提示的真正含义吗?谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。