2
これはあなたには非常に簡単な質問ですが、私はそれについて話すことができる誰もいないので、ここでそれを尋ねるべきだと思っています。私は数日の間、本から学んでいるだけですが、以下のコードで与えられているように、行列 "Smat"の2つのループを通して行列要素を定義しようとしています。それぞれの 'k'行と 'j'列に対して、値 "Stemp"を行列値 "Smat [k] [j]"に入れたい。しかし、コードを実行すると、コードはk = 0だけ使用され、k = 1、k = 2などは無視されます(すべてのjの値をうまくいくように管理します)。誰かが私がどこに間違っているか教えてくれたら、本当に感謝しています。この質問は非常に些細なものですが、残念ながら私は実際の生活でそれについて話すことはできません。前もって感謝します。C++で基本的な行列を作成するのが難しい
unsigned long int j = 1;
unsigned long double M = pow(2, 8);
double T = 1;
double dW;
double dt = T/M;
double Smat[100][256]; // Define rows/cols of Smat
double sigma;
double c = -2;
double mu = 2;
double Stemp = S_0;
double theta = 0.01;
for (int k = 0; k < 100; k++) {
Stemp = S_0;
Smat[k][0] = Stemp; // All first rows of Smat start with S_0 value
for (j = 1; j < M; j++) {
double nrv = normaldist();
dW = sqrt(dt)*nrv;
sigma = sigatm + c /(max(sqrt(T), theta))* log(Stemp/S_0);
Stemp = Stemp + Stemp*mu*dt + Stemp*sigma*dW;
Smat[k][j] = Stemp;
}
}
私は最初にコードを誤解しましたが、これはまだ問題であるため、説明を更新しました。 –
ありがとう、私は今それを変更しました。そしてコードは機能します!ありがとう! – ThePlowKing