https://khan.github.io/KaTeX/docs/supported.html
```katex
{% katex [displayMode] %}
a^{b^{\sqrt{c}}}
{% endkatex %}
```
功能清单-查看官方api
优化(minimize or optimize)
拟合 (fitting)
求根(root finding)或不动点(fixed point)
线性规划
vpa()
转化为小数表达形式vpasolve(),roots()
求方程实数解(去掉Real参数可求符号通解),daolve
解微分方程syms x
vpasolve(x^4 - 7*x^3 + 3*x^2 - 5*x + 9,x)
等价于roots([1 -7 3 -5 9]) % 系数对齐
limit(fun,point)
,求函数极限diff(fun)
, 求符号导数int(fun,[a,b])
, 求符号不定积分或定积分subs(fun,value)
,符号函数求值isequal(A,B)
判断两个值是否相等(可以为数组或矩阵,或符号函数)fminsearch(fun,x0),fminunc(fun,x0)
求解无约束局部优化问题,后者只能用于求解连续函数,但计算效率较高。fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub),linprog(...)
求解有约束线性优化syms()
可以同时声明多个变量以及符号函数,sym
不能声明符号函数ezplot
画椭圆曲线(隐函数):syms f(x)
f(x) = x^2 +3*y^2 -5
ezplot(f)
plot
函数可以话折线图或散点图,当传入的linespace为maker时就是散点图。ax = gca
,获取当前坐标轴句柄,从而可以设置坐标轴相对位置,刻度,标签等信息。minmax()
返回一个矩阵中每行的最小值和最大值newff()
新建一个feed-forward backpropagation network(前馈反向传播网络).% 暑期作业第二题
% 对应数据变为
T = [0:100:900];
C = [454 499 535 565 590 610 626 639 650 659];
V = 1000;
S = 10;
% 假设条件:
% 1. 薄膜两侧表面各处的液体浓度均匀
% 2. 以100s时为起始时间
% 3. 总质量为m,C1*V1+C2*V2 = m, 设C1+C2 = m/V = M
% 4. t时刻,A测浓度为x(t)
% 设记录的浓度为A侧浓度,该浓度随时间推移而增大。
syms M x(t) K a p xdata;
eq = diff(x) == K*(M-2*x);
x(t) = dsolve(eq,x(0)==454);
fun1 = matlabFunction(x);
fun2 = @(p,xdata) fun1(xdata,p(1),p(2));
p = lsqcurvefit(fun2,[1,1],T,C);
fun2(p,T)
ans =
454 597 597 597 597 597 597 597 597 597
% 暑期作业第二题
T = [0:100:900];
C = [454 499 535 565 590 610 626 639 650 659];
V = 1000;
S = 10;
% 假设条件:
% 1. 薄膜两侧表面各处的液体浓度均匀
% 2. 以100s时为起始时间
% 3. 总质量为m,C1*V1+C2*V2 = m, 设C1+C2 = m/V = M
% 4. t时刻,A测浓度为x(t)
% 设记录的浓度为A侧浓度,该浓度随时间推移而增大。
syms M x(t) K a p xdata;
eq = diff(x) == K*(M-2*x);
x(t) = dsolve(eq,x(0)==454);
fun1 = matlabFunction(x);
% 用于拟合的目标函数
fun2 = @(p,xdata) fun1(xdata,p(1),p(2));
% 拟合
p = lsqcurvefit(fun2,[1,1],T,C);
% 检验
fun2(p,T)
ans =
454 597 597 597 597 597 597 597 597 597
上面的检验结果和真实情况相差甚远,画出函数图像>> fun1
a n s = @ ( t , K , M ) ( M 2 − e − 2 K t ∗ ( M − 908 ) 2 ) ans = @(t,K,M) \left( \frac{M}{2}-\frac{e^{-2Kt}*(M-908)}{2} \right) ans=@(t,K,M)(2M−2e−2Kt∗(M−908))
当然,这远远没有结束,拟合时返回的雅可比矩阵不知道有什么用呢?
x = ga(fitnessfcn,nvars)
x = ga(fitnessfcn,nvars,A,b)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)
x = ga(fitnessfcn,nvars,A,b,[],[],LB,UB,nonlcon,IntCon)
x = ga(fitnessfcn,nvars,A,b,[],[],LB,UB,nonlcon,IntCon,options)
x = ga(problem)
[x,fval] = ga(fitnessfcn,nvars,...)
[x,fval,exitflag] = ga(fitnessfcn,nvars,...)
[x,fval,exitflag,output] = ga(fitnessfcn,nvars,...)
[x,fval,exitflag,output,population] = ga(fitnessfcn,nvars,...)
[x,fval,exitflag,output,population,scores] = ga(fitnessfcn,nvars,...)