检验函数
众所周知,在处理一些比较复杂的函数时,经常需要担心在将函数转换成matlab代码时会不会打错,如下面这个。
syms n1 x1 c1 c2 x2 n2 m21 m12 %声明变量
y=log(n1/(x1*n1+x2*n2*m21))+x2*((n2*m21)/(x1*n1+x2*n2*m21)-(n1*m12)/(x2*n2+x2*n1*m12)) ...
-(x2^2/2)*((c1*m21^2*log(m21))/(x1+x2*m21)^2-(c2*m12*log(m12)/(x2*n2+x1*n1*m12)^2))
% 若使用latex()可以转换为latex代码
Y=latex(y)
但似乎看起来更复杂了,但可以用如下的办法
str=[\'$\' Y \'$\'] %必须前后加 \'$\'
figure1 = figure(\'Color\',[1 1 1]); %创建窗口
axes1 = axes(\'Parent\',figure1,\'Position\',[0.13 0.11 0.8 0.8]); %创建笛卡尔坐标轴
axis off
hold(axes1,\'on\'); %添加绘图
text(\'Parent\',axes1,\'FontSize\',16,\'FontName\',\'Times New Roman\',\'Interpreter\',\'latex\',\'String\',str,\'Position\',[-0.0829467939972715 0.339583333333333 0],\'Visible\',\'on\');
set(axes1,\'FontName\',\'Times New Roman\',\'FontSize\',14,\'FontWeight\',\'bold\');
虽然上面的看起来挺复杂的,但大部分都是不重要的,重要的是latex解释器
title([\'$\' latex(f) \'$\'],\'Interpreter\',\'latex\')
如果方程过多,有时还需要检查函数名称是否冲突
exist checkname
若是0则说明没有冲突。
求和
syms n
symsum((-1)^n*0.5^n/n,n,1,inf)
%输出结果
ans =
-log(3/2)
自动输出公式
1工具箱确定函数形式;2p=polyfit(x,y,n)求系数;3 y=ploy2sym(p);
X=linspace(0.12,1,50);x=1./X;y=(x.^4.*exp(x))./(exp(x)-1).^2;
p=polyfit(x,y,5);
f=poly2sym(p)
# 输出结果
f =
- (7818024459947303*x^5)/2305843009213693952 + (6155067065834809*x^4)/72057594037927936 - (1694715688677703*x^3)/2251799813685248 + (5570666957581787*x^2)/2251799813685248 - (6080212468662527*x)/4503599627370496 + 4204837723286035/9007199254740992
未完待续。。。。
文档指路
初等数学
- 算术运算
加、减、乘、除、幂、四舍五入 - 三角学
结果以弧度或度为单位的正弦、余弦和相关函数 - 指数和对数
指数、对数、幂和根函数 - 复数
实部和虚部、相位角度 - 离散数学
质因数、阶乘、排列、有理分式、最小公倍数、最大公约数 - 多项式
曲线拟合、根、部分分式展开 - 特殊函数
Bessel、Legendre、椭圆、误差、gamma 和其他函数 - 常量和测试矩阵
Pi、非数、无限数;Hadamard 矩阵、伴随矩阵、帕斯卡矩阵和其他专用矩阵
线性代数
矩阵的创建和基本运算。
解算多种类型的线性方程组。
特征值和特征向量的计算。
奇异值分解 (SVD)。
常用矩阵分解(Cholesky、LU、QR)。
此示例说明 19 种矩阵指数计算方法中的 3 种。
使用 chol
和 eig
来确定矩阵是否为对称正定矩阵(特征值全为正的对称矩阵)。
LAPACK 为 MATLAB 中的线性代数函数和矩阵计算提供了基础例程。
随机数生成
使用 rand
、randi
、randn
和 randperm
创建随机数数组。
此示例说明如何基于特定区间内的均匀分布创建随机浮点数组。
此示例说明如何基于特定数字集的离散均匀分布创建随机整数值数组。
此示例说明如何基于具有指定均值和方差的正态分布创建随机浮点数组。
此示例说明如何在球体内创建随机点。
避免在 MATLAB® 重新启动时重复随机数数组。
取代不建议使用的 rand
和 randn
语法。
控制随机数生成
此示例说明如何使用 rng
函数,该函数针对随机数的生成提供控制。
本示例显示如何通过首先指定种子来重复生成随机数数组。每次使用相同种子初始化生成器时,始终都可以获得相同的结果。
本示例显示在 MATLAB 重新启动时如何避免重复生成相同的随机数数组。
控制随机数的多流和子流
本主题说明如何使用 RandStream
构造函数来控制随机数的生成。
本示例使用 RandStream
创建多个独立的随机数流。
本主题使用 RandStream
创建随机数流和子流。
插值
网格和散点数据集插值简介。
固定间隔的轴对齐数据集插值。
使用 scatteredInterpolant
内插散点数据。
优化
求一个或多个维度中的最小值和最大值。
此示例说明如何通过最大限度地减小误差平方和来使用非线性函数对数据进行拟合。
控制优化,显示中间计算。
获取中间输出。
描述如何监视或停止求解器。
描述如何直观地监视求解器。
fzero
函数尝试求一个一元方程的根。可以通过用于指定起始区间的单元素起点或双元素向量调用该函数。如果为 fzero
提供起点 x0
,fzero
将首先搜索函数更改符号的点周围的区间。如果找到该区间,fzero
返回函数更改符号的位置附近的值。如果未找到此类区间,fzero
返回 NaN
。或者,如果知道函数值的符号不同的两个点,可以使用双元素向量指定该起始区间;fzero
保证缩小该区间并返回符号更改处附近的值。
如何解决常见问题。
数值积分和微分方程
- 常微分方程
常微分方程的初始值问题求解器 - 边界值问题
常微分方程的边界值问题求解器 - 时滞微分方程
时滞微分方程的初始值问题求解器 - 一维偏微分方程
抛物线和椭圆 PDE 的一维求解器 - 数值积分和微分
求积、二重积分和三重积分以及多维导数
傅里叶分析和滤波
傅里叶变换是用于在许多应用中分析数据的强大工具,包括用于信号处理的傅里叶分析。
使用傅里叶变换对时域信号进行频率和功率谱分析。
将二维光学数据变换为频率空间。
使用卷积对含噪二维数据进行平滑处理。
滤波是一种数据处理技术,用于使数据平滑或修改特定数据特性(例如信号振幅)。
稀疏矩阵
将稀疏数据存储为矩阵。
稀疏矩阵相对满矩阵的优点。
稀疏数据的索引和可视化。
稀疏矩阵的重新排序、分解和计算。
此示例说明对稀疏矩阵的各行和列重新排序可能会影响矩阵运算所需的速度和存储空间要求。
此示例说明稀疏矩阵的应用并解释了图形与矩阵之间的关系。
图和网络算法
有向图和无向图简介。
此示例说明稀疏矩阵的应用并解释了图形与矩阵之间的关系。
此示例演示如何使用 addedge
、rmedge
、addnode
、rmnode
、findedge
、findnode
及 subgraph
函数访问和修改 graph
或 digraph
对象中的节点和/或边。
此示例演示如何向使用 graph
和 digraph
创建的图中的节点和边添加属性。当您最初调用 graph
或 digraph
来创建图时,可以指定节点名称或边权重。但是,此示例演示了如何在创建图后向图添加属性。
此示例演示如何绘制图,然后自定义显示内容以向图节点和边添加标签或高亮显示。
此示例说明如何在图节点和图边上添加和自定义标签。
此示例说明如何自定义 GraphPlot
数据游标,以显示图的额外节点属性。
此示例说明如何定义这样的函数:该函数通过突出显示图的节点和边来显示 bfsearch
和 dfsearch
的可视化结果。
计算几何学
- 三角剖分表示法
表示三角剖分并与之交互 - Delaunay 三角剖分
表示 Delaunay 三角剖分并与之交互 - 空间搜索
基于三角剖分的最近邻和点位置搜索 - 边界区域
计算凸包、阿尔法形状或点周围的边界 - Voronoi 图
计算和绘制 Voronoi 图 - 基础多边形
多边形函数
深度学习
Deep Learning Toolbox 基础知识学习
从头开始训练卷积神经网络或使用预训练的网络快速学习新任务
创建和训练用于时序分类、回归和预测任务的网络
绘制训练进度、评估准确度、进行预测、调整训练选项以及将网络学习的特征可视化
在本地使用多个 GPU 或在云中扩展深度学习,并以交互方式或批处理作业的形式训练多个网络
扩展深度学习工作流在计算机视觉、图像处理、自动驾驶和信号上的应用
导入和导出网络并定义自定义深度学习层和数据存储
生成 CUDA® 和 C++ 代码并部署深度学习网络
使用浅层神经网络执行回归、分类和聚类
使用浅层网络对非线性动态系统建模;使用顺序数据进行预测。
请发表评论