数学实验第三版(主编:李继成 赵小艳)课后练习答案(十二)(3)

实验十二:微分方程模型

练习三

1.分别用数值解命令ode23t和ode45 计算示例3中微分方程的数值解,同用命令ode23 算得的数值解以及解析解比较,哪种方法精度较高?你用什么方法比较它们之间的精度?

clc;clear;
f=@(x,y)2*y+x+2;
figure(1)
[x,y]=ode23t(f,[1,2],1);
plot(x,y,'r');
[x,yy]=ode45(f,[1,2],1);
hold on
plot(x,yy,'b');
legend('ode23t','ode45');
[x,yyy]=ode23(f,[1,2],1);
figure(2)
plot(x,yyy);
syms y(x)
h=diff(y)==2*y+x+2;
hh=dsolve(h,y(0)==1);
hold on
ezplot(hh,[0,1]);
legend('数值解ode23','解析解');

由上图我们可以发现,ode23所得到的数值解和解析解相差还是比较大的,而ode23t和ode45得到的数值解相差较小。

2.分别用命令ode23,ode23t和ode45求贝塞尔方程的数值解,并作出数值解曲线.

我们首先要将此微分方程改写为一阶方程(因为ode类函数只能解一阶可分离函数):

y'=z ,则原方程化为:

初值条件为:

clc;clear;
f=@(x,m)[m(2);-m(2)/x-(1-(0.025/x^2)*m(1))];
[x,y]=ode23(f,[pi/2,2*pi],[2,2/pi]);
[xx,yy]=ode23t(f,[pi/2,2*pi],[2,2/pi]);
[xxx,yyy]=ode45(f,[pi/2,2*pi],[2,2/pi]);
figure(1)
plot(x,y);
figure(2)
plot(xx,yy);
figure(3)
plot(xxx,yyy);

x =

    1.5708

    1.6076

    1.7914

    2.0028

    2.2100

    2.3759

    2.6091

    2.9289

    3.3577

    3.8289

    4.3001

    4.7714

    5.2426

    5.7139

    6.1851

    6.2832

y =

    2.0000    0.6366

    2.0225    0.5864

    2.1086    0.3549

    2.1583    0.1202

    2.1615   -0.0861

    2.1345   -0.2387

    2.0552   -0.4382

    1.8743   -0.6907

    1.5104   -1.0022

    0.9625   -1.3201

    0.2691   -1.6204

   -0.5627   -1.9084

   -1.5280   -2.1874

   -2.6232   -2.4596

   -3.8453   -2.7265

   -4.1155   -2.7815

xx =

    1.5708

    1.5944

    1.6415

    1.6887

    1.7479

    1.8522

    1.9564

    2.0607

    2.1280

    2.1953

    2.2626

    2.3602

    2.4785

    2.6247

    2.7709

    2.9705

    3.1701

    3.4413

    3.7126

    4.0812

    4.4497

    4.8183

    5.1869

    5.6581

    6.1294

    6.2832

yy =

    2.0000    0.6366

    2.0143    0.6046

    2.0413    0.5416

    2.0654    0.4809

    2.0917    0.4073

    2.1278    0.2846

    2.1514    0.1694

    2.1634    0.0605

    2.1652   -0.0069

    2.1625   -0.0722

    2.1556   -0.1356

    2.1380   -0.2247

    2.1052   -0.3284

    2.0483   -0.4512

    1.9737   -0.5688

    1.8448   -0.7225

    1.6859   -0.8695

    1.4242   -1.0608

    1.1116   -1.2441

    0.6089   -1.4833

    0.0198   -1.7138

   -0.6531   -1.9374

   -1.4074   -2.1556

   -2.4875   -2.4285

   -3.6949   -2.6960

   -4.1163   -2.7823

xxx =

    1.5708

    1.5939

    1.6170

    1.6401

    1.6632

    1.7786

    1.8941

    2.0095

    2.1250

    2.2428

    2.3606

    2.4784

    2.5962

    2.7140

    2.8319

    2.9497

    3.0675

    3.1853

    3.3031

    3.4209

    3.5387

    3.6565

    3.7743

    3.8921

    4.0100

    4.1278

    4.2456

    4.3634

    4.4812

    4.5990

    4.7168

    4.8346

    4.9524

    5.0702

    5.1880

    5.3059

    5.4237

    5.5415

    5.6593

    5.7771

    5.8949

    5.9920

    6.0890

    6.1861

    6.2832

