吴老师,您好。

首先,谢谢吴老师为大家提供一本这么好的教材,你的书太给力了。

我最近在求解一个三阶常微分方程边值问题,您的书帮助很大。您书的第十章有关于边值问题的例子,跟我求解的问题很相似,所以我是直接在例子10.6-3的程序代码的基础上做的。结果出来了,但是结果跟所求问题在物理上不符合,自己研究了很久没看找出问题出在哪,麻烦吴老师指导一下。先谢谢您了。

我要求的常微分方程是:

方程1.JPG (21.58 KB, 下载次数: 29)

常微分方程

2011-11-17 21:53 上传

F是eta的函数,F‘,F’‘分别是eta的一阶,二阶导数。使用bvp4c求解,因为有四个边界,所以我参照例子10.6.3引入一个参数lambda

把方程中常数项设成lambda=1.8348

结果(图1)存在的问题是:

运行结果F’的变化趋势与想要求的结果不一致。结果图中F’的曲线是向下凹的。我想要的结果是向上凸的图。

因为要用F’计算另外的参数u,y,

从图1运行结果得到的u与y的关系图(图2)与想要的结果(图3)不一致。

方程2_u,v.JPG (4.49 KB, 下载次数: 9)

u,y与eta,F‘的关系

2011-11-17 21:51 上传

书求助1.jpg (22.93 KB, 下载次数: 10)

常微分方程求解结果

2011-11-17 21:51 上传

图1 常微分方程求解结果

书求助2.jpg (18.07 KB, 下载次数: 10)

由常微分方程得到的u与y的关系图

2011-11-17 21:51 上传

图2 由常微分方程得到的u与y的关系图

书求助3.JPG (17.49 KB, 下载次数: 5)

想要得到的u与y的关系图

2011-11-17 21:51 上传

图3 想要得到的u与y的关系图

我用的程序代码:

function example10_6_3

n=47.4256;

X = linspace(0,n,1000);%为bvpinit生成初始化网络准备

lambda = 1.8348;%对lambda的猜测值

function yinit = mat4init(x)

%对y初值的估计函数,由于y2(0) = 1,y2(pi) = 0;所以挑选一个满足上述条件的函数

%这里选择的是-k*sin(4*x)来作为对y2(t)的估计,其原函数y1(t)满足y1(0)=1,因此

%k = 4,所以y1(t)的估计为cos(4*x),y2(t)的估计为-4*sin(4*x)

yinit = [-(8.8920998e-4)*x^3+(0.063256975)*x^2;-(8.8920998e-4)*3*x^2+(0.063256975)*2*x;-(8.8920998e-4)*6*x+(0.063256975)*2];

end

function res = mat4bc(ya,yb,lambda)

%lambda作为未知参数不能省略

%边界条件;边界条件为y1(0) = 1,y2(0) = 2,y2(pi) = 0; 0,0,pi分别对应ya,ya,yb

%而y1,y2,y2分别是第一第二第二个状态变量。因此得到如下res表达式

res = [ya(1)

ya(2)

yb(1)-47.4256

yb(2)];

end

function dydx = mat4ode(x,y,lambda)

%微分方程函数

dydx = [ y(2);y(3);-y(1)*y(3)/2+y(2)^2/2+0.8348*y(1)+lambda];

end

solinit = bvpinit(X,@mat4init,lambda);%由bvpinit生成的初始化网格

sol = bvp4c(@mat4ode,@mat4bc,solinit);%调用bvp4c求解,也可以换成bvp5c

tint = linspace(0,n);

Stint = deval(sol,tint);%根据得到的sol利用deval函数求出[0,4]区间内更多其他的解

%画图展示

figure;

plot(tint,Stint(1,:),'k-','linewidth',2);

hold on

plot(tint,Stint(2,:),'k:','linewidth',2);

hold on

plot(tint,Stint(3,:),'k--','linewidth',2); %这里是(3, : ) 不知道怎么回事网页上显示笑脸

L = legend('{\itF}(\eta)','{\itdF}(\eta)','{\itddF}(\eta)','Location','best');

set(L,'fontname','Times New Roman');

xlabel('\itt','fontsize',16);ylabel('方程的解');

-Stint(2,1)*Stint(3,1)/2+Stint(2,1)^2/2+0.8347708*Stint(1,1)+lambda

(Stint(3,2)-Stint(3,1))/(n/5000)

end

[本帖最后由 吴鹏 于 2011-11-21 14:08 编辑]

