MATLAB常用语句总结7

MATLAB总结7:常见错误归纳

本篇专门用于记录一些应试技巧


文章目录

  • MATLAB总结7:常见错误归纳
  • 前言
  • 一、一些小定义和小技巧
  • 二、蒙塔卡罗求解方法
    • 1.函数的定义
    • 2.函数引用
    • 3.代码量较少的蒙塔卡罗
  • 三、函数引用与多变量
  • 四、矩阵引用
  • 五、非线性函数:fmincon的使用
  • 六、线性规划函数
    • 1.linprog
    • 2.fminbnd、fminsearch
  • 七、积分和微分
    • 1.quad积分
    • 2.积分int 微分diff
  • 八、lsqcurvefit
  • 九、矩阵求解
  • 十、polyfit 函数进行多项式拟合
  • 十一、ode23和ode45
  • 十二、fzero
  • 十三、meshgrid和surf
  • 十四、fsolve


前言

记忆力比较差,把学习过程中常用的语法记录于此,方便回忆时索引


一、一些小定义和小技巧

  1. rand的使用

rand 是用于生成在(0,1)上随机数的函数,而后面加入 rand(1,2),则意为一个一行两列的(0,1)矩阵,不可乱加。需要使用不同范围的随机数则使用 A*rand() 即可

    x=5*rand();y=5*rand();
  1. 符号
取余:mod(A,b)%A是要进行取余的数字,b是除数
不等于:~=
  1. find()的使用
    用r=find(A<=0.6),直接找到A中小于0.6的下标

  2. 分段函数的使用

y=(x<=8).* (2*x)+(x>8&&x<12).*(3*x)+(x>12).* (4*x);
  1. upper, lower的大小写转换
for i=1:length(v)if v(i)=='a'r(i)=upper(r(i));elseif v(i)=='h'r(i)='2';elseif v(i)=='v'r(i)='3';end
end

二、蒙塔卡罗求解方法

在这里插入图片描述

1.函数的定义

代码如下(示例):

function c=myobj(x)
c=10*x(1)^3+x(3)*(x(1)^2+x(2)^2);
function r=mycon(x)
r=[x(1)^2+x(2)^2-x(3)-10 ; x(1)^2+x(2)^2+x(3)-3];
function m=myrand
while 1m=[10*rand-5 ;10*rand-5 ;10*rand-5 ];if mycon(m)<=0return end
end

2.函数引用

代码如下(示例):

function [val,x]=myfun2
rand('seed',11);betterx=myrand;
betterval=myobj(betterx);for i=1:10000betterx=myrand;if myobj(betterx)>betterval;betterval=myobj(betterx);end
end
x=double(betterx);
val=double(betterval);

3.代码量较少的蒙塔卡罗

function [val,x]=myfun2
rand('seed',11);
val=0;
for i=1:100000s=-10*rand(1,3)+5;if s(1)^2+s(2)^2-s(3)-10<=0 && s(1)^2+s(2)^2+s(3)-3<=0if 10*s(1)^3+s(3)*(s(1)^2+s(2)^2)>valval=10*s(1)^3+s(3)*(s(1)^2+s(2)^2);x=s;endend
end

三、函数引用与多变量

要分清多元函数的变量要用循环引用

代码如下(示例):

function v=testmain
x=-2:0.1:2;
v=fun(x);function r=fun(x)
for i=1:length(x)if x(i)<-1r(i)=x(i)^2+2*x(i)+1;elseif x(i)>-1 && x(i)<=2r(i)=3*x(i);elser(i)=2*sqrt(x(i));end
end

四、矩阵引用

引用矩阵可以用行列索引,也可以单行单列(注意单行单列是逗号),而且引用矩阵必须是括号

代码如下(示例):

A(1,:)%引用第一行
A(:,2)%引用第二列
A(1,:)=A(1,:).^2;%给矩阵赋值要明白给谁赋值

五、非线性函数:fmincon的使用

  1. 使用时要注意哪里是只输入系数,哪里是方程
  2. 求最小值的是方程,其他的都只输出系数
  3. 同种变量用逗号隔开,不同种用分号
  4. 注意noncon的位置是使用@,引用里面有()
  5. lb ub里面是逗号
  6. 函数系数的对应关系

在这里插入图片描述

代码如下(示例):

