Info

此问题已关闭。 请重新打开它进行编辑或回答。

Generate and solve differential equation? Please suggest some better way if you know.

1 次查看(过去 30 天)
Hello everyone, I am working on a project and i have to deal with many of differential equations. I am able to generate those differential equations through MATLAB. But, the problem is TIME. It takes a lot of time. Hence I want to save these differential equations in my first run. Then call these differential equations when i need. This would save time in generating the differential equation each time I run my main file.
The variable "n" determines the number of differential equations.AS n Increases, the number of differential equation would be large.
Suppose n=3,there would be four equations generated.
Eqn =[(3*C(1)^2)/250 - (3*C(1)*C(2))/200;
(3*C(1)^2)/500 - (3*C(1)*C(2))/200;
(3*C(1)*C(2))/1000;
(3*C(1)*C(2))/250]
%Dimension 0f eqn
eqn=4 X 1 sym
%I have tried iT with a function
function [dCondT]=trail6(t,C)
load('diffeqn_n_3') %Saved eqn and loaded here
dCondT=sym(zeros(length(Diff_eqns_of_molecules),1))
for n=1:length(Diff_eqns_of_molecules)
dCondT(n)=[Diff_eqns_of_molecules(n)]
end
end
% then tried solving it with ODE45
ERROR-"Inputs must be floats, namely single or double.
Can anyone help ?
  6 个评论

回答(2 个)

madhan ravi
madhan ravi 2018-12-30
As John D'Errico says you may want to use odetovectorfield() and matlabFunction() to convert your symbolic odes to numeric odes.

Walter Roberson
Walter Roberson 2018-12-30
You are trying to use ode45 with symbolic equations, which is not possible. See odeToVectorField and odeFunction for routines to convert symbolic differential equations for use with the numeric ode* routines.
  2 个评论
Walter Roberson
Walter Roberson 2018-12-30
Symbolic expressions are in a language which is not exactly MATLAB. When you eval() a symbolic expression you can get errors -- or even worse, you might not get an error but might encounter a subtle difference. There are some functions for which the parameters mean different things for the numeric function compared to the symbolic function (such as the parameters being in a different order.)

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by