ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:19.50KB ,
资源ID:8577016      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8577016.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用Intel MKL解SVD和 最小二乘.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

用Intel MKL解SVD和 最小二乘.doc

1、用Intel MKL解SVD和最小二乘2010年4 月2 日星期五这几天赶着移植算法,要把MATLAB程序用C+改写。涉及6000多维的方阵运算,幸亏笔记本上2008R2是64位的,64位MATLAB还能算出数来,32位电脑上的MATLAB直接就存储空间不足罢工了。研究了几个C+下矩阵运算的库,boost带的BLAS太矬,lapack,clapack,cpplapack全是在Linux上的设置多,讲windows下配置的太少,都得用Makefile慢慢编译搞科学计算的牛人都是用Linux,可对我这种半路出家的矬人实在是过于高深,再说我也懒得去研究这些,只想找个立刻就能用起来的。那么就Intel

2、的MKL了。于是就装个IntelCPlusPlusCompilerProfessional11.1.060,和VS2008集成得很好。啃路径下自带的userguide.pdf配置路径和库文件,然后按照讲解好第一个例子,增强了信心(我最腻味那种为了实现一个功能让我配置半天甚至几天的玩意);然后随着移植算法,啃3000页的mklman.pdf,虽然也实现了矩阵乘除、解线性方程组之类简单功能,但是毕竟都是针对Fortran语言的为主,看起来跌跌撞撞的。连随软件的例子也净是.f的,你这好像是C+编译器啊,Intel大哥-_-!当然咯,我能看懂这些功能,少不了古狗别人的代码示例,这里特别感谢,刚开始起步

3、时看到能用的代码对我这样的菜鸟是在是太重要了)。后面麻烦就来了,就想把用SVD分解来解最小二乘问题的函数dgelsd用起来,就费了劲了,10几个参数mklman.pdf里讲的可以说是乱七八糟,云山雾罩,为了设置一个参数要调另外的函数,而且一会是上文,一会是后面附录的。昨晚看到上午就是没用起来。试图看看clapack里的例子,也因为愚钝没看懂。结果古狗到Intel自己的网站,结果发现美观清晰的C代码,大喜,copy下来一运行,还真用起来了,那些之前不明白的参数一下就懂了。唉后来一看,原来只提供在线版浏览,没随软件安装。唉,这比那个3000页的pdf实用多了!MD,真正的好东西咋不提供pdf啊In

4、tel官网:放到下面other里面了-.-!,我当时也路过过这里,结果看了上面的,也看了下面的,就独独忘了中间这个IntelMathKernelLibraryLAPACKExamplesHTML下面就是我“千辛万苦“(其实不到半天)找到的dgelsd用法。清晰,规范不转帖不足以表示我的感激之情!开头加一下“mkl.h“,再在项目属性的链接器里把几个依赖的lib加上,就可以运行了。/*Copyright(C)2009-2010IntelCorporation.AllRightsReserved.*Theinformationandmaterial(“Material“)providedbelow

5、isownedbyIntel*Corporationoritssuppliersorlicensors,andtitletosuchMaterialremains*withIntelCorporationoritssuppliersorlicensors.TheMaterialcontains*proprietaryinformationofInteloritssuppliersandlicensors.TheMaterial*isprotectedbyworldwidecopyrightlawsandtreatyprovisions.Nopartof*theMaterialmaybecopi

6、ed,reproduced,published,uploaded,posted,*transmitted,ordistributedinanywaywithoutIntelspriorexpresswritten*permission.Nolicenseunderanypatent,copyrightorotherintellectual*propertyrightsintheMaterialisgrantedtoorconferreduponyou,either*expressly,byimplication,inducement,estoppelorotherwise.Anylicense

7、*undersuchintellectualpropertyrightsmustbeexpressandapprovedbyIntel*inwriting.*/*DGELSDExample.=Programcomputestheminimumnorm-solutiontoareallinearleastsquaresproblemusingthesingularvaluedecompositionofA,whereAisthecoefficientmatrix:0.12-8.197.69-2.26-4.71-6.912.22-5.12-9.089.96-3.33-8.94-6.72-4.40-

