ode15s
    4 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Solving a partial differential equation with ode15s,we know that this ode solver integrates the ode over time direvatives.I need to find the values of these time direvatives,do you have any special command? for example: for i=1:n dudt=uxx(i) end
how can I find these dudt at each time and x(i)? thanks alot
0 commentaires
Réponse acceptée
  Andrew Newell
      
 le 30 Jan 2012
        If you are solving something like
[t,x] = solver(odefun,tspan,y0)
and you want the time derivative at each point t(i), then that is simply
dxdt = 0*x;  % initialize the array
for ii=1:length(t)
  dxdt(ii,:) = odefun(t(ii),x(ii,:));
end
(edited to allow for the possibility that x has more than one component at each time t).
2 commentaires
  Bård Skaflestad
      
 le 30 Jan 2012
				That's more or less what I had in mind. Calling the |odefun| from an |OutputFcn| is just another refinement.
Plus de réponses (2)
  Bård Skaflestad
      
 le 30 Jan 2012
        If you're going to solve a PDE by the method of lines (i.e., converting it into a system of ODEs), then you will need to provide a spatial discretisation of the PDE along with suitable initial conditions whence ode15s (or others) will likely assist you in the numerical solution.
Please review your favourite text book on discretisation methods.
4 commentaires
  Andrew Newell
      
 le 30 Jan 2012
        EDIT: Here is a modified version of the example at the link provided:
sol = ode45(@vdp1,[0 20],[2 0]);
t = linspace(0,20,100);
[y,dy] = deval(sol,t,1);
plot(t,dy);
3 commentaires
  Andrew Newell
      
 le 30 Jan 2012
				I think it is the time derivative (as in the example I added), but for a polynomial fitting the solution. I provide a more direct solution in a separate answer.
  Bård Skaflestad
      
 le 30 Jan 2012
				Indeed it is. The second output of |deval| is the derivative (wrt the independent variable) of the continuous output polynomial fitted to the numerical scheme of the particular solver (ODE45 in the above example).
Yet another detail I'd missed while skimming the documentation of |deval|.
Voir également
Catégories
				En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
			
	Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!