Info
此问题已关闭。 请重新打开它进行编辑或回答。
Code not setting value=0
1 次查看(过去 30 天)
显示 更早的评论
I don't understand this odd little thing in my code. I have simplified the function but this is basically what it's doing:
A=10;
fun=@(x) x+1/(A.*x);
z=fzero(fun,0)
This runs fine and gives me the result.
However if I do this...
A=10;
B=0;
fun=@(x) x+1/((A.*x)+(B.*x));
z=fzero(fun,0)
... then I get problems. I thought that this should give the same result! I don't get why defining B=0 doesn't seem to be taken into account when fzero solves fun.
The idea is that I can change B once I know that for B=0 I get the same result as for if there was no B term in the equation.
--- update ---
I have identified that the problem is with the x in the B.*x term. If I just do (A.*x)+B then it works fine. Because the fzero variable is x it seems to not recognise that whilst there is an additional x dependance it should not take it into account since B=0 makes that term 0.
2 个评论
Matt J
2013-6-24
This runs fine and gives me the result.
No, even your first example, doesn't work. The function is undefined at x=0 and fails as it should
z=fzero(fun,0)
Error using fzero (line 309)
Function value at starting guess must be finite and real.
回答(2 个)
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!