How to evaluate dirac function in matlab?
    9 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
I have this problem in matlab 2011a that I can not evaluate dirac function of higher order. In other words, the symbolic expression works well:
syms x;
diff(dirac(x),x)
ans =
dirac(x, 1)
However, it can not evaluate dirac(x, 1) when x is double:
>> dirac(1, 1)
??? Error using ==> dirac
Too many input arguments.
What should I do? Is there any code available ?
I can evaluate this in Maple but it is hard to believe that matlab doesn't prepared for this simple problem.
0 commentaires
Réponses (2)
  Iman Ansari
      
 le 23 Mai 2013
        
      Modifié(e) : Iman Ansari
      
 le 23 Mai 2013
  
      syms x;
y=diff(dirac(x),x)
subs(y,1)
0 commentaires
  Youssef  Khmou
      
 le 23 Mai 2013
        hi
The dirac function accepts only one argument (at least for earlier versions than yours) however, if you do not have the symbolic toolbox you can program your own function and put "1" in "0" instead of +infinity .
-First solution :
 t=-10:0.001:10;
 y=dirac(t);
 figure, plot(t,y);
 dy=diff(y)./diff(t);
 figure, plot(t(1:end-1),dy,'r')
-Second solution :
function z=Dirac(t)
N=length(t);
z=zeros(size(t));
for n=1:N
    if t(n)==0
        z(n)=1;
    end
  end
Adjust this function for later use ....
0 commentaires
Voir également
Catégories
				En savoir plus sur Introduction to Installation and Licensing dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


