How can i solve an equation in matlab using Newton-Raphson method?
You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Show older comments
0 votes
I want to solve monotonically increasing function g(lambda)and has a unique zero,by Newton-Raphson method in matlab.The equation is : g(lambda)= -zm'*inv(M)*inv(inv(M)+lambda.*Q)*Q*inv(inv(M)+lambda.*Q)*inv(M)*zm; the variable is lambda
Accepted Answer
Walter Roberson
on 28 Nov 2011
0 votes
A specific Newton-Raphson routine is not provided in MATLAB (at least not that I have seen.) You can find MATLAB coding for it in a number of places.
I have to ask, though, whether any efficiency gains you might hypothetically gain using this instead of using fzero() will be worth the time you spend programming and debugging this? (I am not convinced that NR would be any faster than fzero()'s adaptive method, but that is a different point.) Has using NR been imposed on you? Or did fzero() fail?
8 Comments
zayed
on 28 Nov 2011
I am trying to use NR to solve the equation just only,because i found out that it might be effective,also I wrote a function with fzero,but it gives me the error ''Error using ==> fzero
FZERO cannot continue because user supplied function_handle ==> f
failed with the error below.
Error using ==> fzero
FZERO cannot continue because user supplied funct
Error in ==> f at 4
lambda=fzero('f',[0 3.4726e+001]);''
The code is :
function y=f(x);
load saved_data;
% y=-zm'*inv(M)*inv(inv(M)+lambda.*Q)*Q*inv(inv(M)+lambda.*Q)*inv(M)*zm;
lambda=fzero('f',[0 3.4726e+001]);
y=-zm'*inv(M)*inv(inv(M)+lambda.*Q)*Q*inv(inv(M)+lambda.*Q)*inv(M)*zm;
Walter Roberson
on 28 Nov 2011
I already showed the code to use fzero, and it did not look anything like that. Your function f() that you invoke from fzero() must NOT call fzero() in turn.
Loading those variables each time that f() is invoked is a waste of time. I showed already how to add additional parameters to the call to pass those values through. I also included some optimizations for you, since it is a waste of time to compute inv(M) each time through. See the code in http://www.mathworks.com/matlabcentral/answers/22336-code-assistance
zayed
on 28 Nov 2011
Thanks a lot,but I am just now seeing the code for the first time.But it gives an error :
??? Undefined function or variable 'p'.
Error in ==> drive_zr17t9 at 7
Q = zeta*I-p*p';
Walter Roberson
on 28 Nov 2011
I modified that code a moment ago to accept p as a parameter. It was not possible to tell which of your variables is being loaded by the "load" and which of your variables is being assigned before you get to this section. If there are other variables that are not loaded then you will need to pass them in.
zayed
on 28 Nov 2011
I am sorry ,but it gives an error :
??? Error using ==> fzero
FZERO cannot continue because user supplied function_handle ==> @(lambda) zr17t9(lambda, Minv, Q, zm)
failed with the error below.
Variable 'zm' is used as a command function.
Error in ==> drive_zr17t901 at 21
lambda = fzero(@(lambda) zr17t9(lambda, Minv, Q, zm), bounds); %do the searching
Walter Roberson
on 28 Nov 2011
Discussion of that code should switch to the other thread.
zayed
on 28 Nov 2011
which thread,please
Walter Roberson
on 28 Nov 2011
As cited above, http://www.mathworks.com/matlabcentral/answers/22336-code-assistance
More Answers (0)
Categories
Find more on Newton-Raphson Method in Help Center and File Exchange
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)