Effacer les filtres
Effacer les filtres

finding the value of a in my fresnel equation

3 vues (au cours des 30 derniers jours)
Rehanos_boyzee
Rehanos_boyzee le 28 Fév 2020
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 commentaires
David Hill
David Hill le 28 Fév 2020
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 le 28 Fév 2020
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

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 28 Fév 2020
Modifié(e) : Walter Roberson le 28 Fév 2020
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)

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by