Umfpack 在Matlab中使用

 一般matlab是自带umfpack的lib的,所以应该可以直接用,如果不可以,就先安装MinGW64等,再点击umfpack_install安装就可以了

在C和fortran中,umfpack是使用CSC格式储存稀疏矩阵的,在matlab中,只要对COO格式的矩阵使用sparse就可以使用umfpack函数了。

umfpack函数使用

 上图是官方手册,对照着function在matlab使用umfpack

umfpack函数参数

我暂时就只需要umfpack函数,就研究了这个,只能说以我的理解来用吧。点开umfpack.m


%   opts.prl        >= 0, default 1 (errors only)
%   opts.strategy   'auto', 'unsymmetric', 'symmetric', default auto
%   opts.ordering   'amd'       AMD for A+A', COLAMD for A'A
%                   'default'   use CHOLMOD (AMD then METIS; take best fount)
%                   'metis'     use METIS
%                   'none'      no fill-reducing ordering
%                   'given'     use Qinit (this is default if Qinit present)
%                   'best'      try AMD/COLAMD, METIS, and NESDIS; take best
%   opts.tol        default 0.1
%   opts.symtol     default 0.001
%   opts.scale      row scaling: 'none', 'sum', 'max' default:'sum'.
%   opts.irstep     max # of steps of iterative refinement, default 2
%   opts.singletons 'enable','disable' default 'enable'
%

里面有这样的预设,如果你使用x = umfpack(A,'\',b) 或者 x = umfpack(A,'\',b,umfpack)都是使用的默认设置。如果想要自己自定义,就需要

Control.prl = 0 ;
Control.strategy  = 'auto';
Control.ordering   = 'amd'; 
Control.tol      =   0.1;
Control.symtol   =  0.001;
Control.scale    =  'max';
Control.irstep   =   3;
Control.singletons ='enable';

以上就举个例子,参数随便写的,再x = umfpack(A,'\',b,Cotrol)这样函数就会用自定义的设置求解。这些参数的含义再其自带的UserGuide都有说明,我就说几个。

 prl:应该是设置RCOND分界线,设置默认为1,设置为0编译器就不会对奇异值报错

irstep:尝试的迭代优化步骤的最大次数。

strategy:这是最重要的控制参数。它决定了UMFPACK应该使用哪种排序和旋转策略。有3种选择:auto unsymmetic symmetric 

scale:选择对矩阵缩放的方法,下图是解释。

 

一般就设置成默认就可以了。

使用手册都是英文的,想了解更多用法,可以去看下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这个错误通常是因为编译无法找到 umfpack.h 文件或目录。您需要确保您的编译可以找到该文件或目录。您可以尝试在编译的 include 路径添加 umfpack.h 文件所在的路径,或者确保您已经正确安装了 UMFPACK 库。 ### 回答2: "umfpack.h没有那个文件或目录"这个错误通常发生在尝试编译和构建程序时。这个错误表明找不到名为umfpack.h的文件或目录。 umfpack.h是一种用于稀疏矩阵计算的库文件的头文件。要解决这个错误,你可以采取以下步骤: 1. 确保你已经正确安装了umfpack库。可以在相关文档找到安装说明。检查库文件是否正确安装并位于你的计算机上。 2. 确保你在编译过程正确地指定了umfpack库的路径。在编译和构建命令,应该包含正确的库路径和链接选项。如果未正确设置,编译将无法找到umfpack.h文件。 3. 检查你的代码是否正确包含了umfpack.h头文件。确认头文件的名称和路径是否正确拼写和指定。 4. 如果你是在Windows环境下编译程序,请确保你已经正确设置了环境变量。有时候,库文件的路径需要手动添加到系统的环境变量,以便编译能够找到它。 总之,"umfpack.h没有那个文件或目录"错误通常是由库文件未正确安装、路径设置不正确或代码未正确包含头文件引起的。通过检查这些方面,你应该能够解决此问题并成功编译你的程序。 ### 回答3: 当你收到"umfpack.h没有那个文件或目录"的错误消息时,这意味着编译无法找到你所需要的"umfpack.h"头文件。 "umfpack"是一个开源的稀疏线性代数库,用于求解稀疏线性方程组。它包含了一系列的头文件和库文件,而"umfpack.h"头文件包含了库的函数和结构的声明和定义。 出现"umfpack.h没有那个文件或目录"错误消息有以下几种可能的原因: 1. 你没有正确地安装"umfpack"库。在编译代码之前,你需要确保已经正确地安装了该库,包括头文件和库文件。 2. 头文件的路径没有正确地配置。你需要在编译的编译选项包含正确的"umfpack.h"头文件的路径,以便编译可以找到并包含该头文件。 3. 头文件的名称不正确。确保你使用的是正确的头文件名称,如果名称大小写不匹配,编译也会报错。 解决这个问题的方法是: 1. 确保你已经正确地安装了"umfpack"库,包括头文件和库文件。可以查看该库的文档以获取安装指南。 2. 检查你的编译选项是否正确地配置了"umfpack.h"头文件的路径。你可能需要通过添加"-I"选项来指定该头文件的路径。 3. 确保你使用的是正确的头文件名称,大小写要匹配。 总之,"umfpack.h没有那个文件或目录"错误消息表明编译无法找到所需的"umfpack.h"头文件。你需要检查安装和配置是否正确,以确保头文件能够被正确地找到和包含。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空花缱绻三分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值