How do I plot multiple function forms on the same graph using vectors?

Illustration
Christian - 2020-09-11T14:15:26+00:00
Question: How do I plot multiple function forms on the same graph using vectors?

I am creating a program to solve for roots of functions using Newton's Method. I keep getting the error "Error using * Inner matrix dimensions must agree. Error in NewtonRoot2 (line 5) y = x + exp(-b*(x*x));"   if true % code end clear clc x = -2 : 0.02 : 2; b = [1, 5, 10, 25, 50]; y = x + exp(-b*(x*x)); plot(x,y,x,zeros(size(x))); axis([-2, 2, -5, 5]) title('Plot of f(x) = x + exp(-b.*x.^2)') xlabel('X') ylabel('Y') f = 'x + exp(-b.*x.^2)'; fprime = '1 - 2*b*x*exp(-b.*x.^2)'; maxiterations = 20; iters = x; for k=1 : maxiterations, xnew = x - eval(f) ./ eval(fprime); iters = [iters; xnew]; test = abs(xnew - x) ./ (abs(xnew)+eps); if max(test) < 10*eps, break, end; x = xnew; end format long iters format if true % code end Any suggestions would be very useful. For a more clear explanation of what I am trying to accomplish: I have the function f. This function has variables x and b as components. I want to make five different graphs on the same plot using different values for b, as shown in the vector 1,5,10,25,50. Once those graphs have been plotted with different b values, I will find roots of each one to compare the effect on the root by changes in b. Hopefully this is clear enough.

Expert Answer

Profile picture of John Williams John Williams answered . 2025-11-20

To plot the function you can use the following code. Note that a * between vectors denotes matrix multiplication; use .* for point-wise multiplication.

hold on
for i = 1:numel(b)
  plot(x, x + exp(-b(i)*(x.*x)));
end
hold off


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!