Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Matrix Inverse Problem #4

Open
1u2e opened this issue May 7, 2022 · 4 comments
Open

Matrix Inverse Problem #4

1u2e opened this issue May 7, 2022 · 4 comments

Comments

@1u2e
Copy link

1u2e commented May 7, 2022

哈喽,你好呀,最近发现了这个C语言矩阵运算库的宝库,进行了一些学习和测试。发现在矩阵求逆M_Inverse时,如果矩阵维度为1,会无法求出结果,麻烦您有空看一下。由于对您矩阵求逆运算原理不太看得懂,因此,打了个补丁如下,能正常求解:
1651886199(1)

@Amoiensis
Copy link
Owner

Amoiensis commented May 12, 2022

您好,谢谢您对于本项目的关注和使用!

  1. 确实存在这个问题,感谢您的发现,该问题将在下一版中得到修正(将同步完善方阵、可逆等报错检测等);
  2. 对了,这里矩阵计算,采用的是初等变换的方法求解;以求解A矩阵的逆为例(假定A可逆,不可逆情况在程序中有对应处理和报错提示):(其中Λ为对角矩阵)
    MommyTalk1652371159503
    [注意] 此处采用均为初等变换,而初等变换中行、列变换具有很好的转换(对应)关系,从而可以实现求逆。
  3. 希望本项目能够帮助到您,也非常希望您能和我一起完善和丰富这个项目,欢迎提交代码完善功能、周边应用都是可以的。
    [e.g.] 本人之前就使用前代版本,实现部分最优化算法等,Optimization-Algorithm(最优化算法):https://github.com/Amoiensis/Optimization-Algorithm

@1u2e
Copy link
Author

1u2e commented May 13, 2022

感谢您的回复,最近也在您的矩阵运算库上进行一些学习和探索。在使用矩阵求逆功能时,发现内存管理有点小问题,造成了内存泄漏。初步debug下来,觉得是Etrans_4_Inverse函数free结构Etrans_struct时有问题,比如一个节点不为空,它的下一个节点为空,那么该节点就不能得到正确的free。因此,初步进行了如下修改:
image

@Amoiensis
Copy link
Owner

您好,是的,确实存在这个内存泄漏的问题,感谢您的发现!
确实存在最后退出的时候,遗漏了最后一个结构体的释放,该问题将在下一版中得到修正。将采用您展示的这种修改方案(下一版的说明中将涉及),感谢您的关注和支持!
非常期待您发现和提出更多的相关问题和应用,让我们一起完善这个项目~

@Amoiensis
Copy link
Owner

你好,在2022.05.28 发布的Matrix_Hub v1.51 中,已经修正上述两个问题:

  1. 一维矩阵求逆报错;
  2. 初等变换结构体内存释放;.

处理方法为修正 “Etrans_4_Inverse” 函数,具体修改如下:
内存泄漏+一维矩阵求逆_修正
[补充] @1u2e 在v1.51版的更新中,特意@了你并进行了说明,感谢您的关注和支持;
非常期待您发现和提出更多的相关问题和应用,让我们一起完善这个项目~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants