Why the function or variable A is not recognized?

1 view (last 30 days)
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

Accepted Answer

Walter Roberson
Walter Roberson on 26 May 2022
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 Comments
Walter Roberson
Walter Roberson on 26 May 2022
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 on 26 May 2022
I see thank you very much sir, it was very helpful.

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!