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?

Answers (1)

VBBV
VBBV on 20 Mar 2024
Edited: VBBV on 20 Mar 2024
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 Comments

VBBV
VBBV on 20 Mar 2024
Edited: VBBV on 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
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 on 21 Mar 2024
Edited: Torsten on 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.
thank you so much
VBBV
VBBV on 21 Mar 2024
Edited: VBBV on 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.

Sign in to comment.

Products

Asked:

on 20 Mar 2024

Edited:

on 21 Mar 2024

Community Treasure Hunt

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

Start Hunting!