Why does this matrix have zeros for all but one of the numbers?

2 visualizzazioni (ultimi 30 giorni)
So I am trying to solve a differential equation in Matlab so that I can plot how x will vary with the variable I have named thrustloading, In trying to do so I have tried to define a, b and c for the general form of the differential equation, where b and c are constant and a varies with the thrustloading. I have defined thrustloading as a 31x1 matrix ranging from 0 to 3 in increments of 0.1, when I put this into the equation for a the output is a 1x31 matrix but all of the values in this matrix are zero except for the last one but from calculating by hand none of these should be zero. any ideas on what I need to do to get this to solve correctly? my code and the values for a I obtain are below:
>> clear,
thrustloading = transpose(0:0.1:3);
delta = 1;
theta =1.0849;
CLmax=2.4;
kto=1.2;
friction=0.07;
Cdr=0.1;
Cd0=0.014;
K1=0.0375;
Mto=0.1;
tr=3;
beta=1;
gamma=1.4;
TR=1.087;
g=9.81;
sigma = delta/theta;
theta0=theta*(1+((gamma-1)/2)*Mto^2);
delta0=delta*(1+((gamma-1)/2)*Mto^2)^(gamma/(gamma-1));
density=1.225*sigma;
alpha=delta0*(1-0.49*(sqrt(Mto)));
CL=CLmax/kto^2;
Cd=(K1*CL^2)+Cd0;
XI=Cd-friction*CL;
a=-(beta/(sigma*density*g*XI))*log(1-XI/ ...
((((alpha/beta)*thrustloading)-friction)*CL))
b=tr*kto*sqrt(2*beta/(sigma*density*CLmax))
c = 3048
value for a is:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0236722117939133
  1 Commento
Callum Jackson
Callum Jackson il 5 Feb 2015
As a note , all of the code above calculating a is just to calculate the intermediate variables that are needed for a

Accedi per commentare.

Risposta accettata

A Jenkins
A Jenkins il 5 Feb 2015
Note the difference if you change the division to use ./ instead of /
a=-(beta/(sigma*density*g*XI))*log(1-XI./ ...
((((alpha/beta)*thrustloading)-friction)*CL))
a =
-0.834162153654705
4.013176536171804
0.589161426270873
0.317923114409717
0.217699010737579
0.165519595163022
0.133517356368411
0.111885044967989
0.096285063356605
0.084502933406256
0.075289919897257
0.067888329702154
0.061811749570266
0.056733611226660
0.052426515897960
0.048727246791412
0.045515617812328
0.042701169592895
0.040214513974658
0.038001536335358
0.036019412322791
0.034233809371935
0.032616881288226
0.031145805516796
0.029801699159175
0.028568804056074
0.027433866112957
0.026385656916161
0.025414600983100
0.024512482399452
0.023672211793913
  2 Commenti
Callum Jackson
Callum Jackson il 6 Feb 2015
Modificato: Callum Jackson il 6 Feb 2015
Thanks, that's perfect, any help on how I can then go on to solve:
a*x+b*x^1/2+c = 0 for the variables given? I can't work out how to do it when a is a matrix
A Jenkins
A Jenkins il 6 Feb 2015
syms x
for idx=1:length(a)
x0(idx)=solve(a(idx)*x+b*x^1/2+c);
end

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by