Why the function or variable A is not recognized?

6 ビュー (過去 30 日間)
Pierre Hansel Malihan
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 Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by