Morse potential constants using matlab

조회 수: 2 (최근 30일)
Carc
Carc 2023년 1월 16일
편집: Luca Ferro 2023년 1월 16일
V(r)=D[exp(−2a(r−ro))−2exp(−a(r−ro))]: This is the mores potential equation. I have the data V(r) and r, how can I find the constant D, a, ro using matlab? I really don’t know how to start. Could you give me some advices?
  댓글 수: 1
Jiri Hajek
Jiri Hajek 2023년 1월 16일
Hi, this is a nonlinear regression problem, which is solvable using optimization methods. Depending on whether you need to automate the task by using programmatic solution, whether you need to use MATLAB to achieve this, whether you have access to optimization toolbox and what is the size of your data, it is surely solvable in MATLAB, but Excel may give you a solution as well...

댓글을 달려면 로그인하십시오.

답변 (1개)

Luca Ferro
Luca Ferro 2023년 1월 16일
편집: Luca Ferro 2023년 1월 16일
try this:
syms D a ro ; %create symbolic scalar variables
eq = V==D*(exp(-2*a*(r-ro))-2*exp(-a*(r-ro))); %create equation
sol=solve(eq); %solve the equation
since you have 1 equation and 3 variables the output will be symbolic (assuming V and r are scalars)
EDIT:
as Walter Robertson highlighted in the comments, it's better to specify what to solve for:
sol=solve(eq, [ro a D]); %solve the equation
  댓글 수: 3
Walter Roberson
Walter Roberson 2023년 1월 16일
One equation cannot be solved for three variables.
When you do not specify which variable to solve for, MATLAB uses symvar to figure out which free variables exist in the equation(s). It has a priority order that starts with x y z. After prioritizing it uses the first on the list, as many as there are equations.
Luca Ferro
Luca Ferro 2023년 1월 16일
편집: Luca Ferro 2023년 1월 16일
Specifying all of three at least returns a struct with values for all of them.
With only one you get the symbolic solution, that's why i left it without specification in first place.
I don't know what the OP is looking for, so i gave him some alternatives after you pointed out the inaccuracy of my reply.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by