problem of solving the PDE

i define the function, boundary and initial condition of the heat equation in a standard form ,when i try to plot the solution with x direction, it gives me an error that x =linspace () is not inside any function. Do i need to create a function file for each function in order to put the x range inside?

Réponses (1)

VBBV
VBBV le 20 Mar 2024
Modifié(e) : VBBV le 20 Mar 2024

1 vote

Cut all the lines from 1 till 16 and place it after line 26.
Function declarations must be done at the end of the code in your script file (with properly termination using keyword end ... in your case its done correctly)

5 commentaires

VBBV
VBBV le 20 Mar 2024
Modifié(e) : VBBV le 20 Mar 2024
E.g. put all the functions at the end of code in yuur script as below, then run the code again
x = linspace(0,1,25);
y = linspace(0,1,25);
m = 1;
% ... yourcode
% ... yourcode
view([150 25])
function [c,f,s] = heatcyl(x,t,u,dudx) % similarly for other functions
end
suen
suen le 21 Mar 2024
Thank you very much, but I have a question. Usually, we need to define the function first, which is letting the computer understand what inputs I have before solving the main problem. However, why does the arrangement order have to be reversed in this situation?
Torsten
Torsten le 21 Mar 2024
Modifié(e) : Torsten le 21 Mar 2024
It's just a MATLAB convention that the functions must follow the script part. And in my opinion it's reasonable because the script part is executed first and usually calls the functions.
I don't know where you find that
Usually, we need to define the function first, which is letting the computer understand what inputs I have before solving the main problem.
The inputs are not given in the functions, but in the script part (main program) that calls the functions.
suen
suen le 21 Mar 2024
thank you so much
VBBV
VBBV le 21 Mar 2024
Modifié(e) : VBBV le 21 Mar 2024
@suen If your code begins with keyword function in line 1 , then by MATLAB convention the file is considered as function file for which it expects inputs and/or outputs. Since the inputs to function are present later part of your code and defined outside the function body, MATLAB throws such error.
Note that each function must end using keyword end except when there is only one function defined inside the script file.
As mentioned by @Torsten its just MATLAB convention.

Connectez-vous pour commenter.

Produits

Question posée :

le 20 Mar 2024

Modifié(e) :

le 21 Mar 2024

Community Treasure Hunt

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

Start Hunting!

Translated by