While loop doesn't start

1 view (last 30 days)
Nader Mohamed
Nader Mohamed on 29 Oct 2021
Answered: Walter Roberson on 29 Oct 2021
I'm trying to run a while loop until my error reaches the tolerance. But this loop doesn't start. I tried running it without the while loop (putting it manually the parameters) and it workd, but when I want to loop it it doesnt even start, no errors.. My goal here is to find the paramateres b and k that match the minimum error between the sampled solution (y2data) and the numerical solution
toll = 10e-12;
b = 0;
k = 0;
err = 0;
res = [];
while(err>toll)
findbk = @(t,y) [y(3);y(4);k/J1 * y(2) - k/J1 * y(1);T0/J2 - b*y(4)/J2 - (k/J2)*(y(2)-y(1))];
[t,y] = ode45(@(t,y) findbk(t,y),[0:0.01:10],[0,0,0,0]);
fun = @(b,k) T0/J2 - (b/J2).*y(:,4) - ((k/J2).*(y(:,2)-y(:,1)));
err = abs(norm(y2data - fun(b,k)));
res = [res;err];
b = b + 0.01;
k = k + 0.1;
end

Accepted Answer

Walter Roberson
Walter Roberson on 29 Oct 2021
0>1e-12 is false.
Initialize error to infinity

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!