Solve a nonlinear system

7 次查看(过去 30 天)
I'm solving the following as:
f = @(R01) 1/(1+R01) - .95;
R01 = fzero(f,0);
f = @(R02) 0.08/(1+R01) + 1.08/(1+R02)^2 - .99;
R02 = fzero(f,0);
How can I solve the system in one shot, can't make it work with fsolve.
Thanks
Oleg

采纳的回答

Andrew Newell
Andrew Newell 2011-3-4
Is this what you're trying to do?
f = @(x) [1/(1+x(1)) - .95; 0.08/(1+x(1)) + 1.08/(1+x(2))^2 - .99];
R = fsolve(f,[0 0]);
If so, you can't do it with fzero because it only accepts a function with a scalar input and scalar output.
  3 个评论
Zulhash Uddin
Zulhash Uddin 2011-3-6
After running the program, we r getting some text with the result. How can we minimize this text?
Equation solved.
fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.
<stopping criteria details>
R =
0.0526315789063412 0.0870230886539235
Andrew Newell
Andrew Newell 2011-3-6
@Zulhash, could you please submit a separate question on this?

请先登录,再进行评论。

更多回答(2 个)

Matt Fig
Matt Fig 2011-3-4
Do you mean get R01 and R02 in one shot, or do you mean find where the two functions meet (what I usually think of when someone says they want to solve a system of equations)?
If you mean, how to get to R02 in one shot,
f3 = @(R02) 0.08./(1+(1/.95-1)) + 1.08/(1+R02).^2 - .99;
R02 = fzero(f3,0)
Or,
f = @(R01) 1/(1+R01) - .95;
f = @(R02) 0.08/(1+fzero(f,0)) + 1.08/(1+R02)^2 - .99;
R02 = fzero(f,0)
  1 个评论
Oleg Komarov
Oleg Komarov 2011-3-4
I actually wanted to use fsolve as in EXAMPLE 1 of the fcn help. Is it possible or am I attempting something senseless from a mathematical point of view?

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2011-3-4
With the symbolic toolkit, it looks like
solve(0.8e-1/(1+solve(1/(1+RO1)-.95))+1.08/(1+R02)^2-.99)
and gives the values -2.087023117, 0.08702311660

类别

Help CenterFile Exchange 中查找有关 Systems of Nonlinear Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by