博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《matlab揭秘》求极限,导数,微分方程,积分笔记
阅读量:2429 次
发布时间:2019-05-10

本文共 1768 字,大约阅读时间需要 5 分钟。

第六章基本符号演算和微分方程

主要内容:

  • 计算极限
  • 求导数
  • 求常微分方程(ODE)的解析解和数值解
  • 求积分
计算极限

命令一般形式:limit(f,m,direction)

f : 需要计算极限的表达式,f中的变量必须使用syms定义,否则会因为无法识别而报错
m: 指明计算f趋近于m时的极限,如果不填,默认是0
direction: 是一个字符串,值有’left’,'right’和不填 ,分别代表求左极限,右极限,和默认求极限

计算导数

命令:diff(f,n)

f : 需要求的原函数 ,必须将变量声明为 syms
n : 要求的几阶导

解常微分方程的解析解

命令一般形式:dsolve(f1,f2,…fn,‘cond1’,‘cond2’,…‘condn’)

fn : 一个字符串, 内容是方程的表达式 ,
f1到fn 表示求解方程组
condn : 字符串,内容是初始条件的表达式

例:

这里写图片描述
dsolve(‘Dy = y*t/(t-5)’,‘y(0)=2’);
二阶导用 D2表示

注意 默认地,dsolve 使用 t 作为独立变量。我们可以告诉它使用其它变量——在命令行的 末尾附带上我们要使用的独立变量

解常微分方程的数值解

这个需要说明解析解和数值解的区别:

解析解意思是解可以用表达式具体的写出来,而数值解是只能得到点对,无法得到解析式,因为不是所有的常微分方程都有解析解,大部分只能得到数值解

解数值解用到的命令是

ode23()和ode45()两种
这两个函数都使用(龙格-库塔)法来数值解,区别是ode45比ode23阶数更高,对应的ode45的精度也比ode23高
两个函数的调用方式完全相同
[t,y] = ode23(‘func_name’, [start_time, end_time], y(0))
func_name 是在单独的.m文件中定义的方程函数
[start_time, end_time] 是求解区间
y(0)是初值

如果要求解二阶的常微分方程,需要将二阶方程通过换元转换为一阶方程组

% 例如 求方程 y'' + 16y = sin(4.3t)当 y(0) = y'(0) = 0 时的解。% 换元:令x1 = y;% x2 = y';% 定义微分方程函数	%创建数组储存数据	xdot = zerot(2,1);	% 列方程组	xdot(2) = sin(4.3*t)-16*x(1);	xdot(1) = x(2);	% 调用函数	[t,x] = ode23('fun',[0 2*PI],[0,0]); 	% x(:,1) 是 y 的解	% x(:,2) 是 y' 的解	plot(t,x(:,1)); % 画出数值解的图像
求积分

一般形式的命令:

int(f,v)
f 需要求积分的表达式,可以是字符串,也可以是变量表达式
v(可选) 是指定的变量,如果表达式中有多个变元,没有指定时会默认其中的一个符号为变量
注意matlab给出的积分省略了常数部分,在写结果时需要加上

求定积分

一般形式的命令:

int(f,v,end,start)
f : 同求积分
v: 同求积分
end 定积分的上界
start 定积分的下界
注意这里的上下界的顺序

求多重积分

int()命令可以进行嵌套,即在单重积分的基础上嵌套int命令就可以求多重积分

求数值积分

数值积分是指已知了数值,但是没有关系式

使用命令: trapz(x,y)

例:计算这里写图片描述

x = linspace(0,2,10); % 将区间[0,2]分成10等份
f = x.^2;
trapz(x,f); % 就得到了积分结果
% 相对于int()求定积分存在一定的误差

求正交积分

使用命令quad()和quadl()都可以,使用方法同int()

美化表达式的显示

命令:pretty(f) 可以将表达式展示成日常手写的形式,方便观察

f: 需要美化的表达式

设置多个图的属性

设置属性的命令是 set(h,key,value)

h 是一个指针,指向图的实例
那么如何获得图的对象呢?
就需要使用 get(gca,'children')命令了
返回的是一个数组,元素是每一个图对象,这样就可以指定每一个图的属性了,比如颜色,线条等

你可能感兴趣的文章
Web 全栈全端技术体系与软件四层结构-CSDN公开课-专题视频课程
查看>>
AI学习挑战直播课:成功案例分享及行业趋势分析-CSDN公开课-专题视频课程
查看>>
【UI/UE设计师】banner设计原则-CSDN公开课-专题视频课程
查看>>
大数据智能:金融行业用户画像实践教程-CSDN公开课-专题视频课程
查看>>
自然语言处理实战——LSTM情感分析-CSDN公开课-专题视频课程
查看>>
Gin使用的json包
查看>>
Gin的路由
查看>>
golang函数传参中可变参数和切片相互转化
查看>>
如何安全地退出goroutine
查看>>
context.Context
查看>>
优先队列
查看>>
redis深度历险学习笔记--基础与应用篇
查看>>
单链表翻转
查看>>
检查表达式中的括号是否匹配
查看>>
一道关于 goroutine 的面试题
查看>>
信号量的使用方法
查看>>
Redis 缓存穿透、击穿、雪崩
查看>>
RabbitMQ(1): docker-compose安装rabbitmq及简单使用Hello World
查看>>
leetcode 525. 连续数组
查看>>
利用序列化实现对象的拷贝
查看>>