To find value of variable using iteration

19 次查看(过去 30 天)
Hello,
At first I need to generate a random number that was done using rand command.
Then I have to use iteration such that it satisfies a certain relation. I used while loop but it is not stopping.
x = rand(1,1);
while 350-12.9-x-32.4498 ~= 0
x= x+ 0.0001
end
The problem is other values can also change drastically so it would take a long time to find values. Any other suggestions?

采纳的回答

Image Analyst
Image Analyst 2021-8-28
Your condition never matches 0 exactly. Why not? See the FAQ:
Try it like this:
x = rand(1,1);
maxIterations = 10000000; % Failsafe to prevent infinite loop
loopCounter = 0; % Failsafe to prevent infinite loop
value = abs(350-12.9-x-32.4498);
while value >= 0.00009 && (loopCounter < maxIterations)
x = x + 0.0001;
value = abs(350-12.9-x-32.4498);
loopCounter = loopCounter + 1; % Failsafe to prevent infinite loop
% fprintf('After %d iterations, x = %f and value = %f.\n', loopCounter, x, value);
end
fprintf('After %d iterations, x = %f and value = %f.\n', loopCounter, x, value);
You might get:
After 3038399 iterations, x = 304.650168 and value = 0.000032.
  2 个评论
Dhananjay Singh
Dhananjay Singh 2021-8-28
does rand function only generate number less than 1?
Image Analyst
Image Analyst 2021-8-28
Yes, only between 0 and 1. See the help if you need it in a range different from that
r = vMin + (vMax - vMin) * rand(1); % Get value between vMin and vMax

请先登录,再进行评论。

更多回答(1 个)

Awais Saeed
Awais Saeed 2021-8-28
编辑:Awais Saeed 2021-8-28
What is your goal exactly? Do you want to find the value for x where the result is zero? You can find the roots using solve
syms x
vpa(solve(350-12.9-x-32.4498 == 0,x))
ans = 
304.65019999999999669171302230097
  1 个评论
Dhananjay Singh
Dhananjay Singh 2021-8-28
x = .. some guess number
y = f(x);
z= f(y);
w=g(y);
a=z+x+w;
x is to be guessed first ,then using relations find y,z,w and a is a constant value such that the relation satisfies.
was thinking of iteration of doing this . Is there any other method?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by