matlab分布傅里叶解微分方程,专题四 微分方程的matlab求解
【实验目的及要求】
熟练掌握dsolve,ode45,ode15s语句的调用格式;正确区分符号运算与数值运算的不同,避免出现混淆调用的情况;对实际问题,能够建立微分方程数学模型,能够用dsolve,ode45,ode15s等语句进行求解
【实验过程】(实验步骤、绘图、记录、数据、分析、结果及实验教师评语(可选))
一.实验题目
1.(必做题)解微分方程(组)
(1)
(提示可以考虑,以特解函数及其一阶、二阶导数曲线图形来表示)
解:①将高阶微分方程化为一阶微分方程组,设,则有
②建立函数文件
functiondy=myfun(x,y)
dy=[y(2);y(3);(y(3)-1)^2-y(2)-y(1)^2];
③主程序:
[x,y]=ode45('myfun',[0,20],[0;1;-1]);
plot(x,y(:,1),'*',x,y(:,2),'+',x,y(:,3),'o')
%legend('y','y的一阶导数','y的二阶导数');
④结果
注意此题得不到解析解,只能用数值解,解法可参看PPT中数值解例题3
(2)运用数值解手段描述下面常微分方程组在初值下的相空间的相轨线.
解:①建立函数文件
functiondx=lorenz(t,x)
dx=[-8/3*x(1)+x(2)*x(3);-10*x(2)+10*x(3);-x(1)*x(2)+28*x(2)-x(3)];
②主程序文件
[t,x]=ode45('lorenz',[0,100],[0;0;1e-10]);
axis([0 40 -20 20 -20 20]);
plot3(x(:,1),x(:,2),x(:,3));
gridon
③结果
(3)求的数值解,并画出图像
解:首先建立odefun1.m如下:
function dy=odefun1(x,y);
dy=[-0.01*y(1)-99.99*y(2);-100*y(2)];
然后建立主程序shiyan2_3.m
clc
clear
close all
[x,y]=ode15s('odefun1',[0 100],[2;1])
plot(x,y(:,1),'*',x,y(:,2),'r*')
结果为
(4)求下列方程的通解及特解
(Bessel方程,令n=½)
解:求通解的主程序为(syms n)
diff_y='x^2*D2y+x*Dy+(x^2-(1/2)^2)*y=0';
y=dsolve(diff_y,'x')
结果为:
y=C1/x^(1/2)*sin(x)+C2/x^(1/2)*cos(x)
y =
(2^(1/2)*C12*cos(x))/(pi^(1/2)*x^(1/2)) + (2^(1/2)*C13*sin(x))/(pi^(1/2)*x^(1/2))
求特解的主程序为
diff_y='x^2*D2y+x*Dy+(x^2-(1/2)^2)*y=0';
y=dsolve(diff_y,'y(pi/2)=2,Dy(pi/2)=-2/pi','x')
结果为:
y =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x)
y =
(2*sin(x)*(pi/2)^(1/2))/x^(1/2) + (cos(x)*(2/(pi/2)^(1/2) - pi/(pi/2)^(3/2)))/(2*x^(1/2))
2.(必做题)凶杀案作案时间问题:受害者的尸体于晚上7:30被发现,法医于晚上8:20赶到凶案现场,测得尸体温度为32.6℃;一小时后,当尸体即将被抬走时,测得尸体温度为31.4℃,室温在几个小时内始终保持21.1℃。此案最大的嫌疑犯张某声称自己是无罪的,并有证人说:“下午张某一直在办公室上班,5:00时打完电话后就离开了办公室”。从张某到受害者家(凶案现场)步行需5分钟,现在的问题是,张某不在凶案现场的证言能否被采信,使他排除在嫌疑犯之外。(提示:Newton冷却定理告诉我们“物体在介质中冷却速度同该物体温度与介质温度之差成正比”)
解:首先应确定凶案的发生时间,若死亡时间在下午5点5分之前,则张某就不是嫌疑犯,否则不能将张某排除。
设T(t)表示t时刻尸体的温度,并记晚上8:20为t=0,则T(0)=32.6℃,T(1)=31.4℃。假设受害者死亡时体温是正常的,即T=37℃(查资料)是要确定受害者死亡的时间,也就是求T(t)=37℃的时刻,进而确定张某是否是嫌疑犯。
人体体温受大脑神经中枢调节。人死亡后体温调节的功能消失,尸体的温度受外界环境温度的影响。假设尸体温度的变化率服从牛顿冷却定律,即尸体温度的变化律与他同周围的温度差成正比。即
模型:由Newton冷却定理可得一阶线性微分方程模型
求解:(1)首先用dsolve求解该方程的解析解
程序:
symslamd
sy3d11='DT+lamd*(T-21.1)=0';
T=dsolve(sy3d11,'T(0)=32.6','t')
结果:
T =211/10+23/2*exp(-lamd*t)
或
T =23/(2*exp(lamd*t)) + 211/10
(2)求解参数lamd
可以利用初始条件“1小时后,当尸体即将被抬走时,测得尸体温度为31.4℃”
由上式可以得到:31.4=21.1+11.5*exp(-1*lamd)
lamd的值为0.11020314013361429463890984998294
(程序:lamd=solve('31.4-21.1-11.5*exp(-1*lamd)=0','lamd')
(3)求解t0
当T=37℃时,有t=-2.95小时
(程序:t0=solve('37-21.1-11.5*exp(-0.11*t)','t'))
=-2小时57分,
8小时20分-2小时57分=5小时23分。即死亡时间大约在5:23,
因此张某不能被排除在嫌疑犯之外。
matlab分布傅里叶解微分方程,专题四 微分方程的matlab求解相关推荐
- matlab中字符表示,(专题一)07 matlab中字符串的表示
matlab中,字符串使用单引号括起来的字符序列 >>xm='Central South University' >>xm(1:3) ans= Cen 截取1--3这三个字符, ...
- matlab ode45 二阶微分,matlab关于ode45解二阶微分方程的困惑
matlab关于ode45解二阶微分方程的困惑 matlab关于ode45解二阶微分方程的困惑 一个二阶微分方程: y''+y'+y=sin(t) 初始条件为y(0)=5,y'(0)=6. 过程: 先 ...
- 分步傅里叶算法_分布傅里叶算法求解非线性薛定谔的matlab程序问题
[size=14.399999618530273px]分布傅里叶算法求解非线性薛定谔的matlab程序里,我注释的可能也有错误,请指导@alpha=0; %光纤损耗值,单位dB/km alph=al ...
- 完全手册-MATLAB使用详解:基础、开发及工程应用
[书名]完全手册-MATLAB使用详解:基础.开发及工程应用 [作者]董霖 编著 [ISBN]978-7-121-07397-7 [出版社]电子工业出版社 [出版日期]2009年1月 [内容简介] M ...
- 02 解方程专题 (各学科:高数、线代、专业课)
解方程专题(各学科:高数.线代.专业课) 一.高等数学--微分方程 常微分方程分类: (1)一阶常系数方程 1.1可分离变量的微分方程 1.2.齐次微分方程 1.3.一阶线性微分方程 1.4.伯努利方 ...
- 【基于MATLAB的数字图像处理】第四章·图像增强
系列文章 ·[基于MATLAB的数字图像处理]第一章·绪论 ·[基于MATLAB的数字图像处理]第二章·视觉系统与图像处理系统 ·[基于MATLAB的数字图像处理]第三章·基本图像变换 ·[基于MAT ...
- Matlab S-Function详解
Part I: 所谓s函数是system Function的简称, 用它来写自己的simulink模块. s函数可以用matlab.C.C++.Fortran.Ada等语言来写, 这儿我只介绍怎样用m ...
- 解题报告:【kuangbin带你飞】专题四 最短路练习题
目录 A. POJ - 2387 TiltheCowsComeHomeTil\ the\ Cows\ Come\ HomeTil the Cows Come Home--------(最短路模板题)[ ...
- 开发指南专题四:JEECG微云快速开发平台--JEECG开发环境搭建
开发指南专题四:JEECG微云快速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...
最新文章
- 关于bitmap,为什么android会有bitmap
- java frame 显示图片_java 图像显示
- Windows驱动开发学习笔记(三)—— 内核空间内核模块
- ubuntu vi 按方向键出现很多字母是怎么回事?(没安装vim)
- 一男子安装lua开发环境傻逼操作,惊呆所有人
- JSK-T1011 反向输出一个三位数【入门】
- 通过用户电脑ip获取用户当前所在城市以及天气
- OSChina 周四乱弹 —— 懦夫!你就不能找富婆吗
- 使用C#在VS窗体应用中调起一个选择框,完成图片替换
- AWS大数据三种经典玩法
- 美的发布行业首支说唱MV,打造懂年轻人的美的微晶冰箱
- 2.基于ITIL的IT服务管理基础篇 --- IT服务管理的背景
- ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session
- 职业生涯的7个发展阶段及如何在每个阶段成功?
- Pandas中的pivot操作
- 【Top 30+案例评选】CSDN“2019 优秀AI、IoT应用案例TOP 30+”正式发布
- Marple表演电影字幕
- 【Axure原型分享】工作计划日历
- Ubuntu下解决Make的:cc1plus: warnings being treated as errors
- 【RabbitMQ】消息的可靠性投递与签收
热门文章
- AIFF格式容器规范
- 基于svelte3+sass仿微信网页版聊天|svelte.js 桌面聊天实例SvelteWebChat
- 视频转文字怎么转?安利下面这三个方法给你
- 微信小程序开发(英语学习助手)
- 考研北京理工计算机科学与技术,北京理工大学2021考研大纲:计算机科学与技术专业基础综合...
- 经纬恒润位列“2021北京民营企业科技创新百强榜单”第40名
- 计算两个圆相交部分的面积
- opencv读取realsense
- 安装rabbitMq报错:error: unpacking of archive failed on file /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.9
- 华为鸿蒙OS2.0:为中国的软件行业种“根”