yyy =

    2.0000    0.6366

    2.0143    0.6049

    2.0279    0.5738

    2.0408    0.5432

    2.0530    0.5132

    2.1039    0.3701

    2.1389    0.2374

    2.1591    0.1132

    2.1653   -0.0038

    2.1581   -0.1171

    2.1379   -0.2249

    2.1053   -0.3282

    2.0608   -0.4275

    2.0047   -0.5234

    1.9376   -0.6162

    1.8596   -0.7064

    1.7712   -0.7942

    1.6726   -0.8800

    1.5640   -0.9639

    1.4455   -1.0461

    1.3175   -1.1268

    1.1801   -1.2061

    1.0334   -1.2842

    0.8776   -1.3612

    0.7127   -1.4371

    0.5390   -1.5121

    0.3565   -1.5862

    0.1653   -1.6596

   -0.0345   -1.7322

   -0.2428   -1.8042

   -0.4596   -1.8755

   -0.6847   -1.9462

   -0.9181   -2.0164

   -1.1598   -2.0861

   -1.4097   -2.1554

   -1.6676   -2.2242

   -1.9337   -2.2926

   -2.2078   -2.3606

   -2.4899   -2.4283

   -2.7799   -2.4956

   -3.0779   -2.5626

   -3.3293   -2.6176

   -3.5861   -2.6724

   -3.8481   -2.7270

   -4.1155   -2.7814

此题要学会微分方程组该如何去解决。

3.17世纪末至18世纪初,牛顿发现在较小的温度范围内,物体冷却速率正比于该物体与环境温度的差值,因而得冷却模型

式中T(t)为物体t时刻的温度,C是环境温度,为正的常数,T0为物体在=0时刻的温度,其解为

根据该冷却模型,完成下面的实验任务:

(1)某天晚上23:00时,在一住宅内发现一受害者的尸体,法医于23:35 赶到现场,立即测量死者体温是30.8℃,一小时后再次测量体温为29.1℃,法医还注意到当时室温是28℃,试估计受害者的死亡时间.

clc;clear;
format long
syms k m
f=@(t)9*exp(-k*t)+28;
f(m+35),f(m+95)
% 9*exp(-k*(m + 35)) + 28
% 9*exp(-k*(m + 95)) + 28
fsolve('fun',[1,5])
function f=fun(x)
f(1)=9*exp(-x(1)*(x(2) + 35)) + 28;
f(2)=9*exp(-x(1)*(x(2) + 95)) + 28;
end

ans =

     4     3

由此可知,尸体的死亡时间为11:57.

(2)一个煮熟的鸡蛋在温度为98 ℃时放人温度为18℃的水中,5 min后鸡蛋的温度是 38℃,假设水的温度几乎没有升高,需要多长时间鸡蛋的温度可以达到20℃?

clc;clear;
format long
syms k m t
f=@(t)(98-18)*exp(-k*t)+18;
k=double(solve(f(5)==38));
k0=0.277258872223978;
f=@(t)(98-18)*exp(-k0*t)+18;
double(solve(f(t)==20))

ans =13.304820237218411;

4.承接此次实验中练习1的第2题,如图12.7所示.图中,两个容器完全相同,容器1排水孔的半径为0.02m,容器2排水孔的半径为0.01m,假如容器1装满水,容器2内水面的高度是1m,同时开启排水孔,完成下面的实验任务:

(1)经多长时间两个容器水面高度相同?

(2)求出容器2水面的高度与时间的函数关系,并求经多长时间容器2可以排空?

(3)在同一坐标系上画出两个容器内水面高度与时间的函数曲线进行比较.

(4)自己设定排水孔的半径与各容器的初始水位,将该容器排供水问题推广到n个容器的一般情况,建立一个简单的数学模型并求相关解.

我们假设水桶底面半径为1m,桶高4m;