function [min,val]=fun3
Fun=@(x) 2*(x(1)-1)^2+3*(x(2)-1)^2+0.2*x(1)*x(2)+(2*x(3)-2)^2
A=[3 2 6;4 5 2;2 9 7];
b=[50;40;100];
Lb=[0,0,0];
ub=[15,9,25];
[min,val]=fmincon(Fun,[0,0,0],A,b,[],[],Lb,ub,@noncon);
function [c,ceq]=noncon(x)
c=[-2*x(1)^-x(2)^2-x(3)^2+5,x(1)^2+x(2)^2+2*x(3)^2-200];
ceq=[0];

六、线性规划函数

1.linprog

求解常规线性规划
注意!!!f 函数调用是系数

代码如下(示例):
在这里插入图片描述

function [x,fval]=myfun19
f=[3,-4,2];
A=[1 -1 1;3 2 4;3 2 0];
b=[10;22;10];
Aeq=[];
beq=[];
lb=[0,0,0];
ub=[inf,inf,inf];
[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub);

2.fminbnd、fminsearch

用于找到极小值,fminbnd找到区间内,fminsearch找到从某一点开始的极小值
fminbnd

[x,val] = fminbnd(fun, x1, x2)

% 定义要最小化的函数
fun = @(x) x^2 + 2*x + 1;% 在区间[-2, 2]内寻找最小值
[x,val] = fminbnd(fun, -2, 2);

fminsearch

% 定义要最小化的函数
fun = @(x) x(1)^2 + x(2)^2;% 指定初始点
x0 = [1, 1];% 在多维空间中寻找最小值
x = fminsearch(fun, x0);

七、积分和微分

1.quad积分

y=@(x) (3.*x+2)./(x.^3+2.*x+5);
r=quad(y,0,3);

2.积分int 微分diff

在这里插入图片描述
在这里插入图片描述

F=@(x,y) exp(2*x.^2+3*y.^2);
I=integral2(F,0.5,1,0,1);%取值范围

八、lsqcurvefit

  1. xdata,ydata储存数据,x(i)存放未知变量
  2. 调用时要把 fun(x,xdata) 全部带上
  3. 注意调用时,x和x1的意义是已经计算的系数和要代入计算的函数值,他们的位置和使用fun时的位置相对应!!!

代码如下(示例):

xdata=[10.03,20.04,30.23,40.37,50.16,60.4,70.3,80.66,90.69,100.16,110.94,121.18,130.66,141.23,150.88,160.24];
ydata=[50.44,82.95,133.07,202.76,286.39,381.34,467.36,540.54,591.7,624.28,647.62,660.77,668.06,672.83,675.36,676.82];
fun = @(x,xdata) x(1)./(1+((x(1)/x(2))-1).*exp(-x(3)*xdata));
x0 = [1,1,1];
x = lsqcurvefit(fun,x0,xdata,ydata);
x1=[150:0.5:190];
y=fun(x,x1);

九、矩阵求解

  1. 可以使用linsolve
  2. 也可以求逆
  3. 或者是符号“\”
    在这里插入图片描述

代码如下(示例):

a=[1 1 -1 2;-1 -2 1 -3;1 1 1 -3;2 1 -3 1];
e=[-3;1;-7;4];
x=inv(a)*e;
a=[1 1 -1 2;-1 -2 1 -3;1 1 1 -3;2 1 -3 1];
e=[-3;1;-7;4];
x=linsolve(a,e);
a=[1 1 -1 2;-1 -2 1 -3;1 1 1 -3;2 1 -3 1];
e=[-3;1;-7;4];
x=a\e;

十、polyfit 函数进行多项式拟合

  1. p = polyfit(x, y, n);
  2. x 是数据点的 x 值(自变量)向量,y 是数据点的 y 值(因变量)向量,n 是要拟合的多项式的次数。
  3. polyval(p,50); 用于计算特定位置的值

代码如下(示例):

% 示例数据点
t=[1,6,11,16,21,26,31,36];
x=[5.35,10.51,15.664,20.76,25.94,30.08,35.22,40.36];
p=polyfit(t,x,1);
val=polyval(p,50);
r=[p,val];

十一、ode23和ode45

  1. 使用myode时,注意输入要把x,y都带上,先是自变量,后是因变量
  2. y(1)可表示y,y(2)可表示一阶导数
  3. 输出 [t,y] 分别是对应时间点和对应时间的输出值

在这里插入图片描述

y1 = 0:0.01:1;%取值范围
y0 = 1;初值
[t,y] = ode23(@myode, y1, y0);function dydx=myode(x,y)dydx=(2/3)*x/y^2;
function r = myfunx1 = 0:0.1:100;%定义范围x0 = [2; 0]; %定义初始条件[t, x] = ode23(@myode, x1, x0);%这里的x是一个向量
endfunction dxdt = myode(t, x)dxdt = [20*(1-x(1)^2)*x(2) + 0.5*x(1); 0];%x(1)代表x,x(2)代表dx/dt
end

