Solving an implicit equation with fzero in a function.
조회 수: 11 (최근 30일)
이전 댓글 표시
I am trying to solve an implicit equation using the fzero command. The implicit function includes a few variables. When I set up the function and fzero command with those variables hard-coded everything works. I can't figure out how to create a function that includes the fzero command, so I can solve my original equation implicitly for different values of the variables. Here are my two functions...
function y = weir_height2(h,weir_height,total_weir_length,total_weir_discharge)
y = (2/3) * sqrt(2 * 32.174) * (0.611 + (0.08 * (h./weir_height))) * total_weir_length * (h.^1.5) - total_weir_discharge;
and
function y = weir_height_all(weir_height,h0,total_weir_length,total_weir_discharge)
fun = @weir_height2;
x0 = h0;
z = fzero(fun,x0);
end
I keep getting different errors. Can someone please help me fix my two functions?
댓글 수: 0
채택된 답변
Matt J
2025년 5월 14일
fun = @(h) weir_height2(h,weir_height,total_weir_length,total_weir_discharge)
댓글 수: 4
Steven Lord
2025년 5월 14일
function y = weir_height_all(weir_height2,h0,total_weir_length,total_weir_discharge)
fun = @(h) weir_height2(h,weir_height,total_weir_length,total_weir_discharge);
%snip
I believe you intend for the fun anonymous function you've defined to call the weir_height2 function. But the first input argument to weir_height_all is named weir_height2, so that anonymous function actually tries to index into that variable. Rename the first input argument of weir_height_all to weir_height instead of weir_height2.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!