The handle function is not converting - matlab

3

Hello,

I'm getting this error:

  

Conversion to function_handle from double is not possible.

I already looked for the error and tried to change the code but without success. Can you help?

A=[99.23;100.05;91;107.71;104.1];
B=[3441 3441 301720.5;68750 1068750 0;170040 13085020 0;229350 229350 5729350;34194000 0 0];
N=[300000;1000000;13000000;5500000;32800000];
E=[-0.00302;-0.00261;-0.00208];

[c3,r3]=size(A);
[c4,r4]=size(B);

x=sym ('x',[1 c3]);
x=transpose(x);

for i=1:c3
    Valor(i,1)=0;
    for j=1:r4
        Valor(i,1)=@(x)(Valor(i,1)/((1+E(j,1)+x(j,1))^j))+(B(i,j)/((1+E(j,1)+x(j,1))^j));
    end
end

My goal is to find the x vector through solve with the vector OldTime .

Valorantigo(1:c3,1)=A(1:c3,1).* N(1:c3,1) ./100;
eqn=Valor(1:c3,1)==Valorantigo(1:c3,1); 
[solx, param, cond] = solve(eqn, x, 'ReturnConditions', true);

That is, x will be the solution of:

  • Old value (1,1) = 3441 / (1-0.00302 + x1) + 3441 / (1-0.00261 + x1) ^ 2 + 301720.5 / (1-0.00208 + x1)
  • Old value (2.1) = 68750 / (1-0.00302 + x2) + 1068750 / (1-0.00261 + x2) ^ 2 + 0 / (1-0.00208 + x2)
  • Old value (3.1) = 170040 / (1-0.00302 + x3) + 13085020 / (1-0.00261 + x3) ^ 2 + 0 / (1-0.00208 + x3) ^ 3 the same for the remaining lines ...
asked by anonymous 17.07.2017 / 13:02

0 answers