主要内容

bvpset

创建或修改边值问题的选项结构

语法

选项= bvpset('name1',value1,'name2',value2,…)
Options = bvpset(oldopts,'name1',value1,…)
选项= bvpset(oldopts,newopts)
bvpset

描述

选项= bvpset('name1',value1,'name2',value2,…)创建一个结构选项可以提供给边值问题求解器bvp4c,其中已命名的属性具有指定的值。任何未指定的属性保留其默认值。对于所有属性,只输入唯一标识属性的前导字符就足够了。bvpset忽略属性名的大小写。

Options = bvpset(oldopts,'name1',value1,…)改变一个现有的选项结构oldopts.中的任何值都会被覆盖oldopts,使用名称/值对指定,并返回修改后的结构作为输出参数。

选项= bvpset(oldopts,newopts)结合现有的选项结构oldopts新的期权结构newopts.中设置的任何值newopts中的对应值oldopts

bvpset如果没有输入参数,则显示所有属性名及其可能的值,并用大括号表示默认值{}

你可以使用这个函数bvpget查询选项结构获取特定属性的值。

BVP属性

bvpset使您能够为边值问题解决程序指定属性bvp4c.有几种类型的属性可以设置:

容错特性

因为bvp4c使用搭配公式,数值解是基于满足搭配方程的点的网格。网格选择和误差控制基于该解的残差,使计算得到的解年代x)是一个不安问题的精确解决方案年代”(x) =fx年代x) +resx).在网格的每个子区间上,有一个残差的范数解的第Th分量,res(我),是估计的,并要求小于或等于公差。这个公差是相对公差和绝对公差的函数,RelTol而且AbsTol,由用户定义。

res / 马克斯 腹肌 f AbsTol / RelTol RelTol

容错属性如下表所示。

BVP容错属性

财产

价值

描述

RelTol

正标量{1 e - 3

适用于剩余向量的所有分量的相对容错。它是残差相对于的大小的度量fxy).默认的,1 e - 3,对应0.1%的精度。

计算解年代x的精确解年代”(x) =Fx年代x)) + res(x).在网格的每个子区间上,剩余分辨率(x)满足

res / 马克斯 腹肌 F AbsTol / RelTol RelTol

AbsTol

正标量或向量{1 e-6

适用于残差矢量的相应分量的绝对误差容差。AbsTol(我)是一个阈值,低于该阈值,相应组件的值不重要。如果指定了标量值,则它将应用于所有组件。

向量化

下表描述了BVP向量化属性。的ODE函数的向量化bvp4c与ODE求解器使用的矢量化不同:

  • bvp4c, ODE函数必须对第一个参数以及第二个参数进行向量化,以便F([x1 x2…,[y1 y2…])返回[(x1, y1) F (x2, y2)…]

  • bvp4c即使提供了分析雅可比矩阵,也可以从向量化中获益。对于刚性ODE求解器,当使用解析雅可比矩阵时,矢量化被忽略。

向量化属性

财产

价值

描述

矢量化

| {

开始通知bvp4cODE函数F的编码F([x1 x2…,[y1 y2…])返回[F(x1,y1) F(x2,y2)…].也就是说,ODE函数可以一次将整个列向量数组传递给求解器。这使得求解器能够减少函数计算的数量,并可能显著减少求解时间。

用MATLAB®对于数组表示法,向量化ODE函数通常是一件很容易的事情。在shockbvp示例中,shockODE函数使用了向量化结肠的符号转换为下标,并使用数组乘法(.*)算子。

函数dydx = shockODE(x,y,e) pix = pi*x;Dydx = [y(2,:)…- x / e。* y(2:) -π^ 2 * cos(沥青)-沥青/ e。*罪(沥青)];

解析偏导数

默认情况下,bvp4c求解器用有限差分逼近所有偏导数。bvp4c如果你提供偏导数∂f/∂y微分方程的∂公元前/∂和∂公元前/∂yb,即边界条件。如果问题涉及未知参数,你还必须提供偏导数∂f/∂p和∂公元前/∂p,关于参数。

下表描述了解析偏导数的性质。

BVP解析偏导数性质

财产

价值

描述

FJacobian

函数处理

计算的解析偏导数的函数句柄fxy).当解决y' =fxy),将此属性设置为@fjac如果Dfdy = fjac(x,y)求雅可比矩阵∂f/∂y.如果问题涉及未知参数p[dfdy,dfdp] = fjac(x,y,p)也必须返回偏导∂f/∂p.对于偏导数为常数的问题,将这个性质设为dfdy或者到单元格数组{dfdy, dfdp}

BCJacobian

函数处理

计算的解析偏导数的函数句柄公元前yb).对于边界条件公元前yb),将此属性设置为@bcjac如果(Dbcdya,dbcdyb] = bcjac(ya,yb)求偏导数∂公元前/∂,和∂公元前/∂yb.如果问题涉及未知参数p[dbcdya,dbcdyb,dbcdp] = bcjac(ya,yb,p)也必须返回偏导∂公元前/∂p.对于偏导数为常数的问题,请将此属性设置为单元格数组{dbcdya, dbcdyb}{dbcdya, dbcdyb, dbcdp}

奇异BVPs

bvp4c能解决奇异问题的形式吗

y 年代 y x + f x y p

在区间[0,b),b> 0。对于这样的问题,指定常数矩阵年代作为价值SingularTerm.对于这种形式的方程,odefun仅计算fxyp)项,其中p表示未知参数(如果有)。

奇异BVP性质

财产

价值

描述

SingularTerm

常数矩阵

单数bvp的单数术语。设为常数矩阵年代对于这种形式的方程

y 年代 y x + f x y p

在区间[0,b),b> 0。

网格尺寸属性

bvp4c求解一个代数方程组,以确定每个网格点上BVP的数值解。代数系统的大小取决于微分方程的数目(n)和当前网格中的网格点数目(N).当允许的网格点数用尽时,计算停止,bvp4c显示警告消息并返回到目前为止找到的解决方案。这个解决方案不满足容错,但它可以为重新开始计算提供一个很好的初始猜想,以放宽容错或增加的值NMax

下表描述了网格大小属性。

BVP网格尺寸属性

财产

价值

描述

NMax

正整数{地板(1000 / n)

求解BVP时允许的最大网格点数,其中n是问题中微分方程的个数。的默认值NMax将代数系统的大小限制在大约1000个方程。对于含有少量微分方程的系统,的默认值为NMax应该足以得到一个准确的解。

方案统计属性

统计数据属性可让您查看解决方案统计信息。

下表描述了解决方案统计信息属性。

BVP解统计属性

财产

价值

描述

统计数据

| {

是否显示计算的统计信息。如果统计数据属性是,在解决问题后,bvp4c显示:

  • 网格中的点数

  • 解的最大残差

  • 它调用微分方程函数的次数odefun评估fxy

  • 它调用边界条件函数的次数bcfun评估公元前y一个),yb))

例子

创建一个选项结构,以更改的相对容错bvp4c的默认值1 e - 31的军医,输入

options = bvpset('RelTol',1e-4);

恢复…的值“RelTol”选项,输入

bvpget(options,'RelTol') ans = 1.0000 -004

版本历史

R2006a之前介绍