using for loop to solve a function

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

Respuestas (1)

madhan ravi
madhan ravi el 27 de En. de 2019
Editada: madhan ravi el 27 de En. de 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 comentarios

caroline
caroline el 27 de En. de 2019
thank you! and appreciate the detail explanation of what each line does
caroline
caroline el 27 de En. de 2019
Editada: madhan ravi el 27 de En. de 2019
what does numel(x) mean
numel(x) gives number of elements in x ,
The best part in MATLAB is whenever you have a doubt just type
help numel % will give you detailed description of the command
doc numel
caroline
caroline el 27 de En. de 2019
ok thanks! i also retested the code i posted early and it spat out a figure this time
caroline
caroline el 27 de En. de 2019
so i have a while loop and a for loop do u happen to know how i can plot this for loop and while loop plot on the same graph?
madhan ravi
madhan ravi el 27 de En. de 2019
use hold on after the first plot command
caroline
caroline el 27 de En. de 2019
Editada: madhan ravi el 27 de En. de 2019
x = linspace(0,20,100);
j = 0;
while (j<=20)
y = x.^3-(5.*x).^2+2.^x-(10000.*x);
j = j+1;
end
f= plot(x,y,'--r')
hold on
x1 = linspace(1,20,100);
y2 = zeros(size(x1));
for k=1:numel(x1)
%x2 = x;
y2(k) = 20000*log(x1(k))-3*x1(k);
end
f = plot(x1,y2,'b')
when i plot both it looks wrong but seperately they look great" image attached"
madhan ravi
madhan ravi el 27 de En. de 2019
Editada: madhan ravi el 27 de En. de 2019
I got two questions:
1) The original question you asked was about for loops ?
2) Why do you say it’s wrong ? Each graph represents different function.
caroline
caroline el 27 de En. de 2019
i just thought it was wrong because when plotted on calc it looked wrong. im not sure if you saw the picture but the graph in blue looks different when graphed seperately
madhan ravi
madhan ravi el 28 de En. de 2019
Editada: madhan ravi el 28 de En. de 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 el 28 de En. de 2019
original question was for loops yes

Iniciar sesión para comentar.

Categorías

Más información sobre Graphics Performance en Centro de ayuda y File Exchange.

Productos

Versión

R2018b

Etiquetas

Preguntada:

el 27 de En. de 2019

Comentada:

el 28 de En. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by