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?

 採用された回答

Ravi Kumar
Ravi Kumar 2018 年 2 月 14 日

0 投票

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 件のコメント

Matt
Matt 2018 年 2 月 14 日
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
Ravi Kumar
Ravi Kumar 2018 年 2 月 14 日
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 2018 年 2 月 14 日
Thanks, I'll try it out. Looks ideal!
Matt
Matt 2018 年 2 月 15 日
Works a treat, thank you very much!

サインインしてコメントする。

その他の回答 (0 件)

質問済み:

2018 年 2 月 13 日

コメント済み:

2018 年 2 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by