# To find value of variable using iteration

31 ビュー (過去 30 日間)
Dhananjay Singh 2021 年 8 月 28 日
コメント済み: Image Analyst 2021 年 8 月 28 日
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 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 件のコメント表示非表示 1 件の古いコメント
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 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 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?

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!

Translated by