Repository navigation
Expand file tree
/
Copy pathVariationalMethods.m
More file actions
45 lines (41 loc) · 1.85 KB
/
Copy pathVariationalMethods.m
File metadata and controls
45 lines (41 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(* ::Package:: *)
(* ::Input:: *)
(*Needs["VariationalMethods`"];*)
(**)
(*SimpleFunctionCase[x_]:=y[x]^2+2y'[x]^2;*)
(*HighOrderFunctionCase[x_]:=y[x]^2+2y'[x]^2+y''[x]^2;*)
(*MultiFunctionCase[x_]:=y'[x]^2+z'[x]^2+2y[x];*)
(*MultiVariableCase[x_,y_,z_]:=D[u[x,y,z],x]^2+D[u[x,y,z],y]^2+D[u[x,y,z],z]^2+2u[x,y,z] f[x,y,z];*)
(**)
(*(*The variationalD and EulerEquations method can handle all high order variation, multivariable and multifunction*)*)
(*VariationalD[HighOrderFunctionCase[x],y[x],x]*)
(*VariationalD[MultiFunctionCase[x],{y[x],z[x]},x]*)
(*VariationalD[MultiVariableCase[x,y,z],u[x,y,z],{x,y,z}]*)
(**)
(*EulerEquations[HighOrderFunctionCase[x],y[x],x]*)
(*EulerEquations[MultiFunctionCase[x],{y[x],z[x]},x]*)
(*EulerEquations[MultiVariableCase[x,y,z],u[x,y,z],{x,y,z}]*)
(**)
(*(*For splitting the calculation process*)*)
(*SimpleVariation[F_]:=D[F,y[x]]-D[D[F,y'[x]],x];*)
(*HighOrderVariation[F_]:=D[F,y[x]]-D[D[F,y'[x]],x]+D[D[F,y''[x]],{x,2}];*)
(*MultiFunctionVariation[F_]:={D[F,y[x]]-D[D[F,y'[x]],x],D[F,z[x]]-D[D[F,z'[x]],x]};*)
(*MultiVariableVariation[F_]:=D[F,u[x,y,z]]-D[D[F,D[u[x,y,z],x]],x]-D[D[F,D[u[x,y,z],y]],y]-D[D[F,D[u[x,y,z],z]],z];*)
(**)
(*SimpleVariation[SimpleFunctionCase[x]]*)
(*HighOrderVariation[HighOrderFunctionCase[x]]*)
(*MultiFunctionVariation[MultiFunctionCase[x]]*)
(*MultiVariableVariation[MultiVariableCase[x,y,z]]*)
(**)
(*(*Isoperimetric problem F is Variational Function and G is the Isoperimetric Constraint*)*)
(* F[x_]:=y'[x]^2+x^2;*)
(*G[x_]:=y[x]^2;*)
(*EulerEquations[F[x]+lambda G[x],y[x],x]*)
(**)
(*(*Weierstrass Form of Euler Equation*)*)
(*F[t_]:=(y'[t]^2-y[t]^2 x'[t]^2)/x'[t];*)
(*Simplify[D[F[t],x[t],y'[t]]-D[F[t],x'[t],y[t]]+(x'[t] y''[t]-x''[t] y'[t])D[F[t],x'[t],y'[t]]/(y'[t] x'[t])]*)
(**)
(*(*Non Weierstrass Form of Euler Equation*)*)
(*D[F[t],x[t]]-D[D[F[t],x'[t],t]]*)
(*D[F[t],y[t]]-D[D[F[t],y'[t],t]]*)