# How to compute the gradient at each point of an arbitrary symbolic curve defined by "n" points?

2 views (last 30 days)
Commented: VBBV on 13 Feb 2022
Hello,
I have a vector of "n" points describing a spline. I would like to compute the gradient at each of the "n" points.
Each point in this vector has 3 components, each of which is a symbolic expression in multiple variables.
The reason I am computing the gradients is to compare 2 curves (one of which I know each point in a 3-D space) with this. My criterion for comparison is that the cross product of gradients at each point must be zero. I am able to compute the gradients of the known curve using the matlab function "gradient". However, when i use the same function to compute for the symbolic points, I get the error
**************************************
First argument must be scalar.
***************************************
Any help on how I may proceed is apprecciated.
For ref:
known_points=[3Xn] % format double
% I am able to compute the above expressions.
unknown_points=[3Xn] %format sym
% I get the highlighted error when i compute the above expressions.
% alternately i have also tried dx_2=gradient(unknown_points(1,1:end), symvar(unknown_points)); to no avial.

VBBV on 13 Feb 2022
Edited: VBBV on 13 Feb 2022
If x is the symbolic variables in array unknown_points then use subs to replace the variable with your value. Then compute the gradient as above.
##### 2 CommentsShowHide 1 older comment
VBBV on 13 Feb 2022
Ok. In that case use diff without subs function instead of gradient with subs

### Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by