⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runitary.m

📁 该算法是用于量子运算的matlab程序
💻 M
字号:
% runitary   Random unitary%    runitary(n,d) creates an n qudit random unitary where d is the %    dimension of the qudits. If d is omitted then it is taken to be 2.%    If argument n is omitted than the default is taken to be%    the value of global variable N. The random unitaries are %    equally distributed over U(d) according to the Haar measure.% Copyright (C) 2005  Geza Toth    E.mail: toth@alumni.nd.edu%% This program is free software; you can redistribute it and/or% modify it under the terms of the GNU General Public License% as published by the Free Software Foundation; see gpl.txt% of this subroutine package.%% This program is distributed in the hope that it will be useful,% but WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the% GNU General Public License for more details.% % You should have received a copy of the GNU General Public License% along with this program; if not, write to the Free Software% Foundation, Inc., 51 Franklin Street, Fifth Floor, % Boston, MA  02110-1301, USA.function U=runitary(varargin);if isempty(varargin)    global N;    d=2;elseif length(varargin)==1    N=varargin{1};    d=2;elseif length(varargin)==2    N=varargin{1};    d=varargin{2};else    error('Wrong number of input arguments.')end %ifU=zeros(d^N,d^N);% Create a random d^Nxd^N unitary% from d^N orthogonal vectorsfor k=1:d^N    vv=randn(d,1)+i*randn(d,1);     for m=1:k-1        vv=vv-U(:,m)*(U(:,m)'*vv);    end %for    U(:,k)=vv/sqrt(vv'*vv);end %for 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -