Hi. I am trying to solve nonlinear equation using fsolve and repeat graph bet four times with different value. Here is my code:
Function main n = 10 r0 = ones(n, 1) For bet = 0.1:0.1:0.4 Sol = solve(@(r)fun(r, n), r0) norm(fun(sol, n)) end r = ((1:n)-1)/(n-1) Plot(r, sol(0.4,:),'g-*',sol(0.3,:),'m-*',sol(0.2,:),'b-*',sol(0.1,:),'r-*') end

댓글 수: 3

Jan
Jan 2021년 5월 16일
What is your question? The code does not run. Please format it correctly to improve the readability.
using fsolve. Here is my code: Function main n = 10 r0 = ones(n, 1) Sol = solve(@(r)fun(r, n), r0) norm(fun(sol, n)) r = ((1:n)-1)/(n-1) Plot(r, sol(1:n)) end
Outcome >> main Solver stopped prematurely Fsolve stopped because it exceeded the function evaluation limit, options.MaxFunEvals = 1000(the default value).
Jan
Jan 2021년 5월 16일
I've mentioned it already: Your code would not run at all, but stop due to the uppercase "Function" immediately.
Please post code in a readable format with one command per line.

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2021년 5월 16일
편집: Jan 2021년 5월 16일

0 개 추천

Matlab is case sensitive. There are no "Function", "For" and "Plot" commands. You should ge corresponding error messages.
I try t guess, how your code should be formatted:
function main
n = 10;
r0 = ones(n, 1);
for bet = 0.1:0.1:0.4
sol = solve(@(r) fun(r, n), r0);
norm(fun(sol, n))
end
r = ((1:n)-1) / (n-1);
plot(r, sol(0.4,:), 'g-*', sol(0.3,:), ...
'm-*', sol(0.2,:), 'b-*',sol(0.1,:), 'r-*');
end
end
There is an unmatched end. The loop over "bet" is useless, because the results are overwritten. It is not clear to me, what you want to achieve, so I cannot fix further errors.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

질문:

2021년 5월 16일

댓글:

Jan
2021년 5월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by