MATLAB bvp4c函数 常微…
来源:互联网 发布:华三交换机端口配置 编辑:程序博客网 时间:2024/06/05 15:37
1. bvp4c:
sol = bvp4c(odefun,bcfun,solinit)
sol = bvp4c(odefun,bcfun,solinit,options)
sol = bvp4c(odefun,bcfun,solinit,options,p1,p2...)
sol返回如下值
sol.x bvp4c选择的网格
sol.y 在网格点sol.x的 y(x)的接近值
sol.yp 在网格点sol.x的 y'(x)的接近值
sol.parameters 未知参数的值
sol.solver 'bvp4c'
2.odefun 为微分方程
dydx = odefun(x,y)
dydx = odefun(x,y,p1,p2,...)
dydx = odefun(x,y,parameters)
dydx = odefun(x,y,parameters,p1,p2,...)
parameters 为未知参数向量,p1和p2...为已知参数向量
dydx为列向量
3. bcfun 计算边界条件的残留值bc( y(a),y(b) ),输出列向量
res = bcfun(ya,yb)
res = bcfun(ya,yb,p1,p2,...)
res = bcfun(ya,yb,parameters)
res = bcfun(ya,yb,parameters,p1,p2,...)
4. solinit
solinit的结构如下:
x 初始网格的节点(相当于自变量的节点),边界条件满足a=solinit.x(1) 和b=solint.x(end)
y 解的初始假设,solinit.y(:,i)为自变量solinit.x(i)对应的解的估计值
parameters 可选,未知参数的初始估计向量,对于存在未知参数的情况,必须提供
sol.y(1,1).............. sol.y(1,i).............sol.y(1,end)
...
sol.y(m,1).............. sol.y(m,i).............sol.y(m,end)
sol.x(1) ................sol.x(i) .................sol.x(end)
solinit的赋值语句为bvpinit,语法如下
solinit = bvpinit(x,v)
solinit = bvpinit(x,v,parameters)
solinit = bvpinit(sol,[anew bnew])
solinit = bvpinit(sol,[anew bnew],parameters)
x为初始网格向量,对于边界区间[a,b]需满足 x(1)=a, x(end)=b, 一般情况下可用x=linspace(a,b,10)
v为解的估计,可以是一个向量,也可以是一个函数
v为向量的情况,v(i)代表的就是y(i,:),也就是不管自变量为多少y(i)都是这个值,向量的维数等于因变量个数
v为函数的情况,对于给定一个网格,函数必须返回一个向量y(1),y(2),y(3)...y(m)
y=guess(x) 代表的是 y(:,j)=guess( x(j) )
solinit = bvpinit(sol,[anew bnew])
由[a,b]上的解sol,得到[anew,bnew]的解的初始估计,so either anew <= a <b <= bnew or anew >= a > b >= bnew
sxinit= deval_r(sol.xint)
6. options的设置 bvpset语句
options = bvpset('name1',value1,'name2',value2,...)
options = bvpset(oldopts'name1',value1,...)
options = bvpset(oldopts,newopts)
name value
RelTol 正标量 默认为1e-3 相对精度
AbsTol 正标量 默认为1e-6 绝对精度
Vectorized on或者off 将ode函数F([x1 x2 ...],[y1y2 ...]),写成[F(x1,y1) F(x2,y2) ...]. 的形式,能减少函数评估的次数,降低运行时间
SingularTerm 矩阵 方程的奇异项, 如 y'=Sy/x + f(x,y,p) x=[0,b] ,则设置常数矩阵S
FJacobian 函数、矩阵或元胞数组 提供odefun的解析偏导数对于y'=f(x,y),则提供f对y的偏导数,若偏导数都为常数项,则用元胞数组的形式给出;若有未知参数,还需计算对未知参数的偏导数
BCJacobian 函数、元胞数组 提供边界函数bcfun的解析偏导数 bc(ya,yb)=0则计算bc对ya,yb 的偏导数,若有未知参数p还需计算未知参数的偏导数:[DBCDYA,DBCDYB,DBCDP] =BCJAC(YA,YB,P)
Nmax 正整数 网格的最大值
Stats on 或者off 显示计算过程的统计数据
bvp4c is a finite difference code that implements thethree-stage Lobatto IIIa formula. This is a collocation formula andthe collocation polynomial provides a C1-continuous solution thatis fourth order accurate uniformly in [a,b]. Mesh selection anderror control are based on the residual of the continuoussolution.
1 0
- MATLAB bvp4c函数 常微…
- matlab dist函数 …
- 【MATLAB】matlab eig 函数…
- MATLAB中的eye() 函数 …
- MATLAB fgoalattain()函数 解…
- Matlab dlmwrite函数 将…
- matlab lsqcurvefit函数&nbsp…
- matlab sort() 排序函数…
- matlab newlvq函数 建立…
- matlab linkage函数 计…
- matlab regress函数 最…
- matlab exprnd函数 生成…
- matlab linprog函数 线…
- matlab quadprog函数 二…
- matlab zscore函数 数据…
- matlab logspace函数 生…
- matlab subspace函数 求…
- matlab perms函数 产生…
- 任意行列二维数组C语言实现
- matlab ezsurf函数 绘制三维表面图
- 总结的binary search 模版
- matlab fminsearch函数 …
- c++ lambda表达式捕获类数据…
- MATLAB bvp4c函数 常微…
- 分治法求最大子数组 c语言实…
- Anaconda Tensorflow GPU 版本的安装问题
- UVa1587 盒子
- matlab radon函数 图像的radon变换
- Android 组合控件开发
- php函数serialize()与unserialize()
- matlab null函数 解&nbs…
- matlab 生成随机数函数