数学实验课MATLAB实验报告二(题目+代码)

这篇具有很好参考价值的文章主要介绍了数学实验课MATLAB实验报告二(题目+代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

2022年10月21日晴转多云转晴然后黑天了,不冷。今天有一件要紧的事要做,但我就是要先写完这个再去做。

1.(1)

题目

解微分方程
{ d 3 y d x 3 = ( d 2 y d x 2 − 1 ) 2 − d y d x − y 2 , y ( 0 ) = 0 , y ′ ( 0 ) = 1 , y ′ ′ ( 0 ) = − 1. \begin{cases} \dfrac{d^3y}{dx^3}=(\dfrac{d^2y}{dx^2}-1)^2-\dfrac{dy}{dx}-y^2, \\y(0)=0,y'(0)=1,y''(0)=-1. \end{cases} dx3d3y=(dx2d2y1)2dxdyy2,y(0)=0,y(0)=1,y′′(0)=1.
(考虑 x ∈ [ 0 , 20 ] x\in[0,20] x[0,20],画出数值解及其一阶、二阶导数曲线图形).

代码

高阶微分方程,先化成一阶微分方程组,再求解。
y 1 = y , y 2 = y ′ , y 3 = y ′ ′ y_1=y,y_2=y',y_3=y'' y1=y,y2=y,y3=y′′,则原方程化为方程组
{ y 1 ′ = y 2 , y 2 ′ = y 3 , y 3 ′ = ( y 3 − 1 ) 2 − y 2 − y 1 2 , y 1 ( 0 ) = 0 , y 2 ( 0 ) = 1 , y 3 ( 0 ) = − 1. \begin{cases} y_1'=y_2, \\y_2'=y_3, \\y_3'=(y_3-1)^2-y_2-y_1^2, \\y_1(0)=0,y_2(0)=1,y_3(0)=-1. \end{cases} y1=y2,y2=y3,y3=(y31)2y2y12,y1(0)=0,y2(0)=1,y3(0)=1.
所以在编写函数脚本文件时,要写成下面这样。

function dy=f1(t,y)
dy=[y(2);y(3);(y(3)-1).^2-y(2)-y(1).^2];
end

将上面的代码保存为f1.m。其中y是一个三列的向量,分量1为 y 1 y_1 y1,分量2为 y 2 y_2 y2,分量3为 y 3 y_3 y3。下面我们就要在ode45中调用f1啦:

[T,y]=ode45('f1',[0 20],[0 1 -1]);
plot(T,y(:,1),'-',T,y(:,2),'o',T,y(:,3),'x')

代码中[0 20]中的0是初值条件中的初值点,后面的[0 1 -1]是初值条件。画出的图像如下:
数学实验课MATLAB实验报告二(题目+代码)

1.(2)

题目


{ d y d x = − 0.01 y − 99.99 z , d z d x = − 100 z , y ( 0 ) = 2 , z ( 0 ) = 1. \begin{cases} \dfrac{dy}{dx}=-0.01y-99.99z, \\ \dfrac{dz}{dx}=-100z, \\y(0)=2,z(0)=1. \end{cases} dxdy=0.01y99.99z,dxdz=100z,y(0)=2,z(0)=1.
的数值解,并画出数值解的图像。

代码

一样的,令 y 1 = y , y 2 = z y_1=y,y_2=z y1=y,y2=z,则有
{ y 1 ′ = − 0.01 y 1 − 99.99 y 2 , y 2 ′ = − 100 y 2 , y 1 ( 0 ) = 2 , y 2 ( 0 ) = 1. \begin{cases} y_1'=-0.01y_1-99.99y_2, \\y_2'=-100y_2, \\y_1(0)=2,y_2(0)=1. \end{cases} y1=0.01y199.99y2,y2=100y2,y1(0)=2,y2(0)=1.

function dy=f2(t,y)
dy=[-0.01*y(1)-99.99*y(2);-100*y(2)];
end

将上面这个代码保存为f2.m。调用:

[T,y]=ode45('f2',[0 500],[2 1]);
plot(T,y(:,1),'-',T,y(:,2),'.')

刚开始画的区间是0到20,但是很丑,很怪,不断调整区间,最终觉得0到500画出来的图还能入眼:
数学实验课MATLAB实验报告二(题目+代码)

1.(3)

题目

求下列方程的通解及特解。
{ x 2 y ′ ′ + x y ′ + ( x 2 − 1 4 ) y = 0 , y ( π 2 ) = 2 , y ′ ( π 2 ) = − 2 π . \begin{cases} x^2y''+xy'+(x^2-\dfrac{1}{4})y=0, \\y(\dfrac{\pi}{2})=2,y'(\dfrac{\pi}{2})=-\dfrac{2}{\pi}. \end{cases} x2y′′+xy+(x241)y=0,y(2π)=2,y(2π)=π2.

代码

%求通解
y=dsolve('x.^2*D2y+x*Dy+(x.^2-1/4)*y=0','x');
disp('通解')
disp('y=')
pretty(y)
%求特解
y0=dsolve('x.^2*D2y+x*Dy+(x.^2-1/4)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x');
disp('特解')
disp('y0=')
pretty(y0)

dsolve求解。求通解不需要写初值,求特解时要写初值。结果如下:
数学实验课MATLAB实验报告二(题目+代码)
数学实验课MATLAB实验报告二(题目+代码)

1.(4)

题目

已知 y ( 0 ) = − 0.2 , y ′ ( 0 ) = − 0.7 y(0)=-0.2,y'(0)=-0.7 y(0)=0.2,y(0)=0.7用数值方法求 V a n   d e r   P o l Van\ der\ Pol Van der Pol方程 y ′ ′ + μ ( y 2 − 1 ) y ′ + y = 0 y''+\mu(y^2-1)y'+y=0 y′′+μ(y21)y+y=0的解,并画出当 μ = 1000 \mu=1000 μ=1000时的图像。

代码

倦了。。。令 y 1 = y , y 2 = y ′ y_1=y,y_2=y' y1=y,y2=y。So easy!!!

function dy=vdp1000(t,y)
dy=[y(2);-1000*(y(1).^2-1)*y(2)-y(1)];
end

保存为vdp1000.m。。。

[T,Y]=ode45('vdp1000',[0 0.05],[-0.2;-0.7]);
plot(T,Y(:,1),'-');
title('$Solution\ of\ van\ der\ Pol\ Equation,\mu=1000$','interpreter','latex');

哦,这里注意一下,最开始我给的区间是0到20,画出来的图巨丑,后来发现它就这么点好看的地方,我就把区间改成0到0.05咯。结果:
数学实验课MATLAB实验报告二(题目+代码)

2.

题目

凶杀案作案时间问题:受害者的尸体于晚上7:30被发现,法医于晚上8:20赶到凶案现场,测得尸体温度为32.6℃;一小时后,当尸体即将被抬走时,测得尸体温度为31.4℃,室温在几个小时内始终保持21.1℃。此案最大的嫌疑犯张某声称自己是无罪的,并有证人说:“下午张某一直在办公室上班,5:00时打完电话后就离开了办公室”。从张某到受害者家(凶案现场)步行需5分钟,现在的问题是,张某不在凶案现场的证言能否被采信,使他排除在嫌疑犯之外。(提示:1、Newton冷却定理告诉我们“物体在介质中冷却速度同该物体温度与介质温度之差成正比” 2、自己假设人体的正常体温的温度值;3、求解非线性方程的MATLAB命令有fzero,solve

代码

这个题目我们要求的是受害者死亡的时刻 t 0 t_0 t0
首先介绍一下,%%在脚本文件中是分节符。在第一节,我们把体温随时间变化的关系式解出来了。将第一次测温的8:20作为0时刻,求解即可。运行第一节,我们得到关系式为 T = 23 e k t 2 + 211 10 T=\dfrac{23e^{kt}}{2} + \dfrac{211}{10} T=223ekt+10211
在第二节中,使用一小时后9:20的条件解出 k k k 的值。这里选择时间 t t t 的单位为小时,故 t = 1 t=1 t=1,用solve解非线性方程即可,解出 k k k 的值赋给 k 0 k_0 k0
下面利用得到的特解 T = 23 e k 0 t 2 + 211 10 T=\dfrac{23e^{k_0t}}{2} + \dfrac{211}{10} T=223ek0t+10211求温度 T = 37 T=37 T=37 的时间 t 0 t_0 t0。为什么体温是37呢?因为人受到惊吓时体温会上升那么一丢丢。

%%求解温度变化曲线
clc,clear
T=dsolve('DT-k*(T-21.1)=0','T(0)=32.6','t')
%%
syms k
k0=solve((23*exp(k))/2 + 211/10-31.4==0);
syms t
t0=solve((23*exp(k0*t))/2 + 211/10-37==0);
time=8+1/3-ceil(abs(t0))+mod(t0,1);
a=sprintf('%d',floor(time));%时
b=sprintf('%d',floor(mod(time,1)*60));%分钟
disp(['案发时间为' a ':' b '左右'])

代码到time=…之前就已经把题目求解完了,后面只是将输出结果美化。blingbling美美哒的结果:
数学实验课MATLAB实验报告二(题目+代码)
心机之蛙一直摸你肚子!案发时间是5:23左右,那么张某的嫌疑就无法排除了。

总结

妹想到这么快又摸MATLAB了…心碎。随便做了做,若有错误请指正(抱拳)(充满侠气地离开)。文章来源地址https://www.toymoban.com/news/detail-479788.html

到了这里,关于数学实验课MATLAB实验报告二(题目+代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022 年数学建模竞赛题目A 题波浪能最大输出功率设计(解析及Matlab代码)

    目录 问题一: 问题二: 问题三: 问题四: 随着经济和社会的发展,人类面临能源需求和环境污染的双重挑战,发展可再生能源产业 已成为世界各国的共识。波浪能作为一种重要的海洋可再生能源,分布广泛,储量丰富,具有 可观的应用前景。波浪能装置的能量转换效率是波浪

    2024年02月13日
    浏览(46)
  • 全国大学生数字建模竞赛、中国研究生数学建模竞赛(数学建模与计算实验)前言

    1.什么是数学建模 2.所需要学的知识,知识算法分类表格汇总 3.所需要的软件工具 4.论文模板,查找文献,查找数据   全国大学生数字建模竞赛(National College Student Mathematical Modeling Contest)是中国的一项全国性大学生竞赛活动,旨在 提高大学生的数学建模能力和创新思维,

    2024年02月15日
    浏览(55)
  • 《离散数学》实验报告HEBUT

    《离散数学》是现代数学的一个重要分支,是计算机科学与技术专业的基础理论课,也是该专业的核心课程和主干课程。“离散数学”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。该课程一方面为后继课程如数据结构、编绎原理、操作

    2024年02月09日
    浏览(62)
  • Matlab数学建模实验题

    (1)用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头。 (2)有一个4×5矩阵,编程求出其最大值及其所处的位置. (3)编程求 (4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹有多高? (

    2024年02月11日
    浏览(53)
  • 2023南京邮电大学通达学院《数学实验》MATLAB实验答案

    四月维夏,六月徂暑。 勤将励勉,勿望再晨。 ——赠nmy 南京邮电大学通达学院《数学实验》MATLAB实验答案 答案更新时间:2023.04.28,修改了4.2的存疑部分。已更新完成,如无错误不在更新 为了方便核算,我在代码中单独将 m 定义为自变量运算或者直接以m=117代入,作业中可以

    2023年04月20日
    浏览(114)
  • 过控Matlab-实验法建立被控过程的数学模型(一)

    太原理工大学过程控制实验之实验法建立被控过程的数学模型 已知某液位对象,在阶跃扰动量△u(t)=20%时,其响应的试验数据如表1.1: 若将该液位对象近似为一阶惯性环节加纯迟延,试利用作图法确定其增益 K、时间常数 T和纯迟延时间τ。 液位对象在阶跃扰动量△u(t)=20%时响

    2024年02月07日
    浏览(29)
  • 实现蛋糕商城购物车功能代码实现实验报告

    一、实验目的 1、熟悉HttpSession接口中常用方法 2、熟悉Session 对象的生命周期 3、熟悉两种方法返回与当前请求相关的HttpSession对象。 4、学会如何使用Session 技术模拟用户登录的功能 二、实验内容 实现购物车 1、在chapler05 项目下新建一个名称为 cn.itcast.session.entity 的包,在该

    2024年02月09日
    浏览(45)
  • Python爬虫期末设计(内含源代码及实验报告)

    1. 爬取一章小说内容 2. 爬取一本小说内容 3. 实现搜索作者或者小说名字 进行下载说 4. 把程序打包成exe软件 1. 发送请求 #         确定发送请求的url地址 我们请求网址是什么 #         确定发送请求的方式是什么 get请求 post请求 #         headers 请求参数    2.

    2024年02月10日
    浏览(39)
  • C语言刷题中遇到的一些很看重数学逻辑的题目(代码很简单,但是逻辑确实异曲同工)

    这一题的关键就是flat1和flat2两个变量的设立 flat1判断整个序列是否升序,比较相邻两个数,如果前者小于后者,则将flat1赋值为1 flat2判断整个序列是否升序,比较相邻两个数,如果前者大于后者,则将flat1赋值为1 然而整个序列有序的条件就是相邻的两个数一直是前者大于后

    2024年02月13日
    浏览(91)
  • 算法、数据结构、计算机系统、数据库MYSQL、概率论、数学实验MATLAB、数学建模、马原、英语、杂项、QT项目

    可以三个条件 以此类推 (condition1)?x:(condition2)?y:z string变成int int 变成string 可以用循环 模运算展开式推导 我们要证明等式: (a * b) mod m = ((a mod m) * (b mod m)) mod m 假设 a = q1 * m + r1 ,其中 q1 是 a 除以 m 的商, r1 是 a 除以 m 的余数。类似地,假设 b = q2 * m + r2 ,其中

    2024年02月08日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包