Finding the roots of an equation using Newton-Raphson method but I don't know the equation!

4 次查看(过去 30 天)
Hi all,
This is a challenging problem that I'm having difficulties with.
I've been given a P-code file (protected/hidden MATLAB code) that contains a function f function of two input variables 𝑥, 𝑦.
I'm to use my own my own coding of the Newton-Raphson to find all the roots of 𝑓, i.e. 𝑓(𝑥, 𝑦) = 0, given 𝑥, 𝑦 are real variables defined between [−5, 5]. Hint: The function roots are "special" points (unsure what is meant by that bit).
I have uploaded the P-code containing the unknown function here.
I can plot the function using the fsurf function:
fsurf(@unknownFunction)
And I can render the following plot:
Plot rendered when unknownFunction.p is used with fsurf
This shows me that it has four roots.
I have absolutely no idea where to go from here. Every iteration of Newton-Raphson requires me to work out the first derivate of 𝑓(𝑥, 𝑦) (so (𝑓'(𝑥, 𝑦) ) in order to progress which obviously I cannot do due to not knowing the original function.
Can anyone offer me some ideas or support? I'm also a complete novice at MATLAB so detail would be appreciated if possible.
Thank you.

回答(1 个)

Jim Riggs
Jim Riggs 2020-11-26
You use a numerical approximation for the derivative.
Start at some initial guess for x & y.
take a small step, and compute the change in the function value over deltax and delta y.
These are numerical estimates of df/dx and df/dy.
  7 个评论
James Tursa
James Tursa 2020-11-27
Also, finding local minima of a function is not the same thing as finding roots of a function. What is the actual goal here?

请先登录,再进行评论。

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by