Column Vector - Nonscalar arrays.

4 vues (au cours des 30 derniers jours)
John Barr
John Barr le 6 Avr 2020
Commenté : James Tursa le 6 Avr 2020
Hello;
For some reason I can't put the following equations into a column vector:
F1 = @(X, T) -50*(X(1-0.167*(1-X))^0.5 - 2.2*(1-X)/(exp(-11.02+11570/T))/(exp(-14.96+11070/T)+(exp(-1.331+2331/T))*(1-X))^2);
F2 = @(X, T) -4.1*(T-673.2)+ 10200*(X(1-0.167*(1-X))^0.5 - 2.2*(1-X)/(exp(-11.02+11570/T))/(exp(-14.96+11070/T)+(exp(-1.331+2331/T))*(1-X))^2);
F = [F1; F2]
unfortunately I keep on getting the error:
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
Does anyone know how to format the two equations nicely into a column vector (So that I can run ODE45 afterwards with it)
Thanks

Réponses (1)

James Tursa
James Tursa le 6 Avr 2020
F = @(X, T) [F1(X, T); F2(X, T)];
  3 commentaires
John Barr
John Barr le 6 Avr 2020
Thanks, but when I run the code to solve the differential equations as shown below it then says that the vector is only of length 1.
F1 = @(X, T) -50*(X*(1-0.167*(1-X))^0.5 - 2.2*(1-X)/(exp(-11.02+11570/T))/(exp(-14.96+11070/T)+(exp(-1.331+2331/T))*(1-X))^2);
F2 = @(X, T) -4.1*(T-673.2)+ 10200*(X(1-0.167*(1-X))^0.5 - 2.2*(1-X)/(exp(-11.02+11570/T))/(exp(-14.96+11070/T)+(exp(-1.331+2331/T))*(1-X))^2);
F = @(X,T) [F1(X,T); F2(X,T)];
initialconditions = [1 673.2];
zspan = [0 1];
[X,T] = ode45(@(X,T) F, zspan, initialconditions);
James Tursa
James Tursa le 6 Avr 2020
This
[X,T] = ode45(@(X,T) F, zspan, initialconditions);
should be simply this
[X,T] = ode45(F, zspan, initialconditions);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Just for fun dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by