Help with a vector
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Lavorizia Vaughn
 il 30 Set 2021
  
    
    
    
    
    Commentato: Lavorizia Vaughn
 il 30 Set 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
Risposta accettata
  Cris LaPierre
    
      
 il 30 Set 2021
        
      Modificato: Cris LaPierre
    
      
 il 30 Set 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)
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Mathematics and Optimization in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


