How can i solve an equation in matlab using Newton-Raphson method?
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
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
채택된 답변
Walter Roberson
2011년 11월 28일
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
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;
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
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';
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.
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
Discussion of that code should switch to the other thread.
which thread,please
As cited above, http://www.mathworks.com/matlabcentral/answers/22336-code-assistance
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Newton-Raphson Method에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)
