Hi there,
So I have a big array of results, and I want to solve four simultaneous equations over a range.
The code I have sucessfully solves the equations for one case, what I would like to do is run it again for a range of z=100:1:105. I have tried adding loops in and defineing z globally in a loop but none has worked. What I have so far is
This first section is just some reshaping of my external data not too important
function F=simul(c);READ1=load(['C:\LBM Results\READ1.dat']);velprof=load(['C:\LBM Results\u-x10000.dat']);velprof=reshape(velprof,READ1(1),READ1(2));y1=70;y2=71;y3=72;y4=73;
It is here that I would like z to increment by one once the equations have been solved
z=100;x1=velprof(z,y1);x2=velprof(z,y2);x3=velprof(z,y3);x4=velprof(z,y4);F=[-y1+c(1)+c(2)*x1+c(3)*x1^2+c(4)*x1^3; -y2+c(1)+c(2)*x2+c(3)*x2^2+c(4)*x2^3; -y3+c(1)+c(2)*x3+c(3)*x3^2+c(4)*x3^3; -y4+c(1)+c(2)*x4+c(3)*x4^2+c(4)*x4^3];end
Then to run it simply, this is in a different document to the function above
x0 = [50;0;0;0];options=optimset('Display','iter'); [c,fval] = fsolve(@simul,x0,options)
I hope I have explained it properly!
Best Answer