MATLAB:为什么这里缺少一个同调函数`(t,y)`?

MATLAB:为什么这里缺少一个同调函数`(t,y)`?,matlab,Matlab,在第45行(@example…)上。为什么它不是ode(@45(t,y)示例…?。如果输入缺失,如何将[0,4*pi]和3传递到导数(即示例1)?这正是MATLAB中ode45函数的工作方式。 ode45(@function,[start,end]表示t,初始值为y) 在上面的例子中,函数是example1,t0是0,tn(最后一点)是4*pi,y的初始值是3 使用ode45最重要的部分是正确设置函数。注意函数是如何为dy/dt设置的。因此,给定一个初始点,它可以在时间t生成y的其余点,因为它可

在第45行(@example…)上。为什么它不是
ode(@45(t,y)示例…
?。如果输入缺失,如何将
[0,4*pi]
3
传递到导数(即示例1)?

这正是MATLAB中ode45函数的工作方式。 ode45(@function,[start,end]表示t,初始值为y)

在上面的例子中,函数是example1,t0是0,tn(最后一点)是4*pi,y的初始值是3


使用ode45最重要的部分是正确设置函数。注意函数是如何为dy/dt设置的。因此,给定一个初始点,它可以在时间t生成y的其余点,因为它可以计算y随t增加的变化。

这正是MATLAB中ode45函数的工作方式。 ode45(@function,[start,end]表示t,初始值为y)

在上面的例子中,函数是example1,t0是0,tn(最后一点)是4*pi,y的初始值是3


使用ode45最重要的部分是正确设置函数。注意函数是如何为dy/dt设置的。因此,给定一个初始点,它可以在时间t生成y的其余点,因为它可以计算y随t增加的变化。

操作符可以创建两个(可能更多)不同的点:简单点和匿名点。简单的函数句柄是直接引用函数文件的句柄,并且没有其他级别的函数句柄。匿名函数是一个句柄,它本身是一个(非常简单的)函数,并拥有自己的工作区,用于常量存储、闭包和其他目的。使用以下功能可以看到差异:

function yprime=example1(t , y)
yprime=cos(t)./(2*y-2);

Then type
>> [t,y] =ode45(@example1, [0, 4*pi],3);
>> plot(t , y)
匿名函数增加了一点开销,因为它们不仅仅是指向函数的指针,因此只有在需要时才真正需要匿名函数


无论创建如何,
ode45
及其亲属总是试图将
t
y
参数对传递给句柄,并且只有在使用匿名函数而不是直接文件句柄引用时,才需要参数列表。

@
操作符可以创建两个(可能更多)不同:简单和匿名。简单的函数句柄是直接引用函数文件的句柄,并且没有其他级别的函数句柄。匿名函数是一个句柄,它本身是一个(非常简单的)函数,并拥有自己的工作区,用于常量存储、闭包和其他目的。使用以下功能可以看到差异:

function yprime=example1(t , y)
yprime=cos(t)./(2*y-2);

Then type
>> [t,y] =ode45(@example1, [0, 4*pi],3);
>> plot(t , y)
匿名函数增加了一点开销,因为它们不仅仅是指向函数的指针,因此只有在需要时才真正需要匿名函数


无论创建如何,
ode45
及其亲属将始终尝试将
t
y
参数对传递给您通过的句柄,只有在使用匿名函数而不是直接文件句柄引用时,才需要参数列表。

值得澄清的是,
@
运算符是函数句柄的运算符,而不是匿名函数的运算符。编写类似于
f=@(x,y)x+y的匿名函数时
这实际上意味着“创建函数f(x,y)=x+y;并将其附加到函数句柄f”。除此之外,答案还不错+“帕特里克,这是一个公平的观点。我经常变得懒惰,只是不区分上下文,只是将其视为一个单独的特殊运算符。值得澄清的是,
@
运算符是函数句柄的运算符,而不是匿名函数的运算符。编写类似于
f=@(x,y)x+y的匿名函数时
这实际上意味着“创建函数f(x,y)=x+y;并将其附加到函数句柄f”。除此之外,答案还不错+“帕特里克,这是一个公平的观点。我经常变得懒惰,只是不区分上下文,只是把它看作一个单独的特殊操作符。