Help with a vector
    조회 수: 5 (최근 30일)
  
       이전 댓글 표시
    
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
댓글 수: 5
채택된 답변
  Cris LaPierre
    
      
 2021년 9월 30일
        
      편집: Cris LaPierre
    
      
 2021년 9월 30일
  
      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)
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Mathematics and Optimization에 대해 자세히 알아보기
			
	제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


