Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-05, 14:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 通过反复求解n个线性系统来计算A-1

在此处输入图片说明

我正在尝试解决这个问题。但是我一直出错。这是我的第一个代码。

% Program 3.3 function [L, U, P] = lufact(A) [N, N] = size(A); X = zeros(N, 1); Y = zeros(N, 1); C = zeros(1, N); R = 1:N; for p = 1: N-1 [max1, j] = max(abs(A(p:N, p))); C = A(p,:); A(p,:) = A(j + p - 1,:); A(j + p -1, :) = C; d = R(p); R(p) = R(j + p -1); R(j + p - 1) = d; if A(p,p) == 0 'A is Singular. No unique Solution' break end for k = p + 1:N mult = A(k,p)/A(p,p); A(k,p) = mult; A(k,p + 1:N) = A(k, p + 1:N) - mult *A(p, p + 1:N); end I=(1:N)'*ones(1,N,1); J=I'; L = (I>J).*A + eye(N); U = (J>=I).*A; P = zeros(N); for k=1:N P(k,R(k))=1; end end X(N) = Y(N)/A(N,N); for k = N-1: -1: 1 X(k) = (Y(k) - A(k, k+1:N)*X(k+1:N))/A(k,k); end



这是我用来解决此问题的第二代码。

function B = Ques3(A) % Computes the inverse of a matrix A [L,U,P] = lufact(A); N = max(size(A)); I = eye(N); B = zeros(N); for j = 1:N Y = forsub(L,P*I(:,j)); B(:,j) = backsub(U,Y); end



但是我在MATLAB中始终遇到错误,“ >> Ques3(A)无法识别的函数或变量'forsub'。

Ques3中的错误(第12行)Y = forsub(L,P * I(:,j));“

有人可以帮我解决这个问题。

谢谢!!



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:51


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.