Unable to plot. Problem with this error "Conversion to double from function_handle is not possible."

1 visualización (últimos 30 días)
function f=snm(~)
eq11= @(q1)(2*(1 - cos(2*pi*q1)));
hq1= @(q1,U,n0)((eq11)^2 + 2*U*n0*(eq11))^(1/2);
ha1= @(q1,U,n0)(((eq11) + (U*n0))/hq1) - 1;
f= @(U,n0)(n0 + 5/10*integral(@(q1)ha1,-0.5, 0.5));
a=@(U)fsolve(f-0.5,0.1);
plot(a,0,20);
I want to plot between "a" and "U", but unable to plot due to this error "Conversion to double from function_handle is not possible." . Could anyone help me out with this problem?

Respuestas (1)

Adam
Adam el 16 de Feb. de 2015
You are attempting to plot a function handle.
The plot function expects data, not a function to evaluate.
Your definition of 'a' takes 'U' as a parameter but then ignores it. Also the syntax of
fsolve(f-0.5,0.1);
does not look correct. I don't have access to the fsolve function, but I assume it should be more like:
fsolve( f, -0.5, 0.1 )
if you are using -0.5 to 1 as your limits. Or rather, I assume you want U to be involved in there somewhere otherwise why pass it as an argument to your 'a' function?

Categorías

Más información sobre Graphics en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by