笔记
在下阿文
我叫阿文,文森特的文
展开
-
matlab最优化问题函数索引汇总
1.fminbnd()求单变量无约束(箱约束,边界约束)最优化问题:黄金分割法,抛物线插值法2.fminsearch()求解多变量无约束最优化问题,基于免导数的算法:Nelder-Mead单纯形方法3.fminunc()求解多变量无约束最优化问题,基于导数的算法:拟牛顿方法、信赖域方法4.linprog()求解线性规划问题:内点法、单纯形法、有效集法5.intlinprog()求解混合整数线性规划问题:分支定界法6.fmincon()求解多变量有约束最优化问题:信赖域法、有效集法、内点原创 2020-08-20 09:11:05 · 526 阅读 · 0 评论 -
matlab对矩阵翻转的操作方法
1.fliplr(A)flip left right左右翻转2.flipud(A)flip up down上下翻转原创 2020-08-20 09:10:56 · 4643 阅读 · 0 评论 -
matlab生成随机数rand,unifrnd等函数使用方法
1.rand 生成(0,1)区间上均匀分布的随机数rand(m) 生成m×m维的随机数rand(m,n) 生成m×n维的随机数rand([m,n,p …]) 生成排列成m×n×p… 多维向量的随机数2.unifrnd 生成指定区间内均匀分布的随机数unifrnd(a, b, m, n) 在区间[a, b]内均匀分布随机数3.randn 生成服从标准正态分布的随机数4.normrnd 生成指定均值、标准差的正态分布随机数5.exprnd 生成原创 2020-08-20 09:09:48 · 4837 阅读 · 1 评论 -
matlab线性规划命令linprog使用方法
求解线性规划命令linprog使用格式:(1) x = linprog(C, A, b)[x,fval] = linprog(C, A, b)(2) x = linprog(C,A,b,Aeq,beq)[x,fval] = linprog(C,A,b,Aeq,beq)(3) x = linprog(C,A,b,Aeq,beq,Lb,Ub)[x, fval] = linprog(C,A,b,Aeq,beq,Lb,Ub)例子:C = [500,600]; A = [-1,-1;1,0;0,1;原创 2020-08-20 09:09:39 · 1999 阅读 · 0 评论 -
matlab一元函数极值求解函数fminbnd
[xmin, ymin] = fminbnd(fun, x1, x2) 用于求解一元函数 fun 的极小值其中,fun是目标函数,[x1,x2]是搜索区间,xmin、ymin分别是目标函数的极小点、极小值原创 2020-08-20 09:09:28 · 3405 阅读 · 0 评论 -
matlab进行数值积分的主要函数使用方法
MATLAB进行数值积分的主要函数:1.trapz 梯形法求解积分x=0:pi/10:pi; y=sin(x); trapz(x,y)2.quad 基于变步长simpso法求积分q = quad(fun,a,b,tol)其中fun是被积函数文件名或函数句柄,a, b是积分下限和积分上限,tol是积分精度3.dblquad 矩形区域二重数值积分q = dblquad(fun,a,b,c,d,tol) 其中fun是被积函数文件名或函数句柄,a, b是内积分下限和内积分上限,c, d是外原创 2020-08-20 09:08:54 · 4717 阅读 · 0 评论 -
matlab解微分方程的Euler法
h = 0.1; tn = 1; t=(0:h:tn)'; n=length(t); y=1*ones(n,1); for k=2:n y(k)=y(k-1)+h*feval(t(k-1),y(k-1)); end plot(t, y, 'sb-')function dfun=feval(t, y) dfun=t - 2*y; end原创 2020-08-20 09:08:43 · 3704 阅读 · 0 评论 -
matlab求解微分方程ode23
1.ode23:显式的单步Runge-Kutta低阶(2阶到3阶)解法。适用具有一定难度对精度要求不高,或者f(t,y)不平滑(非连续)的问题[T, Y] = ode23(‘F’,Tspan,y0)其中:T:求解区域内离散数据Y:求解区域内离散数据的对应数值解‘F’ 是包括函数文件名字的字符串或函数句柄。函数F(t,y) 必须返回列向量Tspan = [t0,tN]是常微分方程求解区域;或具体节点. 例:linspace(a,b,step)y0是表示初始条件例1:function t原创 2020-08-20 09:08:34 · 11937 阅读 · 1 评论 -
matlab多项式拟合求解方法polyfit和polyval
1.多项式拟合函数:p=polyfit(x,y,n)输入:x,y—数据点,n—多项式阶数输出:p 为幂次从高到低的多项式系数向量p2.多项式求值函数:y=polyval(p,x)其中, y为返回对应自变量x在给定系数p的多项式的值。...原创 2020-08-19 12:09:15 · 1454 阅读 · 0 评论 -
matlab获取矩阵的特征值特征向量及其他矩阵变换
1.矩阵A的对角阵diag(A)2.获取上三角阵triu(A)3.获取下三角阵tril(A)4.解线性方程组Ax=bx=A\b或者x=inv(A)*b5.计算A的特征值lambda=eig(A)其中,lambda是A的全部特征值构成的列向量6.计算出A的全部特征值和对应的特征向量[P, D]=eig(A)其中,D是对角矩阵,保存A的全部特征值P是满阵,P的列向量构成对应于D的特征向量组。...原创 2020-08-19 12:06:23 · 829 阅读 · 0 评论 -
matlab符号函数求解方程组
1.求解二元一次方程组syms x y;s=solve(a*x+b*y==10,a*x-b*y==20,x,y);sol_x = s.x;sol_y = s.y;其中s为结构体2.求解微分方程组y=dsolve('Dy=(10-0.02*t)*t','y(0)=4','t');其中“Dy”表示对y的1阶导数,“D2y”表示对y的2阶导数,其他各阶导数类似...原创 2020-08-19 12:00:24 · 3999 阅读 · 0 评论 -
matlab符号函数求极限,求导,求积分和求泰勒展开式Taylor方法
1.求极限limit(f,x,a)计算f(x)当x趋向于a的极限limit(f,x,a,'right’)计算右极限limit(f,x,a,'left’)计算左极限2.求导数diff(s,‘v’)求s对自变量v的1阶导数diff(s,‘v’,n)求s对自变量v的n阶导数3.求积分s=int(expr,var)以expr表达式中的变量var为积分变量计算不定积分s=int(expr,var,a,b)以expr表达式中的变量var为积分变量计算定积分,积分上下限分别为b和a。4.原创 2020-08-19 11:53:03 · 3748 阅读 · 0 评论 -
matlab内置函数compose使用方法
1.compose(f, g)返回复合函数f(g(y))2.compose(f, g, z)返回复合函数f(g(z))3.compose(f, g, x, y, z)返回复合函数f(g(z)),其中有f(x)和g(y)f g x y z均为符号函数和符号变量原创 2020-08-19 11:43:41 · 4359 阅读 · 0 评论 -
matlab符号数据类型转化
1.digits(n):设置vpa计算结果的有效数字的位数2.vpa(s):计算符号表达式s的数值结果,结果还是sym型vpa(s,n):采用n位有效数字计算精度求s的数值结果3.double(s):将符号表达式s转化为双精度数值4.char(s):将符号表达式s转化为字符串举例:t=sqrt(sym(pi));a=vpa(t);b=double(t);结果:t = pi^(1/2)a =1.7724538509055160272981674833411b =1.7725 .原创 2020-08-19 11:40:48 · 4239 阅读 · 0 评论 -
matlab内置函数simplify使用方法
simplify(s)对表达式进行化简syms x y z f=cos(x)^2-sin(x)^2s1 = simplify(f) s1 = cos(2*x)原创 2020-08-19 11:35:35 · 26164 阅读 · 0 评论 -
matlab内置函数subs使用方法
subs(s, old, new)将s表达式中old变量替换为newsyms x y z f=x^2+y^2+z^2 fval=subs(f,[x,y],[1,2]) fval = z^2 + 5原创 2020-08-19 11:33:20 · 2745 阅读 · 0 评论 -
matlab定义符号变量syms与sym使用方法
syms命令定义符号变量,可以一次定义多个变量syms x;syms x y;syms x y real;其中real实,unreal非实,positive 正sym一次处理一个变量或表达式,也可将字符或数字转换为符号类型sym(A);sym(A,‘real’);sym(‘x1’);sym(‘sqrt(200)’);sym(’[100 200]’);...原创 2020-08-19 10:31:11 · 13906 阅读 · 2 评论 -
matlab内置函数reshape的用法
reshape(A,[2,3])将 A 重构为一个 2×3 矩阵矩阵A必须有6个元素原创 2020-08-19 10:24:31 · 438 阅读 · 0 评论 -
matlab作图方法plot
1.plot(x,y,’–r’)其中y=f(x)2.plot(x, y, x, z, ‘LineWidth’, 1.5)3.ezplot(‘exp(-0.5*x)sin(5x)’,[0,10,-1,1])4.fplot(‘exp(-0.5*x)sin(5x)’,[0,10,-1,1])5.plot3(sin(t),cos(t),t)空间曲线绘图6.polar(theta,rho,‘r’);theta=0:pi/20:4pi; rho= 1 + theta*2; 极坐标绘图7.bar(x,原创 2020-08-17 07:49:55 · 501 阅读 · 0 评论 -
matlab对文件的打开fopen和读写操作fprintf
1.fopen打开文件fid = fopen(‘myout.txt’,‘wt’)其中fid用于储存文件句柄值‘r’:只读方式打开文件(默认方式),该文件必须已存在。‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在 则创建。‘a’:在打开的文件末端添加数据。文件不存在则创建。‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。‘t’,如‘rt’或原创 2020-08-17 07:49:43 · 3780 阅读 · 0 评论 -
matlab取余和取商方法
取余:1.mod(a,b)符号与b相同2.rem(a,b)符号与a相同取商:1.floor(a/b)向下取整2.fix(a/b)向零取整原创 2020-08-17 07:49:34 · 11628 阅读 · 0 评论 -
matlab数据类型的转换方法
1.char(S1,S2,…)利用给定的字符串或单元数组创建字符数组2.double(S)将字符串转化成ASCII码形式3.cellstr(S)利用给定的字符串数组创建字符串单元数组4.blanks(n)生成一个由n个空格组成的字符串deblank(S)删除尾部的空格5.eval(S)使用MATLAB解释器求字符串表达式的值6.num2str(k)将数字转换成字符串7.int2str(k)将整数型转换成字符串8.mat2str(k)将矩阵转换为字符串,可以供eval使用9原创 2020-08-17 07:48:37 · 5236 阅读 · 0 评论 -
matlab对字符串的操作方法总结
1.strcat(S1,S2,…)将多个字符串水平拼接2.strvcat(S1,S2,…)将多个字符串竖直拼接3.strcmp(S1,S2)判断字符串是否相等4.strncmp(S1,S2,n)判断前n个字符串是否相等5.strcmpi(S1,S2)判断字符串是否相等(忽略大小写)6.strncmpi(S1,S2,n)判断前n个字符串是否相等(忽略大小写)7.strtrim(S1)删除结尾的空格8.findstr(S1,S2)找到S1和S2两者中较短那个字符串在较长 字符串中的原创 2020-08-16 11:06:32 · 2175 阅读 · 0 评论 -
matlab判断是不是某种类型的方法
1.isempty(S)判断是不是空数组,若是返回12.ischar(S)判断是不是字符串数组3.iscellstr(S)判断是不是字符串单元数组4.isletter(S)判断是不是字母5.isspace(S)判断是不是空格原创 2020-08-16 10:59:19 · 1348 阅读 · 0 评论 -
matlab自定义函数编写方法
function [r1, r2, r3]=funname(a1, a2, a3, a4)4个输入参数,3个输出参数nargin,nargout 分别表示函数调用时的输入参数个数,输出参数个数return返回调用函数pause暂停运行,按任意键执行pause(0.5) 暂停0.5秒f=inline(expr, arg1, arg2, ...)匿名函数inline,expr是字符串类型的方程式,args是自变量f=@(x)(x.^2) f=@(x,y)(x.^2+y.^原创 2020-08-16 10:26:05 · 1750 阅读 · 0 评论 -
matlab中switch语句的使用方法
switch name(1) % 根据name第1个字符串进行不同处理 case {'a','b','c','d','e','f','g','h'}, disp(['Hello, ', name]) otherwise, disp(['Welcome, ', name])end原创 2020-08-16 10:17:27 · 7073 阅读 · 0 评论 -
matlab排序函数sort的使用方法
1.[B, I]=sort(V)B是排序后的结果,I是排序后每个元素在原矩阵V中的下标2.B=sort(V, ‘descend’)B为V的降序排列默认为‘ascend‘升序排列原创 2020-08-16 10:06:38 · 1480 阅读 · 0 评论 -
matlab内置函数max和min使用方法
x=[5 1 4 7 3][v1,I1]=max(x)[v2,I2]=min(x)结果:x = 5 1 4 7 3v1 = 7 I1 = 4v2 = 1 I2 = 2原创 2020-08-16 10:02:46 · 611 阅读 · 0 评论 -
matlab内置函数sum的使用方法
1.s=sum(v) 求向量v中元素的和2.s=sum(A,1) 或s=sum(A) 求矩阵A中每列的和,返回成1个行向量3.s=sum(A,2) 求矩阵A中每行的和,返回成1个列向量mean的使用方法与之类似原创 2020-08-16 10:00:52 · 1248 阅读 · 0 评论 -
matlab常用输入输出方法
输入:1.name=input('输入您的姓名: ', ‘s’)输出:1.disp(变量名)2.s2= sprintf(’%10.6f’, a)将a化为10个字符长, 含6个小数位的字符串3.s3=sprintf(’%8s%3d%3d%3d’,name,grade)grade表示一个三维向量原创 2020-08-16 09:57:48 · 2694 阅读 · 0 评论 -
matlab查看数据类型whos和class
运行:whos a b运行输出:Name Size Bytes Classa 1x2 16 doubleb 1x3 6 char运行:class(a)运行结果:ans = double原创 2020-08-16 09:53:39 · 999 阅读 · 0 评论 -
matlab数据类型
matlab常见数据类型汇总1.doublea=rand(3)2.charb=‘Li San’3.symsyms x,y4.structF.name=‘li San’, F.birth=19995.cella=cell(m,n)调取数据a{i,j}原创 2020-08-16 09:51:21 · 122 阅读 · 0 评论 -
matlab矩阵生成与编辑方法
matlab矩阵生成方法:1.A=[1 2 3; 4 5 6; 7 8 9];2.x=1:2:9表示x=[1 3 5 7 9]3.x=linspace(-2, 2, 5)表示x=[-2 -1 0 1 2]4.a = zeros(m, n)产生一个m行、n列的零矩阵;多用于变量的初始化5.a = ones(m, n)产生一个m行、n列的元素全为1的矩阵6.a = eye(m, n)产生一个m行、n列的单位矩阵matlab矩阵操作方法:1.原创 2020-08-15 21:57:17 · 2137 阅读 · 0 评论