bvp4c求边值问题matlab,例子10.6-3_bvp4c求解边值问题相关推荐

  1. 求噪声功率 MATLAB,[转载]matlab中噪声功率、噪声方差关系

    以matlab中awgn函数为例说明: 在matlab中无论是wgn还是awgn函数,实质都是由randn函数产生的噪声.即:wgn函数中调用了randn函数,而awgn函数中调用了wgn函数. 根据 ...

  2. 卡尔曼滤波器求速度matlab,卡尔曼滤波器算法浅析及matlab实战

    原标题:卡尔曼滤波器算法浅析及matlab实战 作者:Liu_LongPo 出处:Liu_LongPo的博客 卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的 ...

  3. matlab对多项式求导,matlab中多项式求导

    1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 4.对比用多项式函数的 polyder 函数及符号函数中的 diff 函数,求导 x2+2x ...

  4. matlab根据根求多项式,matlab求解多项式的根

    因此牛顿法也称切线法,是非线性方程求根方法中收敛最快的方 法. 2. matlab 中方程求解的基本命令 roots(p):求多项式方程的根,其中 p 是多项式系数按降幂排列所形成的向量. solve ...

  5. 6-2 指针与数组-矩阵的各列求和分数 10 本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和。将各列和存放在一个至少7个单元的一维数组中。函数接口定义:

    本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和.将各列和存放在一个至少7个单元的一维数组中. 函数接口定义: void fun ( int data[][7], int resu ...

  6. matlab 计算变异系数,变异系数法求权重matlab 代码

    利用matlab编程,很容易根据变异系数法,求得多指标综合评价模型的权重. 代码如果有不懂的地方,可以联系我. 变异系数法求权重matlab 代码 clear;clc; [data1,header1] ...

  7. matlab 计算变异系数,变异系数法求权重matlab代码

    <变异系数法求权重matlab代码>由会员分享,可在线阅读,更多相关<变异系数法求权重matlab代码(1页珍藏版)>请在读根文库上搜索. 1.变异系数 法求权重 matlab ...

  8. matlab怎么输入一个数,matlab输入10个数

    第十讲 数据类型.控制语句.M文件 1 5.1 MATLAB数据类型 5.1.1 数字型数据 8位符号型整数,它表示-128~128之间的整数 16位符号整型,它表示-32768~32767之间的整数 ...

  9. 循环队列,定义循环队列长度为10,编写初始化队列、入队、出队、求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能。

    循环队列,定义循环队列长度为10,编写初始化队列.入队.出队.求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能. #include< ...

最新文章

  1. 奇葩错误 WIFI搜不到、无线网卡连接不上
  2. 报名 | 期末考后,快来打比赛赢万元奖金!(北京上海)
  3. oracle10 exp imp 中文乱码
  4. 利用IPFS构建自己的去中心化分布式Wiki系统
  5. Boost:由内部绑定的值返回的智能指针的测试程序
  6. 一窥谷歌神经机器翻译模型真面貌 其底层框架开源
  7. linux主机中util啥意思,Util-linux
  8. 【Servlet】Session会话跟踪技术
  9. Java之switch的控制语句详解
  10. NUC1100 Biorhythms【中国剩余定理】
  11. 毕业一年后我转行NLP 这几点宝贵经验分享给大家
  12. linux pxe dhcp 讲解,RHEL 5 PXE+DHCP+NFS+SFTP无人职守网络安装配置
  13. live2d_Live2D 性能优化
  14. VM14安装Mas os 13
  15. 关于一张 5 亿数据表之我与 DBA 的 battle
  16. Keil 编译显示变量重复定义问题
  17. Hive批量删除历史分区
  18. html页脚固定,jQuery实现页脚永远固定在页面底部
  19. Alpha阶段敏捷冲刺④
  20. html监控页面大小,JQuery实时监控窗口大小(无需插件)

热门文章

  1. iphone7 屏幕投影到电脑
  2. MQL4读取hst文件代码范例
  3. 王道计算机网络第三章
  4. Spring Boot中Configuration problem: Cannot locate BeanDefinitionParser for element 的问题分析
  5. 在VUE中使用Lottie动画
  6. 如何建立高质量团队-《克服团队协作的五种障碍》笔记与心得
  7. 红米note4X_高通版(2016101)_官方线刷包_救砖包_解账户锁
  8. 阿里重投内容电商,VR技术会成为马云的杀手锏吗?
  9. mpvue 微信小程序api_mpVue 小程序框架 SDK
  10. js长按删除_js模拟长按事件的实现方式