此处提供尺寸为9 * 9的矩阵A.
A = [-6.932e-2,17.41,-36.75,0,0,0,-6.0660,-31.54,0;
-1.435e-4,2.719e-2,-1.411e-3,3.467e-1,0,-9.380e-1,7.139e-2,-1.691e-2,0;
-4.537e-4,1.870e-3,-2.025e-1,0,1,0,-4.688e-2,7.563e-3,0;
-1.304e-4,-7.179,-4.916e-1,-6.172e-1,-3.689e-2,7.631e-1,0,0,0;
2.297e-5,0,-8.667e-1,4.393e-2,-1.947e-1,-2.026e-2,0,0,0;
1.964e-5,4.263e-2,-1.329e-2,1.233e-3,1.579e-2,-1.600e-1,0,0,0;
0,0,0,1,1.941e-1,2.771e-1,0,6.258e-2,0;
0,0,0,0,8.192e-1,-5.736e-1,-5.612e-2,0,0;
0,0,0,0,6.055e-1,8.648e-1,0,2.006e-2,0]
如何围绕n%的标称值扰动矩阵A的元素,得到矩阵A的扰动模型?
答案 0 :(得分:3)
您可以使用此方法创建矩阵A
的n模型。
对于矩阵的每个元素,请执行以下操作。例如,选择矩阵A(1,1)=-6.932e-2
。
n = 20; % The number of elements evaluations
sd = 0.01; % The percent of perturbation around nominal value
A_11 = (randn(n,1)*sd*A(1,1))+A(1,1);
.... .
...你会得到A_11:
-0.0692
-0.0692
-0.0695
-0.0695
-0.0687
-0.0693
-0.0692
-0.0698
-0.0701
-0.0701
-0.0687
-0.0694
-0.0685
-0.0685
-0.0693
-0.0704
-0.0688
-0.0696
-0.0692
-0.0701
您应该为矩阵的其他元素执行此操作。
选择n = 20
,您可以获得矩阵A(1,1)
的20个元素,如果您为其他元素执行此操作,则可以为矩阵A
找到n个模型。
答案 1 :(得分:3)
创建包含所有扰动值的矩阵将比逐个元素更快。此示例使用均匀分布,但可以轻松更改以进行正态分布。
N = 20;
d = 0.1;
A_perturb = repmat(A,[1 1 N]) + repmat(A,[1 1 N]) .* ...
((rand(size(A,1),size(A,2),N) - 0.5) .* 2 .* d);
获取A(1,1)的所有值:
>> reshape(A_perturb(1,1,:),[],1)
ans =
-0.0702
-0.0762
-0.0627
-0.0628
-0.0632
-0.0739
-0.0722
-0.0705
-0.0637
-0.0746
-0.0759
-0.0702
-0.0715
-0.0685
-0.0645
-0.0631
-0.0711
-0.0660
-0.0672
-0.0706
获得第九次迭代的A:
>> A_perturb(:,:,9)
ans =
-0.0637 16.8216 -37.8357 0 0 0 -5.8413 -30.0970 0
-0.0001 0.0275 -0.0015 0.3390 0 -0.9977 0.0713 -0.0153 0
-0.0005 0.0017 -0.1889 0 1.0960 0 -0.0427 0.0081 0
-0.0001 -6.7782 -0.5080 -0.6484 -0.0387 0.7986 0 0 0
0.0000 0 -0.8465 0.0413 -0.2107 -0.0210 0 0 0
0.0000 0.0408 -0.0138 0.0013 0.0161 -0.1751 0 0 0
0 0 0 1.0582 0.1925 0.2722 0 0.0630 0
0 0 0 0 0.7448 -0.5221 -0.0575 0 0
0 0 0 0 0.6176 0.8328 0 0.0212 0