数理方程及MATLAB解算学习笔记

文章目录

  • 数理方程及MATLAB解算学习笔记
    • 第一章 MATLAB基础知识
      • 1、class查询数值类型
      • 2、永久性数值变量
      • 3、创建特殊矩阵的专用指令
      • 4、基本初等函数及统计函数指令
      • 5、用syms指令定义符号变量
      • 6、符号矩阵
      • 7、求算与微积分有关的指令
        • ==1、级数求和指令symsum==
        • 2、一元函数的泰勒级数展开指令是taylor
        • 3、求函数极限的指令为limit
        • 4、求导数的指令为diff
        • 5、求积分的指令为int
      • 8、求解一阶偏微分方程
      • 9、定义全局变量

第一章 MATLAB基础知识

1、class查询数值类型

​ class(a)

2、永久性数值变量

变量名 意义
pi 圆周率π
INF或Inf 正无穷大
ans 临时变量名
eps 机器浮点运算误差限(2.2204*10 -18 )
i或j 虚数单位,代表−1\sqrt{-1}−1​
NaN 不定值。如:00\frac{0}{0}00​,∞∞\frac{\infty}{\infty}∞∞​,0, ∞\infty∞

3、创建特殊矩阵的专用指令

指令格式 功能
flipud(a) 输出矩阵a上下翻转后的矩阵
fliplr(a) 输出矩阵a左右翻转后的矩阵
diag(a,k) 输出矩阵a的主对角线右移k列后构成的列向量。省略k时,视k=0
tril(a)(triu(a)) 输出矩阵a主对角线下(上)方元素构成的下(上)三角矩阵

4、基本初等函数及统计函数指令

指令 意义 指令 意义
log(x) ln(x) angle(x) 复数x的相角
log2(x) log2(x)_2(x)2​(x) cumsum(x) x列元素累加和
exp(x) ex^xx cumprod(x) x列元素累进积
sqrt(x) x\sqrt{x}x​(平方根) mean(x) x列元素平均值
sinh(x) 双曲正弦 shx prod(x) x列元素之积
sign(x) 数x的正负号 round(x) 输出x的四舍五入取整
real(x) x的实部 fix(x) 输出x靠近零的整数
imag(x) x的虚部 floor(x) 输出靠近-∞\infty∞的整数
abs(x) x绝对值或模 ceil(x) 输出靠近∞\infty∞的整数
nchoosek(m,n) m中选n的组合数CnmC^m_nCnm​ pord(m:n) m(m+1)···(n-1)n
sort(x) x列元素按升序重排 factorial(x) 输出x!
median(x) 输出x列元素的中间值 pow2(x) 输出2x2^x2x
rem(x1,x2) 输出x1./x2的余数 mod(x1,x2) 输出x2.\x1的余数
inv(x) x的绝对值 conj(x)

5、用syms指令定义符号变量

简单来说就是把一个式子定义成符号变量

用法1:sysm a1 a2 a3 … flag1

(1)输入参量a1,a2,a3,……只能是标识符,不得是数字、函数表达式或方程式。

(2)输入参量a1,a2,a3,…,flag1之间,只能用空格分隔,不得添加任何符号。

(3)输入参数flag1是规定被定义符号量属性的,称为属性符,它可跟据需要选用下述字符串之一:

代码 字符串类型
unreal 定义成复数型符号量
real 定义成实数型符号量
negative 定义成负实数型符号量
positive 定义成正实数型符号量
nonzero 定义成非零型符号量

真是一刻也不能松懈呀

也可用sym创建符号矩阵

用法2:sym(A)

输入参量A可以是数值矩阵、字符量矩阵、符号量表达式,也可以是方程。矩阵中两个元素之间最好用逗号分隔,以防对空格的误识别

6、符号矩阵

符号矩阵中的元素可以是任何的符号或者表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。

符号矩阵的替换和修改可用替换指令subs实现

用法:B1=subs(B,old,new)

(1)输入参量B代表符号矩阵中的单个元素或部分元素,叫符号矩阵的标识

(2)输出的符号矩阵B1为B中old部分被new代替后的矩阵

(3)old为元素位置

符号矩阵的简化可用simplify指令实现

用法:simplify(s)

s为符号矩阵

7、求算与微积分有关的指令

1、级数求和指令symsum

用法:symsum(s,n,n0,nk)

(1)输入参量s为级数通项的符号表达式,或由它们构成的符号矩阵。

(2)输入参量n是通项中被认定的项数变量,缺省n时默认为“x”。如果难以确认s表达式中的项数变量,可输入指令findsym(s)查询。

(3)n0和nk分别为首项和末项的序号。n0可以是小数,但步长总是1。缺省n0和nk时,默认n0=1,nk=n-1。

(4)回车后输出通项为s的级数从第n0项到第nk项之和。

