Evaluating gradient of eigenvectors.

Suppose I use Matlab's pde toolbox to solve an eigenvalue problem using FEM. Specifically I am using:
result=solvepdeeig(model,[0,10]);
eigenvectors = result.Eigenvectors;
eigenvalues = result.Eigenvalues;
Is there a way of evaluating the gradient of the computed eigenvectors, say using something similar to the
evaluateGradient
function?

 Risposta accettata

Ravi Kumar
Ravi Kumar il 14 Feb 2018

0 voti

Hi Matt,
The values in eigenvectors are scaled values, with no option to re-scale them or normalize as per choice. Hence, they do not have a physical meaning. So evaluating gradients using them is not suggested.
Can you explain why do you need to take gradients of eigenvectors? I could suggest a workaround depending on your use case.
Regards, Ravi

4 Commenti

Matt
Matt il 14 Feb 2018
Hi Ravi
Thanks for the answer. Yes I am aware of this problem. However, suppose I normalise in some way, I would then like to compute the Neumann data on the boundary (for comparison to another numerical method). Any idea how this could be done easily?
Thanks, Matt
Create a new PDEModel with the same systems size as you used for eigenvalue analysis:
newModel = createpde(model.PDESystemSize)
Assign geometry and mesh from your analysis model to this new model:
newModel.Geometry = model.Geometry
newModel.Mesh = model.Mesh
Now create at a new StationaryResults object using the first mode, or any mode that you want, as:
newResult = createPDEResults(newModel,result.Eigenvectors(:,1))
newResult would have gradients in it, also has the method evaluateGradients. In case you are dealing with a system of PDEs, be sure to stack all the components of the specific eigenvector into a single column to pass it createPDEResults.
Hope this helps.
Matt
Matt il 14 Feb 2018
Thanks, I'll try it out. Looks ideal!
Matt
Matt il 15 Feb 2018
Works a treat, thank you very much!

Accedi per commentare.

Più risposte (0)

Richiesto:

il 13 Feb 2018

Commentato:

il 15 Feb 2018

Community Treasure Hunt

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

Start Hunting!

Translated by