matlab快速入门

MATLAB快速入门

  • 1 系统变量

  • 2 多项式

  • 3 函数积分

  • 4 微分运算

  • 5 字符串运算

  • 6 矩阵

  • 7 方程与方程组

  • 8 符号极限与求和

  • 9 泰勒基数


1 系统变量

clc;clear all
% 查看帮助命令
help rand
% 或者doc rand
% 虚数单位
i,j
% 系统浮点精度
eps
% 无穷大
inf,1/0
% 非数值
NaN,nan
% 圆周率
pi
% 系统表示的最大(小)值
realmax,realmin
% 函数输入参数个数:nargin;函数输出参数个数nargout

2 多项式

多项式

p = [1,2,-3,4];
% x = 5 处的函数值
polyval(p,5)
% x = [1,2,3]处的函数值
x = [1 2 3];
polyval(p,x)
% 多项式求根
p =  [1,2,-3,4];
r = roots(p)
% 提取实部
real(r)
% 多项式乘法
a = [1 2 3 4];
b = [1 0 -1];
c = conv(a,b)
% 多项式除法
a = [2 2 3 4];
b = [1 0 -1];
% q为商式;r为余式
[q,r] = deconv(a,b)
% 多项式导数
f = [1 1 1 1 1 1];
df = polyder(f)
% 多项式拟合
x = (1:1:30)';
y = 2 + 0.5*x -1.5*x.^2+ normrnd(0,10,[30,1]);
% polyfit(x,y,n) n为多项式最高次数,n = 1即为OLS
p = polyfit(x,y,2);p
% 计算拟合值
y_hat = polyval(p,x);
figure(1)
plot(x,y,"*",x,y_hat)
%-----------3 多项式插值
% 一维插值函数 Y = interpl(x,y,XI,"method") 
% method包括线性插值linear,力方插值cubic
% 三次样条插值(spline),最近邻插值(nearst)、3次厄密(pchip)多项插值
x = 0:10;xi = 0:0.25:10;
% 省略为默认分段线性插值
y = sin(x);yi = interp1(x,y,xi); 
% 分段线性插值
y = sin(x);yi = interp1(x,y,xi,"linear"); 
% 三次样条插值;不提供导数输入,采用“非扭结”条件
yi = interp1(x,y,xi,"spline");
% 分段埃尔米特插值
yi = interp1(x,y,xi,"pchip");
% 分段三次插值与分段埃尔米特插值结果相同
% yi = interp1(x,y,xi,"cubic");
% 三次样条插值
yi = interp1(x,y,xi,"spline");
plot(x,y,"o",xi,yi,"+");xlabel("x");ylabel("y")


3 函数积分

% 自定义函数
F = @(x) 1./(x.^3-2*x-5);
% 区间[0,2]定积分
Q = integral(F,0,2)
% 二重积分
F = @(x,y)y.*sin(x)+x.*cos(y);
Q = integral2(F,pi,2*pi,0,pi)
% 符号积分int
syms x y 
s = int(int(x*y,x,0,1),y,1,2);
% 转小数
s = vpa(s)

4 微分运算diff

a = [1 3 5 7 9 11 13 15];
% 一次微分
b = diff(a) % 离散数据等价于差分运算
% 二次微分
b = diff(a,2)
% 微分作用于矩阵,后一行与前一行作差分,结果少一行
A = [1 2 3;4 5 6;1 1 1];
diff(A) 
% 符号微分
syms a b x
f = sin(a*x);
diff(f) % 默认对x求导
diff(f,"a") % 对a求导
diff(f,"a",2) % 对a求2阶导
%-------6 多元函数梯度gradient
[x,y] = meshgrid(-2:.2:2,-2:.2:2);
z = x.*exp(-x.^2-y.^2);
% 梯度计算
[px,py] = gradient(z,.2,.2);
figure(2)
contour(z),hold on; % 等值线图
quiver(px,py)


5 字符串运算

%字符串运算sym
% 利用syms创建表达式
syms x
f = cos(a*x)+sin(b*x);f
% -----------寻找独立变量
symvar(f,1),symvar(f,2),symvar(f)
% 关于某变量合并同类型collect
syms x y z
f = x*y+(1-4*x*y^2)-2*x+3*y-z*x+y*z;
collect(f) % 默认关于x
collect(f,z)

% -----------展开函数expand
syms x y 
f = sin(x+y);expand(f)
f = (x+y)^2;expand(f)

% --------horner函数,将f变为镶嵌套形成
syms x 
f = x^2 - 6*x^3;horner(f)

% ---------因式分解factor
syms x 
f = x^3 - 1;factor(f)

% ---------化简函数simplify
syms x y
f = x*y + x*y - 1;simplify(f)

% ---------变量替换
syms x a b c 
% 用新变量t替换旧变量x
f = a*x^2+b*x+c;subs(f,'x','t')

% subexper函数(为方便理解简化后的表达式)
syms x c
f = a*x^2+ b*x+ c;
s = solve(f)
a = subexpr(s)

6 矩阵

% ---------矩阵
% 线性方程组求解ax = b 
a = hilb(3);% 3阶Hilbert 矩阵
b = [1 2 3]';
x = a\b
% 矩阵特征值与特征向量
syms a b c
A = [a b c; b c a;c b a];
% 第一个值为特征向量;第二个值为特征值
[Q,R] = eig(A)
% 奇异值分解,将矩阵分解为两个正交矩阵与对角矩阵乘积
a = sym(hilb(3));
[u,s,v] = svd(a)

7 代数方程与方程组solve

syms a b c x
% 默认x
solve(a*x^2+b*x+c)
% 指定内生变量
solve(a*x^2+b*x+c,a)
% 等号情形
syms x y z
x = solve(sin(x) == cos(x),x)
% 方程组情形
syms x y z
eq1 = x^2 + sin(y) - z == 100;
eq2 = x - y + z == 5;
eq3 = x * z + cos(y) == 6 * z;
% 数值解
[x,y,z] = vpasolve(eq1, eq2, eq3, x, y, z)

8 符号极限与求和

syms x a
f = a*sin(x);
% 默认在0处的极限
limit(f)
limit(f,pi/2) % x在pi/2处极限,下同
limit(f,x,pi/2)
% 左极限
limit(f,x,pi/2,'left')
% 右极限
limit(f,x,pi/2,'right')
% 无穷极限
f = 1/x;
limit(f,inf)
limit(f,-inf)
% 符号求和
syms k m n
symsum(k,0,m)
symsum(1/k,1,n)
symsum(1/k^2,1,inf)

9 泰勒基数

syms x t
% 默认五阶
taylor(exp(-x)) 
% t = 1处展开
taylor(log(x),x,1) 
% 8阶,t= 1处展开
taylor(log(x),x,1,'Order',8) 
taylor(x^t,x,1) 

-END-

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值