1. ## Basic Matlab help please

Hi, my code keeps giving me the following error:

Undefined function or variable 'u'.

Error in
program1/@(x)exp(-v.^3*a*x.^-3*q)/(x*(exp(u*x/(k*S))-1))

fx = FUN(x);

[y,too_close] = evalFun(t2t);

[fx,too_close] = f(x);

Error in program1 (line 46)

I have tried for ages to figure out what the problem is but I'm not getting anywhere, so if anyone could offer some advice it would be much appreciated.

Here is the problem section of the code:

for m = 1:n

if m == 1
q = 0;
else
q = d*(symsum(y(z*d),z,1,m-1) + y(m*d));
end

syms x

f = @(x,u) exp(-v.^3*a*x.^-3*q)/(x*(exp(u*x/(k*S))-1));

g = @(u) abs(2*pi*k*a*R.^2*v.^3*c.^-2*u*(m*d).^2*Q - B*(H-u).^2);

u1 = 0;
u2 = H;

if g(u1) < 500
y(m) = u1;

elseif g(u2) < 500
y(m) = u2;

elseif g(u2) <= g(u1)
u1 = 0.5*(u1+u2);

elseif g(u1) < g(u2)
u2 = 0.5*(u1+u2);

end

Basically, the code is trying to solve the equation 2*pi*k*a*R.^2*v.^3*c.^-2*u*(m*d).^2*Q = B*(H-u).^2 for u using an iterative method.
d, n, v, a, S, k, c, H, b are all constants that have been defined earlier in the program.

I'm fairly new to matlab by the way, so I'm sure the error is something stupid on my part. For example, I'm not sure if I've defined the functions f and g correctly for how I want to use them - I have tried several different ways of defining them but had no luck

Thanks again for any help.

2. ## Re: Basic Matlab help please

Why have you declared x to be a symbolic variable?

Also I don't think quad accepts an upper limit of inf.

Again, I don't think quad accepts functions with two arguments and you should not need the second one as it is in scope anyway.

.