当前位置: 首页 > news >正文

matlab入门学习(四)多项式、符号函数、数据统计

一、多项式

%多项式(polynomial)%创建
p=[1,2,3,4] %系数向量,按x降幂排列,最右边是常数(x的0次幂)
f1=poly2str(p,'x') %系数向量->好看的字符串 f=' x^3 + 2 x^2 + 3 x + 4'(不能运算的式子,仅供查看)
f2=poly2sym(p) %系数向量->可用的符号函数 f=x^3 + 2*x^2 + 3*x + 4默认用x%求值
x=4;
y1=polyval(p,x) %polyval(系数向量,x)%求根
r=roots(p) %由系数求根
p0=poly(r) %由根求系数%数据插值%一维插值 yi=interp1(X,Y,xi,'method')
X=[-3,-1,0,1,3];
Y=[9,1,0,1,9];
yi=interp1(X,Y,2) %插值:估算在x=2的y的值(x不能查出已知范围)
yi=interp1(X,Y,2,'spline') %选择spline(三次样条法)进行插值,更精准但耗时长%二维插值 zi=interp1(X,Y,Z,xi,yi,'method')

二、符号函数 

创建符号函数、函数计算、精度转换;多项式的展开整理,求反函数

%符号函数syms x; %声明符号变量
f1=poly2sym([7,5])
f2=7*x+5 %创建符号函数(直接写出来即可)%符号函数计算
f=(3*x+2)*(4*x-1)
subs(f,x,4)
%subs 可以在符号表达式中将符号变量替换为其他值或表达式
% 例如:你有一个符号表达式 f 和一个符号变量 x,可以使用 subs(f, x, 4) 将 x 替换为 4%精度转换
digits %显示当前计算精度
digits(16) %修改精度
ans16=vpa(sqrt(2)) %按指定精度计算
ans8=vpa(sqrt(2),8) %修改精度,并按指定精度计算f=(3*x+2)*(4*x-1)
%多项式的展开整理
g=expand(f) %展开
h=collect(g) %整理,默认按x整理
h1=collect(g,x) %按x整理(降幂排列)%求反函数
fin=finverse(f,x) %对f中的x变量求反函数

求极限,泰勒展开;求微分,求积分 

%极限
limit(f2,x,4) %求f(x),x->4
limit(f2,4) %默认变量->4
limit(f2) %默认变量->0
limit(f2,x,4,'right') %求右极限,x->4+ 'left'求左极限%泰勒展开
f3=sin(x)
taylor(f3,x,4) %将f3在x=4处展开成五阶泰勒级数(默认变量,默认在0处)%微分(求偏导)
diff(f,x,2) %f1对x的2阶导,相当于diff(f,x,x)
diff(f) %(默认变量,默认一阶导)
%多元偏导
fxy=diff(f,x,y) %先对x求偏导,再对y求偏导
fxyz=diff(f,x,y,z)%积分
int(f,x,1,2) %f对x在1-2上积分(不写x则认为是默认变量,不写区间则认为是不定积分)
int(f)

 方程求解(线性、非线性)

syms x y;  % 正确声明符号变量a = 4; b = 10;% 线性一元方程
eqn1 = a*x == b;  % 生成符号方程式
Sx = solve(eqn1);  % solve求解% 线性多元方程组
e1 = x + y == a; %生成符号方程式
e2 = x - y == b;
[Sx, Sy] = solve(e1, e2, x, y);  % 求解方程组(方程1,方程2,...,变量1,变量2,...)按顺序写变量,与Sx,Sy呼应%非线性
f=@(var) [var(1)^2+var(2)^2-100; var(1)-var(2)-2];
initGuess=[6,6];
S=fsolve(f,initGuess) %fsolve(@函数名称/ 函数句柄,求解的起始点,option),至少包含两个参数
%注意:handle = @myFunction; 将函数名称转换为函数句柄

三、数据统计

%数据统计A=[1,2,3;4,5,6;7,8,9]%最大值
A_m=max(A) 
[A_m,k]=max(A) %没写则默认维度是1,求每列的最大值,k接收下标
[A_m,k]=max(A,[],2) %求每行的最大值%均值
mean(A) %每一列
mean(A,2) %每一行%中值
median(A) %每一列
median(A,2) %每一行sum(A); sum(A,2);
prod(A); prod(A,2);  %求积
cumsum(A);  cumsum(A,2) %累加->对每一行,逐元素累加(仍是m*n矩阵)
cumprod(A);  cumprod(A,2) %累乘%排序
Y=sort(A,1,"ascend") %对矩阵的列向量进行升序排序(ascend)降序(descend)
[Y,I]=sort(A,1,'descend') %I保存了列元素之前的位置

http://www.lryc.cn/news/448691.html

相关文章:

  • leetcode621. 任务调度器
  • Spark 的 Skew Join 详解
  • 讯飞星火编排创建智能体学习(一)最简单的智能体构建
  • mac-m1安装nvm,docker,miniconda
  • STM32F407之Flash
  • 优化 Go 语言数据打包:性能基准测试与分析
  • 【SQL】未订购的客户
  • Qt(9.28)
  • javascript-冒泡排序
  • 第九届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)
  • MATLAB云计算集成:在云端扩展计算能力
  • 基于BeagleBone Black的网页LED控制功能(flask+gpiod)
  • 【C语言】单片机map表详细解析
  • Java中的继承和实现
  • uniapp云打包
  • 端口安全技术原理与应用
  • 数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall
  • 数字乡村解决方案-3
  • WPF文本框无法输入小数点
  • R开头的后缀:RE
  • Vue2配置环境变量的注意事项
  • 机器学习:探索未知边界,解锁智能潜力
  • 万户OA-ezOFFICE fileUpload.controller 任意文件上传漏洞复现
  • Time-MoE : 时间序列领域的亿级规模混合专家基础模型
  • Spring Boot入门指南
  • MYSQL(学习笔记)
  • 学校周赛(1)
  • 人生苦短,我用Python✌
  • uniapp js判断key是否在json中?
  • Codeforces Round 975 (Div. 2) C. Cards Partition