Create dynamic functions and variable in a loop
Afficher commentaires plus anciens
Hi,
I try to implement a routine to solve a set of equations by using the fsolve functions. The code is of the form
optimFun=@(T)[harmonicOscilator(data,Numb,T(1),0)-c(1)-(T(1)+T(2)+T(3))-c(2)-c(3)-c(4);
fun(T(2))-fun(T(1))+c(2)+T(1);
fun(T(3))-fun(T(2)),0)+c(3)+T(2)];
options=optimset('Display','iter');
[T,fval] = fsolve(optimFun,T0,options);
where the c's are constant which are defined by an external function call and fun(T) is a function call were the function itself depends on T. For this example the code solve the problem. However, I need to be able to solve these equations for a varying number of variables T(1),T(2),T(3),... and a varying number of coupled equations. For example the next bigger set of equations would be
optimFun=@(T)[harmonicOscilator(data,Numb,T(1),0)-c(1)-(T(1)+T(2)+T(3)+T(4))-c(2)-c(3)-c(4)-c(5);
fun(T(2))-fun(T(1))+c(2)+T(1);
fun(T(3))-fun(T(2)),0)+c(3)+T(2);
fun(T(4))-fun(T(3)),0)+c(4)+T(3)];
Is there any way to define the function optimFun and the corresponding variables dynamically, so I do not have to vary the set of equations by hand? I tried using a loop and other things, however, it did not work in the end.
Looking forward to hearing from you
All the best
Sven
Réponses (0)
Catégories
En savoir plus sur Numeric Solvers dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!