十二、fzero

x0 是初始猜测的根的值。

代码如下(示例):

x = fzero(fun, x0)
x = fzero(fun, x0, options)

十三、meshgrid和surf

  1. 注意z的输出
  2. [x,y]=meshgrid(x取值,y取值)
  3. surf绘制表面图

代码如下(示例):

function z=myfun24
[x,y]=meshgrid(-3:0.1:3,-3:0.1:3);
z=x.*y.*exp(sin(x.^2+y.^2));
surf(x,y,z);

十四、fsolve

  1. 记住两个公式:root2和fsolve的使用
  2. folsve(@root2,x0)
  3. f=root2(x) f(1)= f(2)=

代码如下(示例):

% 示例数据点
function r=myfun29
x0=[0,0];
r=fsolve(@root2,x0);function f=root2(x)
f(1)=x(1)^2-x(2)-1;
f(2)=(x(1)-2)^2+(x(2)-0.5)^2-1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

14-39 剑和诗人13 - 顶级大模型测试分析和建议

​​​​​ 随着对高级语言功能的需求不断飙升&#xff0c;市场上涌现出大量语言模型&#xff0c;每种模型都拥有独特的优势和功能。然而&#xff0c;驾驭这个错综复杂的生态系统可能是一项艰巨的任务&#xff0c;开发人员和研究人员经常面临选择最适合其特定需求的模型的挑战。…

哈弗架构和冯诺伊曼架构

文章目录 1. 计算机体系结构 2. 哈弗架构&#xff08;Harvard Architecture&#xff09; 3. 改进的哈弗架构 4. 冯诺伊曼架构&#xff08;Von Neumann Architecture&#xff09; 5. 结构对比 1. 计算机体系结构 计算机体系结构是指计算机系统的组织和实现方式&#xff0c…

