What does this declaration do?
4 次查看(过去 30 天)
显示 更早的评论
Hello I am new to matlab, just want to know what is the importance of this xval such that values are returned differently when using 3 different variable instead of two variable?
sample code:
function g=dVdx(xval,yval,cst)
g = 4*cst(1) - (4*yval)/cst(1)^2 ;
by input
>> dVdx(0,5E-6,[0.02]) I will get an answer of 0.0300.
however
function g=dVdx(xval,yval)
g = 4*xval - (4*yval)/xval^2 ;
Input
>> dVdx(5E-6,0.02)
I will get a return number of -3.2000e+09 .
0 个评论
采纳的回答
Geoff Hayes
2018-2-20
In your first example,
>> dVdx(0,5E-6,[0.02]) I
note how the first input 0 which is the xval is not used in your calculation (with yval equal to %E-6 and cst equal to 0.02)
g = 4*cst(1) - (4*yval)/cst(1)^2 ;
In your second example,
>> dVdx(5E-6,0.02)
xval is 5E-6 and yval is 0.02 for
g = 4*xval - (4*yval)/xval^2 ;
But the variables and their values aren't the same as your first example. If we substitute then we get
(1) g = 4*0.02 - (4*5E-6)/0.02^2 = 0.03
(2) g = 4*5E-6 - (4*0.02)/5E-6^2 = -3.2e+09
So you are using different values for each calculation (2 vs 3 inputs) and so will get different answers.
更多回答(1 个)
Star Strider
2018-2-20
That appears to be an anonymous function to be used in one of the ODE solvers, such as ode45. The ODE solvers require that the first argument is the independent variable (here ‘xval’), and the second is the dependent variable (here ‘yval’). The third argument, ‘cst’, is an extra parameter.
The call to it in ode45 for example would be:
cst = 42; % Additional Parameter
tspan = [0 5]; % Time Range Or Vector
ic = 0; % Initial Condition
[x,y] = ode45(@(xval,yval) dVdx(xval,yval,cst), tspan, ic);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!