Problem with initial condition
Mostra commenti meno recenti
When I run ode I get the eerror message "@(X,G)FLUX_DIM(C,RHO_FUEL,A,RHO,X,G) returns a vector of length 100, but the length of initial conditions vector
is 300. The vector returned by @(X,G)FLUX_DIM(C,RHO_FUEL,A,RHO,X,G) and the initial conditions vector must have
the same number of elements.
Np =300;
x=linspace(0,L_grain,Np) ;
x=x(:);
x_0=zeros(1,Np);
x_0=x_0(:);
[x_sol,G_sol]=ode45(@(x,G)flux_dim(C,rho_fuel,A,rho,x,G),[0,L_grain],x_0);
function DG_dx=flux_dim(x,A,rho,C,rho_fuel,G)
DG_dx=(-C-A).'.*(rho-rho_fuel);
DG_dx=DG_dx(:);
end
4 Commenti
Walter Roberson
il 7 Gen 2021
@(x,G)flux_dim(C,rho_fuel,A,rho,x,G)
That is how you are calling the function
function DG_dx=flux_dim(x,A,rho,C,rho_fuel,G)
That is how you are declaring the function. Notice the different order of parameters.
Francesco Renzulli
il 7 Gen 2021
Mathieu NOE
il 7 Gen 2021
tried to run your code but many constants are missing
even thougt x and G are in the function args they are not used in the DE
Francesco Renzulli
il 7 Gen 2021
Risposte (1)
Aditya Shah
il 6 Giu 2022
0 voti
Hi!
The problem seems to have occurred due to a mismatch between the size of the output vector of the function FLUX_DIM and the size of the initial conditions vector.
I am assuming the size of the following variable as:
C: 1x100
A: 1x100
rho: 100x1
rho_fuel: scalar
Correcting the size of initial condition by changing the value of variable Np to 100, solves the problem.
Please note the size of variable was referred from the following Matlab Answer post:
Categorie
Scopri di più su Ordinary Differential Equations in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!