例:求级数S∑n=0∞(−1)nxn+1n+1\sum_{n=0}^\infty(-1)^n\frac{x^{n+1}}{n+1}∑n=0∞​(−1)nn+1xn+1​

clear,syms x n
S=symsum((-1)^n*x^(n+1)/(n+1),n,0,inf)
2、一元函数的泰勒级数展开指令是taylor

用法:taylor(f,‘order’,n,‘ExpansionPoint’,a)

(1)输入参量f为待展开函数的符号表达式,或由它们构成的矩阵,f不得省略。

(2)输入参量n取正整数,代表级数的项数,输出是将f表达式展开成最高幂次为(n-1)的幂级数。

(3)输入参量x为指定的变量名称,如果没写的话就默认为x或t。如果f中只有一个变量时,可以省略指定变量名。

(4)输入参数a表示函数f(x)在x=a处展开,即展开成(x-a)的幂级数。

(5)缺a时默认a=0,函数在x=0处展开,即展开为麦克劳林级数。缺n时,默认级数的项数n=6,函数f(x)展开成x最高幂次为5的幂级数。

例:把函数f(x)=e−xe^{-x}e−x在x=10处展开,x的最高次项取为9。

clear,syms x
s = taylor(exp(-x),'order',9,'ExpansionPoint',10)
3、求函数极限的指令为limit

用法:limit(f,x,a,‘right’或’left’)

(1)f为函数f(x)或函数矩阵的符号表达式。

(2)输出为limx→af(x)lim_{x\rightarrow a}f(x)limx→a​f(x),省略a时,默认a=0。

(3)right为右极限,left为左极限,省略时表示左右极限相等。

(4)limit可以嵌套使用。

例:求极限limx→axm−amx−alim_{x\rightarrow a}\frac{\sqrt[m]{x}-\sqrt[m]{a}}{x-a}limx→a​x−amx​−ma​​

syms x m a
limit((x^(1/m)-a^(1/m))/(x-a),x,a)
4、求导数的指令为diff

