The Math Forum

Search All of the Math Forum:

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

Math Forum » Discussions » Software » comp.soft-sys.matlab

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

Topic: Using partial derivatives in Matlab
Replies: 1   Last Post: Nov 26, 2012 10:38 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Christopher Creutzig

Posts: 323
Registered: 2/24/09
Re: Using partial derivatives in Matlab
Posted: Nov 26, 2012 10:38 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 11.10.12 18:24, Jagdish wrote:
> Hi,
> I am writing a code to implement a function with conditions that involve partial derivatives. The out put is going to be a 3*1 matrix and will involve partial derivatives with all the three parameters. Before I could implement the actual function, I was fiddling around with a simple function as described below with no success. Could you please have a look and let me know if I have made a mistake? I think I am making a rookie mistake that would be trivial to the expert eye. Thanks a lot in advance!
> Code -
> function resid=case2(x)
> syms x1 x2
> x1=x(1);
> x2=x(2);
> y=x1^2-5*x1*x2+3*x2^2;
> resid=[diff(y,x1);diff(y,x2)];

1. Inside a function, using syms is not really a good idea. Search for
?poofing MATLAB variables? for details. Instead, use

x1 = sym('x1');
x2 = sym('x2');

2. You first define x1 and x2 to be symbolic names, just to immediately
replace them by your input values, before computing anything. Try this

function resid=case2(x)




Now, obviously, you'll get much better performance by not computing the
(symbolic) derivatives each time you call the function. Compute them
once and take that:

% interactive level
syms x1 x2;


Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.