Search
Code Directory
 ASP
 ASP.NET
 C/C++
 CFML
 CGI/PERL
 Delphi
 Development
 Flash
 HTML
 Java
 JavaScript
 Pascal
 PHP
 Python
 SQL
 Tools
 Visual Basic & VB.NET
 XML
New Code
The C# Excel Library 2020.5
dbForge Studio for MySQL 9.0
LinkedIn Clone 2.2
Uber clone Apps 4.0
Cab Booking Script 1.3.2
Airbnb Clone HomestayDNN 3.0
Magento Language switcher 1.2.1
The .Net PDF Library 2020.3.2
IP2Location Geolocation Database 2020.5
ODBC Driver for MailChimp 2.0
ODBC Driver for NetSuite 2.0
ODBC Driver for SQL Azure 3.1
dbForge Schema Compare for Oracle 4.1
dbForge Data Compare for Oracle 5.1
dbForge Studio for Oracle 4.1
Top Code
dbForge Studio for MySQL 8.1
dbForge Studio for Oracle 3.10
dbForge Schema Compare for Oracle 2.7
dbForge Data Compare for Oracle 3.7
IP2Location Geolocation Database 2020.5
azar's knights tour 1.0
PDF Chart Creator DLL
PDF Chart Creator Dynamic Link Library 1.0
Form creator 1.0
FormMail Lite 1.0
SocketTimesheet
BS/1 Professional - Time Billing and Accounting
Online Video Rental Software System Alpha
Bullschmidt ASP Web Database Sample 2.0
Easy PCB Design Software in Java 1.0
Top Rated
phpEnter 5.1.
Single Leg MLM 1.2.1
Azizi search engine script PHP 4.1.10
Paste phpSoftPro 1.4.1
Extreme Injector 3.7
Deals and Discounts Website Script 1.0.2
Solid File System OS edition 5.1
Classified Ad Lister 1.0
Aglowsoft SQL Query Tools 8.2
Invoice Manager by PHPJabbers 3.0
ICPennyBid Penny Auction Script 4.0
PHP Review Script 1.0
ATN Resume Finder 2.0
ATN Site Builder 3.0
Availability Booking Calendar PHP 1.0
atrix Products Expressed in Terms of Individual Operands 1.0
File ID: 84050






atrix Products Expressed in Terms of Individual Operands 1.0
Download atrix Products Expressed in Terms of Individual Operands 1.0http://www.mathworks.comReport Error Link
License: Shareware
File Size: 10.0 KB
Downloads: 2
Submit Rating:
atrix Products Expressed in Terms of Individual Operands 1.0 Description
Description: This submission defines a class for representing products of matrices (or of any objects that know how to multiply) when it is more efficient to store and manipulate the matrices separately.

USAGE:

P=ProdCascade({A1,A2,...,An})

This creates an object P representing the matrix product A1*A2*...*An. Internally, however, the object stores/manipulates the matrices {A1,A2,...,An} individually, which can be more efficient memory-wise than when the product is fully evaluated. Furthermore, when evaluating a matrix-vector product A1*A2*...*An*x, it can be more efficient speed-wise to exploit associativity and compute the result using n successive products.

A simple example of this idea is the outer product u*v.' of column vectors u and v. Clearly, it is more efficient to multiply the outer product with a vector x as u*(v.'*x) than as (u*v.')*x. The following gives a demonstration of how the class exploits this.

u=rand(4000,1);
v=rand(4000,1);
x=rand(4000,1);

Pmat=u*v.';
P=ProdCascade({u,v.'});


tic
y1=Pmat*x;
z1=Pmat.'*y1;
toc;
%Elapsed time is 0.050854 seconds.



tic
y2=P*x;
z2=P.'*y2;
toc
%Elapsed time is 0.000457 seconds.




PercentError =100*norm([y2;z2]-[y1;z1])/norm([y1;z1]), %=7.8336e-014



>>whos Pmat P

Name Size Bytes Class Attributes

P 4000x4000 64244 ProdCascade
Pmat 4000x4000 128000000 double


Other situations where it can be better to store a matrix decomposed into a product would include, for example, when a large full matrix has a sparse decomposition.

Methods overloaded by the class include mtimes (*) ,tranpose (.') , ctranpose (') , det, and inv, which exploit the fact that these operations more or less distribute across matrix products. Also, some methods allow the object P to be manipulated as if it were the cell array {A1,...,An} that generated the object initially. For example, the expression A1=P{1} will extract the first operand of the product.

The ProdCascade class can be useful not just for holding products of matrices, but also of any operator objects that know how to multiply. Here is an example that uses my MatrixObj class
http://www.mathworks.com/matlabcentral/fileexchange/26611-on-the-fly-definition-of-custom-matrix-objects

to represent a frequency-domain filtering operation as a multiplication with ProdCascade object, P.

%%data
N=2^14;
x=rand(N,1);
LowPass=ones(N,1); LowPass(10:end-9)=0;

%%Make FFT operator
Q=MatrixObj;
Q.Ops.mtimes=@(Q,x) fft(x);
Q.Trans.mtimes=@(Q,x) ifft(x);

%%Make filtering operator, P*x should be equivalent to ifft(fft(x).*LowPass)

L=spdiags(LowPass,0,speye(N));
P=ProdCascade({Q',L,Q});

isequal( P*x,ifft(fft(x).*LowPass) )%=1


DISCAIMER: Error checking is never done to see whether the operators in a ProdCascade are compatible for successive multiplication.

License: Shareware

Related: operations, distribute, ctranpose, mtimes, tranpose, methods, Expression

O/S:BSD, Linux, Solaris, Mac OS X

File Size: 10.0 KB

Downloads: 2



More Similar Code

The modal functions of an elliptic membrane with fixed edges are expressed as products of angular and radial Mathieu functions with the natural frequencies being found in terms of the zeros of the radial functions. Routines to compute functions ce,se, Mc1 and Ms1 are provided. Mode shapes are presented using either animated surface plots or contour plots. The main driver program and associated functions are explained by using the command 'type...



The function circumcircle takes input as the coordinates of the three vertices of a triangle and compute the circum center and circum radius by using the formula in terms of the length of sides and area of triangle and plot the circumcircle.



Time Reporter allows you to record time spent on tasks in terms of start and stop times in a simple text format, then calculates the time worked on each task for each day and each reporting period.

It is very easy to install and use and...



This is an absolutely fabulous european currency calculator that calculates the money value of european countries currency in terms of the new European currency.

The script is very lightweight and can be easily integrated into your own...



it finds the shortest path from the given network having given no of links between given no of nodes and plots the given network as well as the modified network having shortest path in terms of cost



This M-function produces an image of a 3D object defined by matrix a(l,m,n) in terms of voxels.



The Kalman filter is actually a feedback approach to minimize the estimation error in terms of sum of square. This approach can be applied to general nonlinear optimization. This function shows a way using the extended Kalman filter to solve some...



This package includes a Simulink model of the evaportaor described by Newell and Lee (1989) together with a gradient control system which achieves self-optimizing operation in terms of minimizing the operation cost. The work has been published in...



The program is an ordinary m-file
the matrix g(*,*) can be used to punch in the metric values in terms of symbolic variables x1,x2,x3,x4(co-ordinate axes)
The program first computes the Affine connection(Christoffel symbols) stored in...



A reaction object contains parameters that describe a chemical reaction scheme in terms of reagents, reaction steps, rate constants and equilibrium constants. The reaction can be evaluated to provide concentrations of species as a function of time...

User Review for atrix Products Expressed in Terms of Individual Operands
- required fields
     

Please enter text on the image