Matlab使用

1.0 编辑

% 表示注释
; 表示不显示结果,只执行语句
clear 清除内存变量
clc 清除全部
pretty 用分式表示公式
simplify 化简命令
exp(x) 指数, e^x
log2(x) 以2为底数的对数

1.1 求极限

>> syms x
>> limit(f(x), x, a) % 表示x->a趋于某数,a默认为0,无穷大用inf

syms x y % 用来声明所用变量x, y
limit(x* log(1+ x)/sin(x^2), x, 0) % 求x->0时,左边的函数的极限

limit(limit(f(x, y), x, 0), y, 0) // 二元函数

2.0 求导数

>> syms x y
>> y = f(x)
>> dy = diff(y, x, n) % n表示求导的阶数,默认为1

syms x y
y= (x* exp(x)- 1)/sin(x);
dy= diff(y, x, 3) % 求三阶导数
>> pretty(dy) % 分式表示
>> simplify(dy) % 简化公式

3.0 作图

新建一个文件,F5运行即可
  1. ezplot
>> ezplot('f(x)', [a, b]) % [a, b]区间默认为[-2pi, 2pi]

ezplot('y^2- x')
>> hold on; % 保留图像,不使用hold on则只显示最后绘制的图像
ezplot('x- 2') % '%'表示注释
>> axis off % 去掉坐标轴,on是显示坐标轴
  1. plot
>> plot(x, y) % 数值计算作图

x = -6: 0.01: 6; % 表示在-6, 6区间里以0.01为间隔作图
y = x.^(4/3) - 2 .* x.^(1/3) % 注意点乘
plot(x, y)
  1. 画两个函数
x = 0: 0.01: 2 * pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, x, y2, 'r') % r表示红色
>> legend('sin(x)', 'cos(x)') % 标注函数
  1. 散点图
x = [12 25 52 27 86];
y = [24 23 34 53 67];
plot(x, y, '*')

4.0 求解积分

% 不定积分
syms x % 声明字母,用到什么字母写什么
int(f(x), x) % f(x)是被积函数,x是积分变量

int((x+1)/(3*x+1)^(1/3), x)
% 显示结果
ans = 1/5 * (3*x+1)^(2/3) * (2+x) % 注意加上C

% 定积分
syms x
int(f(x), x, a, b) % a, b为积分区间
quad('f(x)', a, b) % 数值解,需要点乘.* 点除./ 点乘方.^

7.0 求点积、叉积

a=(2,3,1),b=(1,1,3)a = (2, -3, 1), b = (1, -1, 3),求:(1)ab;(2)a×b.(1) a \cdot b; (2) a \times b.

a = [2, -3, 1]; b = [1, -1, 3]
dot(a, b) % 点积
cross(a, b) % 叉积

8.0 求解偏导数

syms x y
f = x^3 * exp(-y);
dxf = diff(f, x, n) % n为阶数
diff(f, x), diff(f, y) % 输出两条
dxyf = diff(dxf, x)
simplify(dy) % 化简
pretty(dy)

求解条件极值

甲乙两种产品的产量为x和y件时,总成本函数 C(x,y)=3x+yC(x,y)=3x+y(元),价格函数为 P1=832xyP_1=83-2x-yP2=51xyP_2=51-x-y(元),若规定这两种产品的产量之和为40,试求最大利润。

syms x
func = @(x) -((83 - 2*x(1) - x(2)) * x(1) + (51 - x(1) - x(2)) * x(2) - (3*x(1) + x(2))); % 取负号以求最大值

% 初始点
x0 = [0, 0];

% 约束条件
A = [];
b = [];
Aeq = [1, 1];
beq = 40;

% 边界条件
lb = [0, 0]; % 假设 x 和 y 不能为负
ub = [40, 40]; % 假设 x 和 y 的最大值为 40,根据问题具体调整

% 求解优化问题
[x, fval] = fmincon(func, x0, A, b, Aeq, beq, lb, ub);

% 输出结果
disp('最优点:');
disp([x(1), x(2)]);
disp('最大利润:');
disp(-fval); % 取负以获得最大利润值

求二元函数全微分、极限

syms x, y, dx, dy
func = f(x, y)
df = diff(func, x)*dx + diff(func, y)*dy % 全微分
lmx = limit(func ,x ,0)
lmxy = limit(lmx , y, 0) % 极限

求二重积分

int( int(f, y, g1(x), g2(x)), x, a, b )
f = xy
int( int() )