Help with a vector
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Lavorizia Vaughn
 am 30 Sep. 2021
  
    
    
    
    
    Kommentiert: Lavorizia Vaughn
 am 30 Sep. 2021
            Hello. I have come up with the following code:
function p = findmanyzeros(f, a, b, n, tol)
x = a + (b-a)*(0:n)/n;
fx = f(x);
p = [];
for i = 1:n
    if sign(fx(i)) ~= sign(fx(i+1))
        p(end+1) = findzero(f, x(i), x(i+1), tol);
    end
end
My instructions were to Implement a MATLAB function findmanyzeros of the form function p=findmanyzeros(f, a, b, n, tol)
which finds zeros in the interval [a, b] using the following strategy:
1. Compute n+1 equidistant points xk, k=0,...,n, between a and b 
2. For k = 1,...,n, if f(xk) and f(xk−1) have different signs, compute a zero using findzero 
3. The output vector p should contain all the computed zeros
Akzeptierte Antwort
  Cris LaPierre
    
      
 am 30 Sep. 2021
        
      Bearbeitet: Cris LaPierre
    
      
 am 30 Sep. 2021
  
      You have not defined a variable fx inside your findzeros function. Do you mean to use f?
You have created a recursive function but you have not defined an exit criteria. Since sign(f(i) always is the same as sign(f(i+1)), p is never assigned a value, and your result is an empty vector.
f= @(x) cos(x)-x;
f(1:10)
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Mathematics and Optimization finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


