网站开发 深圳,建筑图纸怎样识图,福州网络营销公司,aso优化违法吗MATLAB基本操作
1. 对象定义 使用sym定义单个对象、使用syms定义多个对象
2. 使用limit求极限
$$ \lim_{v \rightarrow a} f(x) $$ limit(f,v,a) % 使用limit(f,v,a,left)可求左极限
3. 导数 使用diff(f,v,n)对$ f(v)v^{t-1} $求 $ n $ 阶导 $ \frac{d^nf}{d^nv} $#xf…MATLAB基本操作
1. 对象定义 使用sym定义单个对象、使用syms定义多个对象
2. 使用limit求极限
$$ \lim_{v \rightarrow a} f(x) $$ limit(f,v,a) % 使用limit(f,v,a,left)可求左极限
3. 导数 使用diff(f,v,n)对$ f(v)v^{t-1} $求 $ n $ 阶导 $ \frac{d^nf}{d^nv} $n缺省时默认为1diff(f)默认求一阶导数。
4. 定积分和不定积分 使用int(f,v)求f对变量v的不定积分使用int(f,v,a,b)求f对变量v的定积分,a、b为积分上下标。$ \int{f(v)dv} $、$ \int^{a}_{b}{f(v)dv} $。 5. matlab函数文件定义形式
function [输出形参列表] 函数名输入形参列表函数体
function spir_len spirallength(d, n, lcolor)
% SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area
% 输入参数
% d: 螺旋的旋距
% n: 螺旋的圈数
% lcolor画图线的颜色
% 输出参数
% spir_len螺旋的周长
% 调用说明
% spirallength(d,n):以参数d,n画螺旋线螺旋线默认为蓝色
% spirallength(d,n,lcolor):以参数d,n,lcolor画螺旋线
% spir_len spirallength(d,n):计算螺旋线的周长并以蓝色填充螺旋线
% spir_len spirallength(d,n,lcolor):计算螺旋线的周长并以lcolor颜色填充螺旋线% 版本号V1.0编写于1999年9月9号修改于1999年9月10号作者亚索if nargin 3error(输入变量过多);
elseif nargin 2lcolor b; % 默认情况下为蓝色
endj sqrt(-1);
phi 0 : pi/1000 : n*2*pi;
amp 0 : d/2000 : n*d;
spir amp .* exp(j*phi);if nargout 1spir_len sum(abs(diff(spir)));fill(real(spir), imag(spir), lcolor);
elseif nargout 0plot(spir, lcolor);
elseerror(输出变量过多);
endaxis(square);
6. matlab程序设计语句
% for循环
for 循环变量初值:步长:终值循环体
end% while循环
while 条件循环体
end% if语句
if 条件语句组1
elseif语句组2
else语句组3
end% switch语句
switch 表达式case 表达式1语句组1case 表达式2语句组2... ...case 表达式m语句组motherwise语句组
end% try语句
try语句组1 %语句组1若正确则跳出该结构
catch语句组2
end
7. 矩阵操作
操作作用size(A)求矩阵A的行数和列数length(x)返回向量x的长度AA的转置A(:,n)取矩阵A第n列数A(n,:)取第n行det(A)求矩阵A的行列式inv(A)求A的逆rank(A)求A的秩trace(A)求A的迹max(A)、min(A)求A的各列最大、最小元素mean(A)求A各列的平均值sum(A)求A各列元素之和
8. matlab简单绘图 plot函数是MATLAB中最核心的二维绘图函数有诸多语法格式可实现多种功能。常用格式有
plot(x)缺省自变量的绘图格式x可为向量或矩阵。plot(x, y)基本格式x和y可为向量或矩阵。plot(x1, y1, x2, y2,…)多条曲线绘图格式在同一坐标系中绘制多个图形。plot(x, y,‘s’)开关格式开关量字符串s设定了图形曲线的颜色、线型及标示符号见下表。 无约束优化问题求解
fminbnd、fminunc函数输出变量解释
变量描述x由优化函数求得的值. 若exitflag0,则x为解; 否则,x不是最终解, 它只是迭代制止时优化过程的值fval解 x 处的目标函数值exitflag描述退出条件:exitflag0,表目标函数收敛于解x处exitflag0,表已达到函数评价或迭代的最大次数exitflag0,表目标函数不收敛output包含优化结果信息的输出结构。Iterations:迭代次数Algorithm:所采用的算法FuncCount:函数评价次数
一元函数无约束优化问题-fminbnd
常用格式
$$ min f(x) x_1xx_2 $$
1x fminbnd (fun, x1, x2) 2x fminbnd (fun, x1, x2 , options) 3[x , fval] fminbnd... 4[x , fval , exitflag] fminbnd... 5[x , fval , exitflag , output] fminbnd... 函数fminbnd的算法基于黄金分割法和二次插值法它要求目标函数必须是连续函数并可能只给出局部最优解
例子
求函数 $ f(x)2e^{-x}sin(x) $ 在 $ 0x8 $ 时的最小值
% 如果求最大需要对f取反
f (x) (2*exp(-x)*sin(x));
[x,fval] fminbnd(f,0,8);
x
fval
多元函数无约束优化问题-fminunc
常用格式
$$ min f(X)这里X为n维变量 $$ fminunc常用格式为: 1x fminuncfun, X0 2x fminuncfun, X0options 3[xfval] fminunc... 4[xfvalexitflag] fminunc... 5[xfvalexitflagoutput] fminunc... 其中 X0为初始值
例子
求函数$ f(x_1,x_2)(4x_1^22x_2^24x_1x_22x_2^21)e^x $的最小值,$ X_0[-1,1] $
f (x) (4*x(1)^22*x(2)^24*x(1)*x(2)2*x(2)1)*exp(x(1));
x0 [-1,1];
[x,fval] fminunc(f, x0);
x
fval
线性规划问题求解
使用linprog求解一般线性规划问题
常见问题linprog默认求最小值 $$ minzcX $$
$$ s.t. \begin{cases} AX\leq{b}\ Aeq\cdot{X}beq\ VLB\leq{X}\leq{VUB} \end{cases}$$
求解命令
[x,fval] linprog(c,A,b,Aeq,beq,VLB,VUB)
例子
$$ min z13x_19x_210x_311x_412x_58x_6 $$
$$ s.t.\left{ \begin{aligned} x_1x_2400\ x_2x_5600\ x_3x_6500\ 0.4x_11.1x_2x_3\leq{800}\ 0.5x_41.2x_51.3x_6\leq{900}\ x_i\geq0,i1,2,...,6 \end{aligned} \right. $$
f [13 9 10 11 12 8];
A [0.4 1.1 1 0 0 00 0 0 0.5 1.2 1.3];
b [800; 900];
Aeq[1 0 0 1 0 00 1 0 0 1 00 0 1 0 0 1];
beq[400 600 500];
vlb zeros(6,1);
vub[];
[x,fval] linprog(f,A,b,Aeq,beq,vlb,vub)
使用bintprog求解0-1规划问题
matlab2014以上版本使用intlinprog求解0-1规划问题
$$ minzcX $$
$$ s.t. \begin{cases} AX\leq{b}\ Aeq\cdot{X}beq\ X为0-1变量 \end{cases}$$
% 命令
[x,fval] bintprog(c,A,b,Aeq,beq)
例子
$$ min z3x_17x_2-x_3x_4 $$ $$ s.t. \begin{cases} 2x_1-x_2x_3-x_4\geq{1}\ x_1-x_26x_34x_4\geq{8}\ 5x_13x_2x_4\geq{5}\ x_i0或1i1,2,3,4 \end{cases} $$
z [3;7;-1;1];
A [-2 1 -1 1;-1 1 -6 -4;-5 -3 0 -1];
b [-1;-8;-5];
Aeq [];
beq [];[x,fval] bintprog(z,A,b,Aeq,beq)
数据插值与拟合
数据插值使用interpl进行一维插值
matlab命令
yi interpl(X,Y,xi,method)
该命令用指定的算法找出一个一元函数然后以该函数给出xi处的值。其中x[x1,x2,…,xn]’和 y[y1,y2,…,yn]’两个向量分别为给定的一组自变量和函数值用来表示已知样本点数据xi为待求插值点处横坐标可以是一个标量也可以是一个向量是向量时必须单调yi得到返回的对应纵坐标。
method可以选取以下方法之一 ‘nearest’最近邻点插值直接完成计算‘spline’三次样条函数插值‘linear’线性插值缺省方式直接完成计算‘cubic’三次函数插值
例子
作函数$ y(x^2-3x7)e^{-4x}sin(2x) $在[0,1]取间隔为0.1的点图用插值进行实验
x0:0.1:1;
y(x.^2-3*x7).*exp(-4*x).*sin(2*x); %产生原始数据subplot(1,2,1);
plot(x,y,x,y,ro) %作图
xx0:0.02:1; %待求插值点
yyinterp1(x,y,xx,spline); %此处可用nearest,cubic,spline分别试验subplot(1,2,2)
plot(x,y,ro,xx,yy,b) %作图
曲线拟合
拟合函数polyfit
ppolyfit(x,y,n)
[p,s] polyfit(x,y,n)
说明x,y为数据点n为多项式阶数返回p为幂次从高到低的多项式系数向量p。p是n1维参数向量p(1)p(2)….那么拟合后对应的多项式即为 $$ p(1)x^np(2)x^{n-1}\cdot\cdot\cdotp(n)xp(n1) $$
x必须是单调的。矩阵s用于生成预测值的误差估计
多项式求值函数polyval
ypolyval(p,x)
[y,DELTA]polyval(p,x,s)
说明ypolyval(p,x)为返回对应自变量x在给定系数p的多项式的值 [y,DELTA]polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计DELTA。它假设polyfit函数数据输入的误差是独立正态的并且方差为常数。则DELTA将至少包含50%的预测值。
例子
求如下给定数据的拟合曲线 x[0.5,1.0,1.5,2.0,2.5,3.0]y[1.75,2.45,3.81,4.80,7.00,8.60]
x[0.5,1.0,1.5,2.0,2.5,3.0];
y[1.75,2.45,3.81,4.80,7.00,8.60];
plot(x,y,‘*r’) %先观察数据点的大致形态
ppolyfit(x,y,2) %用二次多项式拟合
x10.5:0.05:3.0; % 步长0.05
y1polyval(p,x1);
plot(x,y,*r,x1,y1,-b) 本文由博客群发一文多发等运营工具平台 OpenWrite 发布