How can I use Createpde to solve a fourth degree partial differential equation?

5 vues (au cours des 30 derniers jours)
Poupak Kermani
Poupak Kermani le 16 Jan 2025
Commenté : Poupak Kermani le 20 Jan 2025
Hello,
How can I use Createpde to solve the a fourth degree partial differential equation?
∇4(u)=q/D?
  2 commentaires
Poupak Kermani
Poupak Kermani le 16 Jan 2025
Modifié(e) : Torsten le 16 Jan 2025
Thank you for your feedback.
I have created the first part of the solution (i.e.: ∇2(v)=q/D ):
% Rectangle is code 3, 4 sides,
% followed by x-coordinates and then y-coordinates
R1 = [3,4,-1,1,1,-1,-1,-1,1,1]';
% Circle is code 1, center (.5,0), radius .2
C1 = [1,0.,0,.2]';
% Pad C1 with zeros to enable concatenation with R1
C1 = [C1;zeros(length(R1)-length(C1),1)];
geom = [R1,C1];
% Names for the two geometric objects
ns = (char('R1','C1'))';
% Set formula
sf = 'R1 - C1';
% Create geometry
g = decsg(geom,sf,ns);
model = createpde(2);
geometryFromEdges(model,g);
pdegplot(model,EdgeLabels="on")
xlim([-1.1 1.1])
axis equal;
%
applyBoundaryCondition(model,"dirichlet", ...
Edge=3,u=[1,1]);
applyBoundaryCondition(model,"dirichlet", ...
Edge=1,u=[1,1]);
applyBoundaryCondition(model,"dirichlet", ...
Edge=4,u=[1,1]);
applyBoundaryCondition(model,"dirichlet", ...
Edge=2,u=[1,1]);
% The next step is optional,
% because it sets "g" to its default value
applyBoundaryCondition(model,"neumann", ...
Edge=5:8,g=[0,0]);
%
%
figure;
specifyCoefficients(model,m=0,d=0,c=1,a=0,f=[1;1]);
generateMesh(model,Hmax=0.1);
results = solvepde(model);
v = results.NodalSolution;
pdeplot(model,"XYData",v)
Could you guide me on how I could create the second part of the solution (i.e.: ∇2(u)=v )?

Connectez-vous pour commenter.

Réponses (1)

Torsten
Torsten le 16 Jan 2025
Déplacé(e) : Torsten le 17 Jan 2025
You have a system of two second-order differential equations. Thus instead of defining one equation, you have to define two and solve them simultaneously.
I don't have experience with the PDE toolbox - thus I can only tell you what you should do, not how you can do it.
But I think this is almost what you need:
  1 commentaire
Poupak Kermani
Poupak Kermani le 20 Jan 2025
Hello,
Thank you very much for your feedback.
You have helped me greatly to solve my problem. Your last comment unblocked this issue.
Best regards,
Poupak

Connectez-vous pour commenter.

Tags

Produits


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by