例 1:计算 sin(x)/(x^2+4x+3) 的四阶导数
f=sin(x)/(x^2+4*x+3); y=diff(f,x,4)
例 2:计算下面的多项式方程的根
s^6+9*s^5+135/4*s^4+135/2*s^3+1215/16*s^2+729/16*s+64=0
p=[1,9,135/4,135/2,1215/16,729/16,64];
roots(p)%数值解
p1=poly2sym(p);
solve(p1)%解析解
%对解析解和数值解的理解
%y=2x
%y=0.5x——解析解
%x=1时,y=0.5——数值解
例 3:考虑如下 Hilbert 矩阵
H=sym(hilb(20));
det(H)
例 4:计算 Van der Pol 微分方程 (不太明白)
mu=1000;
f=@(t,x)[x(2);-mu*(x(1)^2-1)*x(2)-x(1)];
[t,x]=ode15s(f,[0,3000],[-1,1]);
plot(t,x)
例 5:最优化问题
(1)求解f(x)=x4-x2+x-1在区间[-2,1]上的极小值
method 1.[X, fval]=fminbnd ('x^4-x^2+x-1',-2,1)
method 2.[x, fval] =fminsearch ('x^4-x^2+x-1',0)
**[x,fval] = fminsearch(___),对任何上述输入语法,在 fval 中返回目标函数 fun 在解 x 处的值**
(2)求解下面的优化问题
1)首先定义目标函数文件
function y=OptimFun(x)
y=x(1)^4-4*x(1)-8*x(2)+15;
end
2)定义非线性约束条件
function [c ceq]=ConFun(x) c=9-x(1)^2-x(2)^2;
ceq=[];
end
3)定义线性约束条件 A=[2 3;1 -1]; b=[2;5];
4)输入求解命令
X=fmincon(@OptimFun,[1,2],A,b,[],[],[],[],@ConFun)