iphone – 使用加速(CLAPACK)来解决增强矩阵?

iphone – 使用加速(CLAPACK)来解决增强矩阵?,第1张

概述有谁知道在Accelerate(CLAPACK)中使用什么函数/方法来解决增强矩阵,如下所示?寻找任何示例代码,样本链接,如何解决矩阵的提示.我一直在查看文档,但大多数都与更复杂的图形系统有关,并且有数百种看似相似的方法. ____ ____| || 4 3 -1 | 2 || -2 3 8 | 0 有谁知道在Accelerate(clapACK)中使用什么函数/方法来解决增强矩阵,如下所示?寻找任何示例代码,样本链接,如何解决矩阵的提示.我一直在查看文档,但大多数都与更复杂的图形系统有关,并且有数百种看似相似的方法.

____            ____|                    ||  4   3  -1   |  2  || -2   3   8   |  0  ||  0   2   6   | -1  ||____            ____|
解决方法
#include <Accelerate/Accelerate.h>#include <stdio.h>int main(int argc,char *argv[]) {    /* Dimension of the matrix */    __CLPK_integer n = 3;    /* Number of right-hand sIDe vectors to solve for */    __CLPK_integer nrhs = 1;    /* Note the ordering of the entrIEs in A.  LAPACK uses "column major"       ordering as follows:        0 3 6        1 4 7        2 5 8       This is a Fortran-ism that persists in clapACK.                    */    double A[9] = {4.0,-2.0,0.0,3.0,2.0,-1.0,8.0,6.0 };    /* "Leading dimension" of the matrix; most of the time,this is just the       matrix dimension (but not always; you'll learn about this by the time       you need to use it. */    __CLPK_integer lda = 3;    /* Integer array to hold information about the matrix factorization */    __CLPK_integer ipiv[3];    /* Right hand sIDe to solve for */    double x[3] = { 2.0,-1.0 };    /* Leading dimension of the right hand sIDe vector */    __CLPK_integer ldb = 3;    /* Status variable */    __CLPK_integer info;    /* Solve the augmented system with a call to dgesv_.  Note that this       routine will overwrite the contents of the array A with a factored       form of the matrix.  If you need the original matrix,you need to       copy it before calling dgesv_.  Note that all the scalar arguments       are passed as pointers; this too is a Fortran-ism.                 */    dgesv_(&n,&nrhs,A,&lda,ipiv,x,&ldb,&info);    /* Handle error conditions */    if (info)        printf("Could not solve system; dgesv exited with error %d\n",info);    /* If no error,print the result */    else        printf("Solution is [%f,%f,%f]\n",x[0],x[1],x[2]);    return 0;}

编译并运行:

scanon$gcc solve.c -framework Accelerate scanon$./a.out  Solution is [-0.479167,1.125000,-0.541667]
总结

以上是内存溢出为你收集整理的iphone – 使用加速(CLAPACK)来解决增强矩阵?全部内容,希望文章能够帮你解决iphone – 使用加速(CLAPACK)来解决增强矩阵?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1006865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存