Solving an implicit equation with fzero in a function.
13 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Matt J
on 14 May 2025
fun = @(h) weir_height2(h,weir_height,total_weir_length,total_weir_discharge)
4 Comments
Steven Lord
on 14 May 2025
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.
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!