I am trying to solve numerically symbolic equation. But one variable in my equation is series of values zv=1:-0.1:0. So, according to my code:
zv=1:-0.1:0
n=length(zv);
j=1:n;
C=15;
eqn=C-64.*(1-zv(j))==0;
R=vpasolve(eqn,x(j),1)
I got mistake in the last row that Index exceeds matrix dimensions.
Other solution which is working is with for loop, but I dont know how to put all solutions (R) in one variable. I got list in my working space where values are changing and it stops when I use all zv terms:
syms x;
for zv=1:-0.1:0
C=15;
eqn=C-64.*(1-zv(j))==0;
R=vpasolve(eqn,x,1)
end
Regarding your first solution, the 'IndexExceedsMatrixDimension' error is raised by
x(j)sincexhas not been defined. Your current code will also raise a 'ValueError' since you are not passing a numerical function but just a value to thevpasolvefunction. The following code works by altering the equation like so:Note that the code above is storing the solutions (R) in an array
Rinitialized withR=zeros(1,n). Going with your second solution, you can similarly store the solutions, but you first need to convert the syms to a type that can be stored in an array, e.g., a double. In the code above, you must definezv = 1:-0.1:0.1to avoid a 'ValueError' invpasolve, but in the code below you can usezv = 1:-0.1:0. I suggest usingwarning('off','all')to avoid the potential type conversion warnings.