using for loop to solve a function

1 vue (au cours des 30 derniers jours)
caroline
caroline le 27 Jan 2019
Commenté : caroline le 28 Jan 2019
Given the following function ??(??) = 20000 * log(x) − 3x Use a for loop to compute f(x) for 1 ≤ x ≤ 20.
my solution
x = linspace(0,20,20);
for i=1:20
x2 = x;
y2 = 20000*log(x)-3*x;
plot(x2,y2,'r')
am i on the right track plot is blank

Réponses (1)

madhan ravi
madhan ravi le 27 Jan 2019
Modifié(e) : madhan ravi le 27 Jan 2019
I know it is your homwork and appreciate that you have tried something.
I suggest you to do Matlab Onramp course which is interactive and fun to learn MATLAB.
Loop version:
x = linspace(0,20,20);
% ^^------ increase to get a smoother curve
y2=zeros(size(x)); % preallocate
for k=1:numel(x)
% x2 = x; ?? does nothing
y2(k) = 20000*log(x(k))-3*x(k);
% ^^^------ save y2 in each iteration
end
plot(x,y2,'r') % plot outside the loop
Matlab's way (vectorization):
x = linspace(0,20,20); % just three lines of code
y2 = 20000*log(x)-3*x;
plot(x,y2,'r')
  11 commentaires
madhan ravi
madhan ravi le 28 Jan 2019
Modifié(e) : madhan ravi le 28 Jan 2019
You didn't answer my first question.Plus I don't see any differences in the figure? not sure what do you mean by "i just thought it was wrong because when plotted on calc it looked wrong. " Did you verify the scale?
caroline
caroline le 28 Jan 2019
original question was for loops yes

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by