____ ____| || 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)来解决增强矩阵?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)