8、9.983.973.33-2.74-7.92-3.20andBistheright-handsidematrix:7.300.47-6.281.336.58-3.422.68-1.713.46-9.62-0.790.41Description.=Theroutinecomputestheminimum-normsolutiontoareallinearleastsquaresproblem:minimize|b-A*x|usingthesingularvaluedecomposition(SVD)ofA.Aisanm-by-nmatrixwhichmayberank-deficient.Sev

9、eralrighthandsidevectorsbandsolutionvectorsxcanbehandledinasinglecall;theyarestoredasthecolumnsofthem-by-nrhsrighthandsidematrixBandthen-by-nrhssolutionmatrixX.TheeffectiverankofAisdeterminedbytreatingaszerothosesingularvalueswhicharelessthanrcondtimesthelargestsingularvalue.ExampleProgramResults.=D

10、GELSDExampleProgramResultsMinimumnormsolution-0.69-0.240.06-0.80-0.080.210.380.12-0.650.29-0.240.420.290.35-0.30Effectiverank=4Singularvalues18.6615.9910.018.51*/#includestdlib.h#includestdio.h/*DGELSDprototype*/externvoiddgelsd(int*m,int*n,int*nrhs,double*a,int*lda,double*b,int*ldb,double*s,double*

11、rcond,int*rank,double*work,int*lwork,int*iwork,int*info);/*Auxiliaryroutinesprototypes*/externvoidprint_matrix(char*desc,intm,intn,double*a,intlda);/*Parameters*/#defineM4#defineN5#defineNRHS3#defineLDAM#defineLDBN/*Mainprogram*/intmain()/*Locals*/intm=M,n=N,nrhs=NRHS,lda=LDA,ldb=LDB,info,lwork,rank

12、;/*Negativercondmeansusingdefault(machineprecision)value*/doublercond=-1.0;doublewkopt;double*work;/*Localarrays*/*iworkdimensionshouldbeatleast3*min(m,n)*nlvl+11*min(m,n),wherenlvl=max(0,int(log_2(min(m,n)/(smlsiz+1)+1)andsmlsiz=25*/intiwork3*M*0+11*M;doublesM;doubleaLDA*N=0.12,-6.91,-3.33,3.97,-8.

13、19,2.22,-8.94,3.33,7.69,-5.12,-6.72,-2.74,-2.26,-9.08,-4.40,-7.92,-4.71,9.96,-9.98,-3.20;doublebLDB*NRHS=7.30,1.33,2.68,-9.62,0.00,0.47,6.58,-1.71,-0.79,0.00,-6.28,-3.42,3.46,0.41,0.00;/*Executablestatements*/printf(“DGELSDExampleProgramResultsn“);/*Queryandallocatetheoptimalworkspace*/lwork=-1;dgel

14、sd(lwork=(int)wkopt;work=(double*)malloc(lwork*sizeof(double);/*SolvetheequationsA*X=B*/dgelsd(/*Checkforconvergence*/if(info0)printf(“ThealgorithmcomputingSVDfailedtoconverge;n“);printf(“theleastsquaressolutioncouldnotbecomputed.n“);exit(1);/*Printminimumnormsolution*/print_matrix(“Minimumnormsolut

15、ion“,n,nrhs,b,ldb);/*Printeffectiverank*/printf(“nEffectiverank=%6in“,rank);/*Printsingularvalues*/print_matrix(“Singularvalues“,1,m,s,1);/*Freeworkspace*/free(void*)work);exit(0);/*EndofDGELSDExample*/*Auxiliaryroutine:printingamatrix*/voidprint_matrix(char*desc,intm,intn,double*a,intlda)inti,j;printf(“n%sn“,desc);for(i=0;im;i+)for(j=0;jn;j+)printf(“%6.2f“,ai+j*lda);printf(“n“);后记:搜英文还得是古狗,哪怕是夹杂大量中文;搜中文还得是百度

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报