# how to write a loop that finds the best fit value for each given input pair and plot all the resulted points?

1 view (last 30 days)
Anitha Limann on 14 Oct 2021
Commented: Mathieu NOE on 28 Oct 2021
Hello,
I have t and vl observed data that i plotted first and then find the theoritical points and plot them in the same graph.
To construct the model to find the theoritical values i have to write a code according to following steps.
1. select a starting pair for t1 and vl1. (in this case t=10 and vl = 3.61).
2. Calculate A
3. Calculate B
4. Calculate A-B
5. Test abs(A-B); if abs(A-B) < 0.001 stop, then go to 8. if not go to 6
6. increment vl=vl+0.005
7. goto 2.
8. increment t=t+5
9. goto 1
10. finally plot each pair for A=B (approximately, within given tolerance)
Below is the draft loop I wrote but i am not sure how to actually make it work. Please help me.
for T=10; % tmax = 90;
for VL=3.61
A = atan((vs2.^2).*D2.*(sqrt(1-(VL.^2/vs2.^2)))./(vs1.^2.)*D1.*(sqrt(1-(VL.^2/vs1.^2))));
B = (((2.*pi.*z)./(VL.*T)).*(sqrt((VL.^2/vs1.^2)-1)));
while abs(A-B)<0.001
T=T+5;
A=A
B=B
break
end
while abs(A-B)>=0.001
VL=VL+0.005;
A=A
B=B
end
end
end
Anitha Limann on 14 Oct 2021
Attached is the given question paper. I am supposed to use a value slightly higher than vs1 and lower than observed vL1.

Mathieu NOE on 15 Oct 2021
hello Anitha
so yes there was a small bug in your equations
when you do the computation of A, you fliiped the terms
(vs1.^2.)*d1.*(sqrt(1-(VL.^2/vs1.^2)))
must be replaced by
(vs1^2)*d1*(sqrt((vl^2/vs1^2)-1))
that's the reason I got A complex numbers and not reals numbers because the ter under the square root was negative
I am still working on the code ....
Mathieu NOE on 28 Oct 2021
My pleasure !