3x3 行列 A があります。また、A の最大固有値として値gを計算します。すべての値の要素 A(3,3) = 0 を 0.10 刻みで 0 から 1 に変更しようとしています。次に、値ごとにgを更新します。他のすべてのマトリックス要素は同じままにしたいと思います。
forループがこれを行う方法だと思いましたが、この更新を1つのますます大きなマトリックスとして保存せずに、マトリックス内の1つの要素のみを更新する方法がわかりません。A(3,3) = pの要素を呼び出すと(それによって新しい行列 Atry が作成されます)、必要な 0 から 1 までのすべての値を取得できます (以下を参照)。必要なgのすべての値を取得するために Atry を更新する方法がわかりません。Atry をpの異なる値で更新してからgの値を計算する方法がわからないため、コードの状態はすべての反復でgの同じ値を与えるようになりました。
これを行う方法についての提案、またはウェブ検索に対する専門用語やフレーズの提案をいただければ幸いです。
A = [1 1 1; 2 2 2; 3 3 0];
g = max(eig(A));
% This below is what I attempted to achieve my solution
clear all
p(1) = 0;
Atry = [1 1 1; 2 2 2; 3 3 p];
g(1) = max(eig(Atry));
for i=1:100;
p(i+1) = p(i)+ 0.01;
% this makes a one giant matrix, not many
%Atry(:,i+1) = Atry(:,i);
g(i+1) = max(eig(Atry));
end