clc;clear; 
format short
m=4;r=1;
syms h(t) k
m1=-r^2*pi*diff(h)==k*sqrt(h)*pi*0.02^2;
h1=dsolve(m1,h(0)==m);
k=4.43;
h1=eval(h1(2))
%h1=((443*t)/500000 - 2)^2;
m2=-r^2*diff(h)==0.02^2*k*(2-(443*t)/500000)-0.01^2*k*sqrt(h);
h2=dsolve(m2)
f=@(t)(t - 1000000/443)^2/((500*67823512885646425253349271511524613553^(1/2))/3620155077721425633 + 62500/443)^2;

此题未写完,感觉不是很清楚,还请高人指点。

推荐下一篇文章:

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十二)(4)icon-default.png?t=N7T8https://blog.csdn.net/2301_80199493/article/details/136136025?spm=1001.2014.3001.5501本文由作者自创,由于时间原因,难免出现些许错误,还请大家多多指正。创作不易,请大家多多支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/473879.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对称密钥密码体制、公钥密码体制

1 对称密钥密码体制 加密密钥与解密密钥都使用相同密钥的密码体制。 数据加密标准 DES DES 属于对称密钥密码体制,是一种分组密码。 在加密前,先对整个明文进行分组。每一个组长为 64 位。 然后对每一个 64 位 二进制数据进行加密处理,…

C++重新认知:智能指针

0/# 一、为什么要有智能指针 内存泄露是我们开发大型项目时最为头疼的问题,当我们将对象建立在堆上时,因为需要我们自己手动释放,因此避免不了忘记删除,或者删除时没有考虑清楚情况的问题,从而造成悬挂指针或者是野指针…

Sora技术报告——Video generation models as world simulators

文章目录 1. 视频生成模型,可以视为一个世界模拟器2. 技术内容2.1 将可视数据转换成patches2.2 视频压缩网络2.3 Spacetime Latent Patches2.4 Scaling transformers 用于视频生成2.5 可变的持续时间,分辨率,宽高比2.6 抽样的灵活性2.7 改进框…

【Linux】Framebuffer 应用

# 前置知识 LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。 Frame 是帧的意思, buffer 是缓冲的意思,这意味着 Framebuffer 就是一块内存,里面保存着一帧图像。 Framebuffer 中保存着一帧图像的每一个像素颜色值&…

4核8G服务器支持多少人同时在线访问?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

Unity类银河恶魔城学习记录7-7 P73 Setting sword type源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…

基于SringBoot+Vue的大学生社团管理系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 1.1 研究背景 1.…

C语言之日历问题

一、代码展示 #include<stdio.h> int leapyear(int year)//判断是不是闰年函数 {if (year % 4 0 && year % 100 ! 0 || year % 400 0)return 1;elsereturn 0; } int days(int year, int month, int* day)//判断一个月有几天 {if (month ! 2)return day[month…

如何在JavaScript中使用大于和小于运算符

在你的 JavaScript 程序中&#xff0c;你经常需要比较两个值&#xff0c;以确定一个是否大于另一个或小于另一个。这就是大于和小于运算符派上用场的地方。 在本文中&#xff0c;我们将通过代码示例更详细地介绍如何使用这些运算符。 &#xff08;本文内容参考&#xff1a;ja…

Acwing---875. 快速幂

快速幂 1.题目2.基本思想3.代码实现 1.题目 给定 n n n 组 a i ai ai, b i bi bi, p i pi pi&#xff0c;对于每组数据&#xff0c;求出 abii m o d mod mod pi 的值。 输入格式 第一行包含整数 n n n。 接下来 n n n 行&#xff0c;每行包含三个整数 a i ai ai, b i …

Leetcode-102. 二叉树的层序遍历

今天的情人节和树过了...... 题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[…

【机器学习笔记】 9 集成学习

集成学习方法概述 Bagging 从训练集中进行子抽样组成每个基模型所需要的子训练集&#xff0c;对所有基模型预测的结果进行综合产生最终的预测结果&#xff1a; 假设一个班级每个人的成绩都不太好&#xff0c;每个人单独做的考卷分数都不高&#xff0c;但每个人都把自己会做的…