标签:
杂谈 |
分类: 菜鸟成长日记 |
R = mvnrnd(MU,SIGMA)——从均值为MU,协方差为SIGMA的正态分布中抽取n*d的矩阵R(n代表抽取的个数,d代表分布的维数)。
MU为n*d的矩阵,R中的每一行为以MU中对应的行为均值的正态分布中抽取的一个样本。
SIGMA为d*d的对称半正定矩阵,或者为d*d*n的array。若SIGMA为array,R中的每一行对应的分布的协方差矩阵为该array对应的一个page。也就是说:R(i,:)由MU(i,:)和SIGMA(:,:,i)产生。
如果协方差矩阵为对角阵,sigma也可用1*d向量或1*d*n的array表示,如果MU是一个1*d的向量,则SIGMA中的n个协方差矩阵共用这个MU。R的行数n由MU的行数n或者SIGMA的page数n决定。
r = mvnrnd(MU,SIGMA,cases)——从均值为MU(1*d),协方差矩阵为SIGMA(d*d)的正态分布中随机抽取cases个样本,返回cases*d的矩阵r。
不使用现成的函数,可以通过一个线性变换来实现:
我们知道,matlab产生的n维正态样本中的每个分量都是相互独立的,或
标签:
杂谈 |
分类: 菜鸟成长日记 |
clear;clc;close all
% 两阶段法
disp('在运行程序之前,请确认已经将LP化为标准型');
tic;
A=[1 1 1 1 0 0 0;-2 1 -1 0 -1 1 0;0 3 1 0 0 0 1];
c0=[-3 0 1 0 0 -1 -1];
b=[4;1;9];
% A=[2 2 1 0 0;4 0 0 1 0;0 5 0 0 1];
% c=[2 3 0 0 0];
% b=[12;16;15];
% A=input('请输入系数矩阵A=');
% c=input('请输入目标函数的系数c=');
% b=input('请输入右端向量b=');
[m,n]=size(A);
% C_B B b x
bigm=zeros(m,m+n);
% 第一阶段
c=[0 0 0 0 0 -1 -1];
% 加入松弛变量以后,直接就会形成单位阵
% 第一步:形成初始的单纯形表
% bigm(:,2)=n-m+1:n;
total_m=nchoosek(1:n,m);
for i=1:size(total_m,1)