Why the function or variable A is not recognized?

조회 수: 6 (최근 30일)
Pierre Hansel Malihan
Pierre Hansel Malihan 2022년 5월 26일
댓글: Pierre Hansel Malihan 2022년 5월 26일
function [L, U] = lu_nopivot (A)
n = size(A, 1);
L = eye(n);
for k = 1 : n
L(k + 1 : n, k) = A(k + 1 : n, k) / A(k, k);
for l = k + 1 : n
A(l, :) = A(l, :) - L(l, k) * A(k, :);
end
end
U = A;
end

채택된 답변

Walter Roberson
Walter Roberson 2022년 5월 26일
You have not defined A in the base workspace, so it does not exist for you to be able to pass its value into the function.
  댓글 수: 3
Walter Roberson
Walter Roberson 2022년 5월 26일
Example:
A = magic(11)
A = 11×11
68 81 94 107 120 1 14 27 40 53 66 80 93 106 119 11 13 26 39 52 65 67 92 105 118 10 12 25 38 51 64 77 79 104 117 9 22 24 37 50 63 76 78 91 116 8 21 23 36 49 62 75 88 90 103 7 20 33 35 48 61 74 87 89 102 115 19 32 34 47 60 73 86 99 101 114 6 31 44 46 59 72 85 98 100 113 5 18 43 45 58 71 84 97 110 112 4 17 30 55 57 70 83 96 109 111 3 16 29 42
[Lout, Uout] = lu_nopivot(A)
Lout = 11×11
1.0000 0 0 0 0 0 0 0 0 0 0 1.1765 1.0000 0 0 0 0 0 0 0 0 0 1.3529 2.0000 1.0000 0 0 0 0 0 0 0 0 1.5294 3.0000 -Inf 1.0000 0 0 0 0 0 0 0 1.7059 56.7436 Inf NaN 1.0000 0 0 0 0 0 0 0.1029 -5.0833 NaN NaN NaN 1.0000 0 0 0 0 0 0.2794 -4.0833 -Inf NaN NaN NaN 1.0000 0 0 0 0 0.4559 -3.0833 -Inf NaN NaN NaN NaN 1.0000 0 0 0 0.6324 2.7115 Inf NaN NaN NaN NaN NaN 1.0000 0 0 0.8088 3.7115 Inf NaN NaN NaN NaN NaN NaN 1.0000 0
Uout = 11×11
68.0000 81.0000 94.0000 107.0000 120.0000 1.0000 14.0000 27.0000 40.0000 53.0000 66.0000 0 -2.2941 -4.5882 -6.8824 -130.1765 11.8235 9.5294 7.2353 4.9412 2.6471 -10.6471 0 0 0 -121.0000 110.0000 0 0.0000 0 0 0 11.0000 NaN NaN NaN -Inf Inf NaN Inf NaN NaN NaN Inf NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
A2 = randi([-9 9], 11, 11)
A2 = 11×11
6 4 -8 2 3 1 3 9 2 -2 4 3 -9 4 1 4 4 -9 -8 -7 7 6 -9 -1 0 1 2 -3 9 2 -6 -6 1 -3 -8 6 2 -6 2 2 5 7 -2 -6 -8 -8 3 -9 -7 0 -2 7 -7 3 -6 -8 6 -7 4 -7 2 9 -3 -7 8 -8 -6 -9 3 -6 -3 0 -2 0 -9 -6 -4 -1 0 -4 6 -6 6 8 -5 2 3 4 1 4 1 -9 -8 -9 6 0 -3 9 7 -6 -4 -6 8 -8 9 -8 -7 -2 -8 -5
[Lout2, Uout2] = lu_nopivot(A2)
Lout2 = 11×11
1.0000 0 0 0 0 0 0 0 0 0 0 0.5000 1.0000 0 0 0 0 0 0 0 0 0 -1.5000 -0.4545 1.0000 0 0 0 0 0 0 0 0 -0.5000 0.5455 0.2826 1.0000 0 0 0 0 0 0 0 -1.3333 0.2424 1.1486 -5.8450 1.0000 0 0 0 0 0 0 -1.3333 -1.0303 1.1268 1.1550 -0.0040 1.0000 0 0 0 0 0 -1.0000 0.4545 1.0326 -4.3488 0.7409 -0.1543 1.0000 0 0 0 0 -0.1667 -0.0606 0.5797 2.1473 -0.1257 0.8994 -4.4725 1.0000 0 0 0 0.1667 -0.3030 -0.5688 -3.7752 0.5683 -1.2929 4.4751 0.1036 1.0000 0 0 -1.0000 0 1.6739 1.7674 0.0608 1.3914 8.6670 -1.8582 -1.2231 1.0000 0
Uout2 = 11×11
6.0000 4.0000 -8.0000 2.0000 3.0000 1.0000 3.0000 9.0000 2.0000 -2.0000 4.0000 0 -11.0000 8.0000 0 2.5000 3.5000 -10.5000 -12.5000 -8.0000 8.0000 4.0000 0 0 -8.3636 4.0000 7.6364 0.0909 8.7273 9.8182 -6.6364 -5.3636 8.8182 0 0 0 1.8696 -8.0217 0.5652 6.7609 13.5435 14.2391 -5.8478 -8.6739 0 0 0 0 -59.2636 3.6841 34.0388 89.9147 88.4554 -29.6260 -62.4632 0 0 0.0000 0 -0.0000 6.1988 -15.3254 -30.2266 -21.1917 26.2558 1.2876 0 0 0.0000 0 -0.0000 -0.0000 -1.4198 -7.8365 -3.3907 -5.5297 -2.1692 0 0 -0.0000 0 0.0000 -0.0000 0.0000 -35.5902 -9.8650 -33.2539 -0.2894 0 0 0.0000 0 -0.0000 0.0000 -0.0000 0.0000 -17.2532 65.6044 26.7188 0 0 -0.0000 0 0.0000 0.0000 0.0000 0.0000 0 40.9618 52.5214
function [L, U] = lu_nopivot (A)
n = size(A, 1);
L = eye(n);
for k = 1 : n
L(k + 1 : n, k) = A(k + 1 : n, k) / A(k, k);
for l = k + 1 : n
A(l, :) = A(l, :) - L(l, k) * A(k, :);
end
end
U = A;
end
Pierre Hansel Malihan
Pierre Hansel Malihan 2022년 5월 26일
I see thank you very much sir, it was very helpful.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by