高质量学习资源免费获取,专注但不限于【Linux】【C/C++/Qt】【FPGA】【数据结构与算法】, 根据多年技术经验纯【原创】,纯【干货】,分享【技术心得】,力求【授人以鱼,更授人以渔】。

bvp4c--语法  

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

5.deval 评估 自变量=xint时候的解

sxinit= deval(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 ...],[y1 y2 ...]),写成[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 the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a C1-continuous solution that is fourth order accurate uniformly in [a,b]. Mesh selection and error control are based on the residual of the continuous solution.

 % bvp4c_fun.m
% 求解微分方程边值问题
S=[
-];
options=bvpset('SingularTerm',S);
% 得到微分方程的初场
guess=[sqrt()/;];
solinit=bvpinit(linspace(,,),guess);
sol=bvp4c(@emdenode,@emdenbc,solinit,options);
% 根据分析解计算
x=linspace(,);
truy=./sqrt(+(x.^)/);
% 绘制图形结果
plot(x,truy,'b-');
hold on;
plot(sol.x,sol.y(,:),'ro');
legend('analytical','computed');
xlabel('x'),ylabel('y');
hold off;

bvp4c--语法的更多相关文章

  1. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  2. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  3. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  4. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  5. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  6. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  7. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

  8. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  9. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  10. postgresql 基本语法

    postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...

随机推荐

  1. 房租管理小软件(六):通用功能包括时间,效验,MD5加密,XML 操作

    1.时间相关 public static DateTime getNow() { MyFZDataContext dataContext = MyFZDataContext.getDataContex ...

  2. microsoft的罗马帝国——浪潮之巅

    其实开始读微软的这篇已经比较久了,从来学校的前一天晚上等车的时候就开始读了,直到今天才看完.嗯,微软的确是个帝国. 那就从头开始讲把,关于帝国的传奇都是比较长的故事呢.至于我的叙述水平和我的知识水平都 ...

  3. flappy pig小游戏源码分析(4)——核心pig模块(未完待续)

    热身之后,我们要动点真格的了,游戏叫flappy pig,我们的pig终于要出场了. 老规矩,看看目录结构,读者对着目录结构好好回想我们已经讲解的几个模块: 其中game.js是游戏主程序,optio ...

  4. java基础程序设计学习

    java使用System.out来表示标准输出设备,使用System.in来表示标准输入设备.java并不直接支持控制台输入,但是可以使用Scanner类创建它的对象,以读取来自System.in的输 ...

  5. 基于UDP协议的多路广播地址

    因为多路广播地址的范围是224.0.0.0 到239.255.255.255之间,所以我们可以从中取一个地址给我们的程序用即可

  6. linux磁盘简单分区方式

    1:分区 fdisk /dev/sdb 2:格式化 mkfs -t ext3  /dev/sdb1 或者 mke2fs -t ext4  /dev/sdb2 3:挂载 mount /dev/sdb1 ...

  7. hdoj 2045 不容易系列之(3)—— LELE的RPG难题

    不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  8. [置顶] MapReduce 编程之 倒排索引

    本文调试环境: ubuntu 10.04 , hadoop-1.0.2 hadoop装的是伪分布模式,就是只有一个节点,集namenode, datanode, jobtracker, tasktra ...

  9. JavaScript 的原型对象 Prototype

    在 JavaScript 中,每当定义一个对象(或函数)时候,对象中都会包含一些预定义的属性,其中一个属性就是原型对象 prototype. var myObject = function( name ...

  10. sql2008_x64 读取excel

    sql2008_x64 读取excel 下载64bit 版的AccessDatabaseEngine_x64:http://www.microsoft.com/en-us/download/detai ...