Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Calculating 1st derivative with a parameter
Replies: 4   Last Post: Jun 14, 2012 10:34 AM

 Messages: [ Previous | Next ]
 Angie Blue Posts: 19 Registered: 6/18/07
Re: Calculating 1st derivative with a parameter
Posted: May 6, 2012 12:19 PM

"Wojtek" wrote in message <jo61cj\$m95\$1@newscl01ah.mathworks.com>...
> Hello,
> in my program I want to calculate the 1st derivative of a function y (it's a function of 'x1'). Let's say I want to check if the 1st derivative of this function in some specific point is smaller then 0.05. I have:
>
> syms x1;
> y = ( x1 - za )*( x1 - zb )*( x1 - zc )*( x1 - zd ); %my function, all the parameters like 'za' were previously declared
>
> dydx=diff(y,x1,1);
>
> x_val=1;
> dydx_val=subs(dydx,x1,x_val);
> k2 = solve(dydx_val);
> dydx_val =double(k2);
>
> if (dydx_val<0.05)
> remember=x_val;
> end
>
>
> unfortunately the derivative is not calculated. I get information:
> Warning: 1 equations in 0 variables.
> Warning: Explicit solution could not be found.
> and when I try to display dydx_val i get:
>
> dydx_val =
>
> []
>
> I tried different methods, none of them was good (although I could do something wrong). I will be grateful for suggestions how can I calculate 1st derivative in a specific point and have the value of this derivative in double.

Hello,

If I understood your question correctly, you don't need the line for solve and the following seems to work for me:

syms za zb zc zd x1;
y = ( x1 - za )*( x1 - zb )*( x1 - zc )*( x1 - zd );

xVal = 1;

% Take the derivative and substitute the value of x1
focValue = subs(diff(y,'x1'),x1,xVal);

if focValue < 0.5
remember = focValue;
end

I hope this helps,

A.

Date Subject Author
5/6/12 Wojtek
5/6/12 Angie Blue
5/6/12 Angie Blue
5/6/12 Wojtek
6/14/12 Christopher Creutzig