how to solve differential equation

2 views (last 30 days)
FIR
FIR on 25 Mar 2013
Answered: Gautam on 1 Jul 2025
I want to solve differential equation plz help
du/dt+u*du/dx+v*du/dy+w*du/dz=-1/p*dp/dx+r(d^2u/dx^2+d^2u/dy^2+d^2u/dz^2)
the values of v,w,du/dt,dv/dt.dw,dt will be determined nu user
plz tell how to implement

Answers (1)

Gautam
Gautam on 1 Jul 2025
Hello, FIR
Here's a basic workflow that you can follow:
  1. Discretize the equation.
  2. Set up initial and boundary conditions.
  3. Let user define ( v, w, dt ) (and others as needed).
  4. Iterate over time using numerical integration (Euler, Runge-Kutta, etc.).
  5. Visualize or output the results.
You can try out something like this
% Parameters
Nx = 100; % Number of spatial points
L = 1; % Length of domain
dx = L/(Nx-1); % Spatial step
dt = 0.001; % Time step (user-defined)
Nt = 200; % Number of time steps
u = zeros(Nx,1); % Velocity u
p = zeros(Nx,1); % Pressure
rho = 1; % Density
r = 0.01; % Viscosity
% Initial conditions
u(:) = 0; % or user-defined
p(:) = 0; % or user-defined
% Main time-stepping loop
for n = 1:Nt
u_old = u;
p_old = p;
for i = 2:Nx-1
du_dx = (u_old(i+1) - u_old(i-1))/(2*dx);
d2u_dx2 = (u_old(i+1) - 2*u_old(i) + u_old(i-1))/(dx^2);
dp_dx = (p_old(i+1) - p_old(i-1))/(2*dx);
% specify v, w, du/dt, dv/dt, dw/dt as needed
v = 0; % or user-defined
w = 0; % or user-defined
% Time derivative (explicit Euler)
u(i) = u_old(i) + dt * ( ...
- u_old(i) * du_dx ...
- (1/rho) * dp_dx ...
+ r * d2u_dx2 ...
);
end
% Boundary conditions
u(1) = 0; u(end) = 0; % Example BCs
end
plot(linspace(0,L,Nx), u)
xlabel('x'); ylabel('u');
title('Velocity profile');

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!