用法:F=diff(f,'x’n)

(1)f为函数或函数矩阵的符号或字符表达式

(2)x为指定的函数求导自变量,缺省时默认为x或t。

(3)n为求导的阶数,缺省时默认n=1,此时输出f的一阶导函数。

(4)输出量F为函数f对变量x的n阶导函数。

若明确指出不同的求导自变量,则该指令可用于求多元函数的偏导数。

例:已知函数矩阵A(x)=(lna−xa+xarcsinx−1x+1x2x1−x)A(x)=\begin{pmatrix} ln\sqrt{\frac{a-x}{a+x}} & arcsin\frac{x-1}{x+1} \\ x^{2x} & \sqrt{1-x} &\end{pmatrix}A(x)=(lna+xa−x​​x2x​arcsinx+1x−1​1−x​​​),求出每个元素对x的二阶导数。

syms a x
A = [log(sqrt((a-x)/(a+x))),asin((x-1)/(x+1));x^(2*x),sqrt(1-x)];
A2=diff(A,2);
disp('A"(x)='),pretty(simplify(A2))

若要求出x=a时上述二阶导数的值,可用subs(A2,x,a)指令得出

例:设z=x2y−xy2z=x^2y-xy^2z=x2y−xy2,其中x=ucosvx=ucosvx=ucosv,y=usinvy=usinvy=usinv,求∂z∂v\frac{\partial{z}}{\partial{v}}∂v∂z​和∂z∂u\frac{\partial{z}}{\partial{u}}∂u∂z​。

下面代码有问题

syms x y z=x^2*y-x*y^2;
z1=subs(z,'x','u*cos(v)');
z2=subs(z1,'y','u*sin(v)');
o=diff(z2,'u')
5、求积分的指令为int

用法:s=int(f,x,a,b)

(1)f为被积函数的符号表达式,或其矩阵。

(2)x为积分变量,若被积函数中只有一个变量。则可以省略。

(3)a,b为定积分分别为定积分上下限,缺少时输出被积函数的原函数

(4)int指令可以嵌套多次使用,从而可用于计算多重积分。

例:计算定积分f(x)=∫0π33xydyf(x)=\int_{0}^{\frac{\pi}{3}}3x^ydyf(x)=∫03π​​3xydy

syms x y
s=int(3*x^y,y,0,pi/3)

例:求二重不定积分y(x,t)=∬t2e−2txdtdxy(x,t)=\iint{t^2e^{-2tx}dtdx}y(x,t)=∬t2e−2txdtdx.

syms t x c1 c2
y=int(int(t^2*exp(-3*t*x),t)+c1,x)+c2

例:计算广义积分S=∫−∞∞11+t2dtS=\int_{-\infty}^{\infty}\frac{1}{1+t^2}dtS=∫−∞∞​1+t21​dt。

syms t
S=int(1/(1+t^2),-inf,inf)

8、求解一阶偏微分方程

利用MATLAB中pdepe函数求解一般的偏微分方程组-百度经验 (baidu.com)

9、定义全局变量

global函数

用法

clc;clear
global a
a=5

数理方程及MATLAB解算学习笔记相关推荐

  1. matlab机器人工具箱学习笔记——ikine函数

    matlab机器人工具箱学习笔记--ikine函数 ikine函数用法 使用实例 链接: https://blog.csdn.net/weixin_42596724/article/details/8 ...

  2. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 --持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  3. comsol与matlab连接使用学习笔记 1 基础设置

    comsol与matlab连接使用学习笔记 1 基础设置 前言 1.安装 COMSOL livlink for Matlab 2.首次运行 前言 以前从来没有用过comsol livelink for ...

  4. 【Matlab 机器人工具箱 学习笔记】双旋转台5轴数控机床 运动学模型02

    参考: [1]何永红, 齐乐华, 赵宝林. 双转台五轴数控机床后置处理算法研究[J]. 制造技术与机床, 2006(1). [2]李永桥, 陈强, 谌永祥. 双转台五轴数控机床运动变换及求解方法的研究 ...

  5. MATLAB Simulink Statflow学习笔记

    MATLAB Simulink Statflow学习笔记 1.概述 在做算法设计时,会用到Statflow模块和MATLAB Function模块,我们可以在这里搭建自己需要的程序逻辑. (1) St ...

  6. 一维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_8】

    摘 要:混沌(Chaos)是指发生在确定系统中的貌似随机的不规则运动,本文将基于几种经典的一维动力学方程系统,根据其动力学方程研究其混沌产生过程以及相对应的MATLAB仿真. /*仅当作学习笔记,若有 ...

  7. 双时滞四维捕食网络的分析【基于matlab的动力学模型学习笔记_6】

    /*仅当作学习笔记,若有纰漏欢迎友好交流指正,此外若能提供一点帮助将会十分荣幸*/ 本系列谈论过单时滞,但还没提及过双时滞,本文将着重介绍一种双时滞系统并对其进行简单处理分析. 摘 要:本文针对一个捕 ...

  8. 基于Duffing系统的分数阶混沌研究【基于matlab的动力学模型学习笔记_5】

    /*仅当作学习笔记,若有纰漏欢迎友好交流指正,此外若能提供一点帮助将会十分荣幸*/ 前面的几篇博文我们提到提到的都是整数阶模型,这里我们将对分数阶模型进行一个简单的研究. 摘要:与整数阶混沌相比,分数 ...

  9. 二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

    摘 要:混沌(Chaos)是指发生在确定系统中的貌似随机的不规则运动,本文将基于经典的二维系统,然后根据动力学方程研究其混沌产生过程以及相对应的MATLAB仿真,再讨论Lyapunov指数以及正平衡点 ...

最新文章

  1. Python-CSS整理
  2. 进行将多张CAD图纸转换成高清WMF格式的操作是什么?
  3. python网络爬虫的基本步骤-Python网络爬虫与信息提取(一)(入门篇)
  4. 【Java多线程编程】典型的多线程同步例程
  5. Python打造一款多线程端口扫描器
  6. 支付宝APP支付(基于Java实现支付宝APP支付)
  7. C#提取网页中的超链接
  8. html5 iframe 属性,html中关于iframe的allowTransparency属性的详解
  9. 鲍鱼的“几头”是什么意思?什么样的好吃?
  10. python笔记03_IO编程
  11. python中execute函数_在excel中调用python函数
  12. Bitvise ssh client工具
  13. 计算机快捷键换行,excel换行快捷键 excel中自动换行的快捷键是什么
  14. 扫雷android设计思路,Flash扫雷游戏设计思路与步骤(4)
  15. 未来6英寸主战场,碳化硅-精密划片机
  16. java的h2是什么_什么是H2数据库
  17. windows系统的定时任务
  18. 惠普HP DeskJet Ink Advantage Ultra 4729 驱动
  19. 【Python刷题篇】——Python入门 011面向对象(二)
  20. python 获取Jenkins job数据

热门文章

  1. Javascript判断Maxthon浏览器
  2. 织梦dede免费小程序插件
  3. android 混淆和去除无用资源
  4. vcm服务器如何修改端口,产品技术-iMC VCM虚拟连接管理-新华三集团-H3C
  5. 别眨眼!AI通过自学秒解魔方,比人类纪录快两倍
  6. EFM32 LEUART
  7. python猫眼电影分析_Python 爬取猫眼电影《无名之辈》并对其进行数据分析
  8. 大肠杆菌发酵消泡剂处理多少泡沫难题减少了泡沫带来的影响!
  9. 怎样查看目标网站mysql地址_如何简单获取目标网站的数据库(暴库教程)
  10. Java-renameTo()失败原因总结