Using Solve with 'albersheim'

6 visualizaciones (últimos 30 días)
Vijay Bambal
Vijay Bambal el 7 de En. de 2019
Comentada: Vijay Bambal el 7 de En. de 2019
I am trying to find Probability of detection (Pd) given SNR and Pfa with function 'albershiem; given values of SNR and Pfa. The code goes as under :-
syms Pd;
Pfa = 7e-10;
SNR = 14;
eqn = SNR == albersheim(Pd, Pfa);
At this stage error 'Pd expected to be numeric. Instead its type was sym' is indicated.
So the next statement soln = solve(eqn, Pd) cannot even be executed.
Request assistance.
  1 comentario
Walter Roberson
Walter Roberson el 7 de En. de 2019
Not all functions are written with symbolic values in mind. Looking at the code it appears to me that the way the code was written to permit efficient code generation is inconsistent with the possibility of symbolic input. That is it appears to me that if you were to copy the routine and strip out the error checking that you could arrive at something that could take symbolic inputs, that the problem is not the algorithm but rather the hooks and checking for code generation .
Looking at the calculation I would suspect there will not be a closed form solution for solve to find. solve would probably return a numeric solution .

Iniciar sesión para comentar.

Respuesta aceptada

Torsten
Torsten el 7 de En. de 2019
Pfa = 7e-10;
SNR = 14;
Pd0 = 1.0;
Pd = fzero(@(x)albersheim(x,Pfa)-SNR,Pd0);
  1 comentario
Vijay Bambal
Vijay Bambal el 7 de En. de 2019
Thanks. It works.
Small change. Pd is expected to be between 0 and 1. So Pd0 should be set to some intermediate value such as 0.2 instead of 1. Setting Pd0 to 1 gives error 'Expected PD to be a scalar with value < 1'.
Thanks again.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by