Python | Leetcode Python题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; class Solution(object):def containsNearbyAlmostDuplicate(self, nums, k, t):from sortedcontainers import SortedSetst SortedSet()left, right 0, 0res 0while right < len(nums):if right - left > k:st.remove(nums[left]…

68.WEB渗透测试-信息收集- WAF、框架组件识别(8)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;67.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;7&#xff09; 右边这些是waf的…

Mean teacher are better role models-论文笔记

论文笔记 资料 1.代码地址 2.论文地址 https://arxiv.org/pdf/1703.01780 3.数据集地址 CIFAR-10 https://www.cs.utoronto.ca/~kriz/cifar.html 论文摘要的翻译 最近提出的Temporal Ensembling方法在几个半监督学习基准中取得了最先进的结果。它维护每个训练样本的标签…

PCIe驱动开发(1)— 开发环境搭建

PCIe驱动开发&#xff08;1&#xff09;— 开发环境搭建 一、前言 二、Ubuntu安装 参考: VMware下Ubuntu18.04虚拟机的安装 三、QEMU安装 下载网站&#xff1a; https://download.qemu.org 下载文件&#xff1a;qemu-4.1.0-rc5.tar.xz 使用如下命令解压&#xff1a; tar …

clickhouse高可用可拓展部署

clickhouse高可用&可拓展部署 1.部署架构 1.1高可用架构 1.2硬件资源 部署服务 节点名称 节点ip 核数 内存 磁盘 zookeeper zk-01 / 4c 8G 100G zk-02 / 4c 8G 100G zk-03 / 4c 8G 100G clikehouse ck-01 / 32c 128G 2T ck-02 / 32c 128G 2T ck-03 / 32c 128G 2T ck-04 /…

java wait, notify, notifyAll三个方法

wait(), notify(), 和 notifyAll() 是 Java 中用于线程间通信和同步的方法&#xff0c;它们都是 Object 类中的方法&#xff0c;而非 Thread 类的方法。这些方法通常与 synchronized 关键字一起使用&#xff0c;用于实现线程之间的协作和互斥访问共享资源。 关于生产者-消…

PsQuerySystemDllInfo逆向

typedef struct _SYSTEM_DLL_ENTRY {ULONG64 type;UNICODE_STRING FullName;PVOID ImageBase;PWCHAR BaseName;PWCHAR StaticUnicodeBuffer; }SYSTEM_DLL_ENTRY, * PSYSTEM_DLL_ENTRY; 返回值为上面的结构体指针 验证 type: fullname inagebase: pwchar basename PWCHAR …

Windows 11文件资源管理器选项卡的4个高级用法,肯定有你喜欢的

作为一个每天使用文件资源管理器来管理我的工作流程的人,选项卡帮助我为处于不同完成阶段的工作创建了不同的文件夹。以下是我使用选项卡提高工作效率的最佳技巧。 打开和关闭选项卡 假设你的计算机上安装了Windows 11的最新更新,请按Ctrl+E打开文件资源管理器。在我发现“…

可验证算法在招投标领域的专家“盲抽”中的标段识别码加密应用研究

摘要 在招投标过程中&#xff0c;标段&#xff08;包&#xff09;识别码的安全性至关重要。本文提出了一种基于可验证算法的标段识别码加密方法&#xff0c;以确保其在专家“盲抽”过程中的保密性和可信性。通过对不同表的标段识别码进行全量加密&#xff0c;并通过匹配验证其…

烟草企业如何在数字化转型中实现从“传统”到“智能”的跨越?

在数字化浪潮的席卷下&#xff0c;各行各业都在经历着深刻的变革。作为国民经济的重要组成部分&#xff0c;烟草行业正处于高质量发展的重要阶段&#xff0c;加快信息系统国产化升级&#xff0c;对于提升行业竞争力、强化信息安全保障具有重要战略意义。 达梦数据积极助力烟草行…

FPGA_GTX:简要版

1. GTX介绍 Xilinx FPGA的GT意思是Gigabyte Transceiver。通常称呼为Serdes、高速收发器。GT在xilinx不同系列有着不同的产品&#xff0c;从7系列到UltraScale系列分别有GTP、GTX、GTZ、GTH、GTY和GTM。不同GT整体结构上类似&#xff0c;为了支持越来越高的line rate&#xff…

嵌入式Linux系统编程 — 7.2 进程的环境变量

目录 1 什么是进程的环境变量 2 环境变量的作用 3 应用程序中获取环境变量 3.1 environ全局变量 3.2 获取指定环境变量 getenv 4 添加/删除/修改环境变量 4.1 putenv()函数添加环境变量 4.2 setenv()函数 4.3 unsetenv()函数 1 什么是进程的环境变量 每一个进程都有一…

Android触摸事件分发关键点【笔记摘要】

触摸事件分发&#xff1a;就是一个为了解决触摸事件冲突而设置的机制 1.事件类型 ACTION_DOWN -> ACTION_UP / ACTION_CANCEL ACTION_DOWN -> ACTION_MOVE -> ACTION_MOVE -> ACTION_MOVE -> ACTION_UP / ACTION_CANCEL 这个取消事件ACTION_CANCEL它是一种特殊…

Hack The Box -- Blazorized

一、准备工作 端口扫描 详细扫描 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-30 21:39 EDT Nmap scan report for 10.10.11.22 Host is up (0.26s latency).PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 80/tcp op…

MyBatisPlus Service接口的继承

介绍 Service接口 接口基础了接口 IService&#xff0c;实现类实现就需要实现IService里的方法&#xff0c;但是MyBatisplus已经帮我们写好了实现类&#xff0c;给我们的实现类继承即可。 public interface IEmpService extends IService<Emp> { //其他业务方法.... }…

web学习笔记(八十)

目录 1.小程序实现微信一键登录 2. 小程序的授权流程 3.小程序配置vant库 4.小程序配置分包 5.小程序配置独立分包 6.小程序分包预下载 1.小程序实现微信一键登录 要先实现小程序一键登录首先我们需要给按钮设置一个绑定事件&#xff0c;然后在绑定事件内部通过wx.login…

产品经理-工作流程及职能(6)

产品经理作为互联网项目的主心骨&#xff0c;连接着团队的所有成员&#xff08;开发、设计、运营、测试、市场等&#xff09; 用合理的产品规划和清晰的产品愿景带领大家前进&#xff0c;通过满足用户需求来创造属于自己的商业利益。 在通常情况下&#xff0c;PM需要对整个产品…

最新扣子(Coze)实战案例:使用图像流做超分,模糊图片秒变清晰,完全免费教程

&#x1f9d9;‍♂️ 大家好&#xff0c;我是斜杠君&#xff0c;手把手教你搭建扣子AI应用。 &#x1f4dc; 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》&#xff0c;完全免费学习。 &#x1f440; 关注斜杠君&#xff0c;可获取完整版教程。&#x1f44d;&#x1f3f…