필터 지우기
필터 지우기

finding the value of a in my fresnel equation

조회 수: 3 (최근 30일)
Rehanos_boyzee
Rehanos_boyzee 2020년 2월 28일
편집: Walter Roberson 2020년 2월 28일
hi all, need helping find the value of a from the following equation:
1st i defined my fresnelc function:
>> syms a
>> F = a*int(cos((pi/2)*u^2),u,0,((0.01*a)/(pi)))
F =
a*fresnelc(a/(100*pi))
then i used F and the "solve command" to find the answer to a:
double( solve (atan((-1*((F)-62.811))/(sqrt((100^2)-((F)-62.811)^2)))-(0.000015915)*(a^2), a ) )
Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve.
> In solve (line 304)
ans =
-115.0075
the answer should be = 200, but it gives me -115.2 , please do tell me if im doing anything wrong, just for reference im attaching the actual function as well:
please do let me know if im going wrong somewhere in the matlab command???
best regards,
Rehan
  댓글 수: 2
David Hill
David Hill 2020년 2월 28일
double( solve (atan((-F+62.811)/sqrt(100^2-(F-62.811)^2)-(0.000015915)*(a^2), a ) ))
I cleaned up the equation some and I am getting +115.2853
Rehanos_boyzee
Rehanos_boyzee 2020년 2월 28일
Thanks David,
I can see you removed alot of brackets and cleaned the solution, thanks. Good atleast its positive now, but still in the reference the value comes out to be equal to a=200. which is why i felt im doing something wrong. did notice any other mistakes in my working methods?
please do let me know,
regards,
Rehan

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

채택된 답변

Walter Roberson
Walter Roberson 2020년 2월 28일
편집: Walter Roberson 2020년 2월 28일
You are not going to get a closed form solution, so there is no point using solve() .
Instead you should use vpasolve(). vpasolve() permits you to pass in an initial guess, or even a search range, as the third parameter.
And remember you can
syms s
assume(s>0)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by