How to solve iteratively equation

I hava next equation
p0=sqrt(1+64*beta)
p=p0+8*(1/p0-1)
and i need to solve it for beta where I have exact value for p. How can I do it iteratively or on some other way in Matlab?

댓글 수: 1

Stephan
Stephan 2018년 12월 11일
Hi Jan,
see my answer below to get a solution to your problem. I saw that you got some answers on your questions here in the forum. Did you notice that you can accept and/or vote for useful answers? This is the easiest way to thank the volunteers here for their help.

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

답변 (1개)

Stephan
Stephan 2018년 12월 11일
편집: Stephan 2018년 12월 11일

1 개 추천

Hi,
there is an analytic solution:
syms p0 p beta
eqn1 = p0 == sqrt(1+64*beta);
eqn2 = p == p0+8*(1/p0-1);
eqn2 = subs(eqn2,p0,rhs(eqn1));
% analytic solution
sol = isolate(eqn2,beta);
% function handle for numeric calculations
fun = matlabFunction(rhs(sol));
% assume a value (or vector of values for p)
p_exact = [2.5 5 10];
% get numeric results
result = fun(p_exact)
In case you do not have access to the Symbolic Math Toolbox, here is the function handle to calculate beta from known p-values:
fun = @(p)1.0./(p./1.6e1+sqrt(p.*1.6e1+p.^2+3.2e1)./1.6e1+1.0./2.0).^2./6.4e1-1.0./6.4e1
Best regards
Stephan

카테고리

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

제품

질문:

Jan
2018년 12월 11일

댓글:

2018년 12월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by