前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MATLAB的solve函数

MATLAB的solve函数

作者头像
全栈程序员站长
发布于 2022-09-13 06:13:45
发布于 2022-09-13 06:13:45
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

简单来说,solve函数可以进行以下情况的求解:

(1)等式:单/多变量+线性/非线性 ;(2)不等式

(是MATLAB doc solve的全部翻译,将常用部分标注彩色)

(唉,以后绝不这样干了)

语法

S = solve(eqn,var)example

S = solve(eqn,var,Name,Value)example

Y = solve(eqns,vars)

Y = solve(eqns,vars,Name,Value)example

[y1,…,yN] = solve(eqns,vars)example

[y1,…,yN] = solve(eqns,vars,Name,Value)

[y1,…,yN,parameters,conditions] = solve(eqns,vars,’ReturnConditions’,true)example

Description

一些函数

vpa 设置数值的精度(有效数字位数、保留的小数点位数)

subs 符号替换(用数字来替换符号变量)

ezplot 简单地画出函数的图形/曲线(显函数fun(x)、隐函数fun2(x,y)=0)

isAlways 一个判断函数(返回logical 1,表示true)

pretty 漂亮地打印符号表达式(看起来是有分子分母的格式)

举例

1.%% 求解单变量方程 %—–例子1—— syms x eqn=sin(x)==1; solve(eqn,x) %—–例子2—— syms x eqn=sin(x)==1; [solx,params,conds]=solve(eqn,x,’ReturnConditions’,true) %—–例子3————— %如果返回empty,则表明解不存在。如果返回empty+warning,则解可能存在,但是solve找不到 syms x solve(3*x+2,3*x+1,x)

2.%% 求解多变量方程 %—例1—————– %为了避免求解方程时对符号参数产生混乱,需要指明一个等式中需要求解的变量。 %如果不指明的话,solve函数就会通过symvar选择一个变量(认为该变量是要求解的变量) clc,clear syms a b c x sola=solve(a*x^2+b*x+c==0,a) %待求解的变量是a sol=solve(a*x^2+b*x+c==0) %待求解的变量是x

%—-例子2————– %当求解的变量大于1个时,你声明变量的顺序就是slove返回解的顺序 syms a b [b,a]=solve(a+b==1,2*a-b==4,b,a)

3.%% solve返回的解带有:参数&条件 %为了返回一个方程的完整的解(即解中含有的参数,及对参数的限制),需要指定ReturnConditions 为:true %—例子1:关于解的约束—- clc,clear syms x S=solve(sin(x)==0 ,x,’ReturnConditions’,true); S S.x S.parameters S.conditions %为了找到x的数值解,以一个值(利用函数subs)代替k。用函数isAlways检验该值是否满足关于k的限制 %检验k=4是否满足in(k, ‘integer’) isAlways(subs(S.conditions,S.parameters,4)) %isAlways返回的是logical 1(true),这意味着:对于k而言,4是一个合法值。 %利用4代替k,得到x的一个解。利用函数vpa获得该逼近的数值解(vpa设置数值精度:保留几位有效数字、几位小数) solx=subs(S.x,S.parameters,4) vpa(solx) %为0<x<2*pi寻找一个k的合法解,符合下面的前提:条件(S.conditions)、利用solve求解k的约束条件。替代解x中的k的值 assume(S.conditions) solk=solve(S.x>0,S.x<2*pi,S.parameters) solx=subs(S.x,S.parameters,solk)

4.%% 求解方程组(为变量分配解)———— %当求解方程组的时候,利用多个输出项对应求解的输出变量。 %solve返回一个符号数组(为每个相互独立的变量) %—–例子1————– syms a u v [sola,solu,solv]=solve(a*u^2+v^2==0,u-v==1,a^2+6==5*a,a,u,v) solutions=[sola,solu,solv] %—-例子2———— syms x y z [solx,soly,solz]=solve(35*(y-x)==0,-7*x-x*z+28*y==0,x*y-3*z==0,x,y,z) solutions=[solx,soly,solz]

5.%% 返回方程组完整的解(包括:参数和约束条件) %需要指定ReturnConditions 为:true %输出则要多附加两项:parameters 、conditions clc,clear syms x y [solx,soly,params,conditions]=solve(sin(x)==cos(2*y) , x^2==y , [x,y],’ReturnConditions’,true) solutions=[solx,soly]

6.%% 返回数值解 %解析解(analytical solution):用严格的公式表示的解。 %数值解(numerical solution):无法用严格的公式表示,是采用某种计算方法(有限元、逼近、插值)得到的。 %symbolic solver无法找到精确的用符号表示的解,因此在调用numeric solver之前会事先声明(warning)。因为等式不是多项式,所以想要找到全部可能的解需要很长时间。 %numeric solver不会尽力去找等式的全部numeric solution,它仅仅返回它找到的第一个解。 clc,clear syms x solve(sin(x)==x^2-1,x) %验证上面的等式确实有一个正值解:画出等式的左右两部分的曲线 ezplot(sin(x),-2,2) hold on ezplot(x^2-1,-2,2) hold off %也可以直接用函数vpasolve求出数值解(需要定义(寻找)解的范围) vpasolve(sin(x)==x^2-1,x,[0 2 ])

7.%% 求解不等式 %solve能求解满足约束条件的不等式 %需要指定ReturnConditions 为:true。这样可以返回解中涉及到的任何参数和约束条件 % x>0 % y>0 % x^2+y^2+xy<1 clc,clear syms x y S=solve(x^2+y^2+x*y<1,x>0,y>0 , [x,y], ‘ReturnConditions’,true); solx=S.x soly=S.y params=S.parameters conditions=S.conditions %利用subs和isAlways检验u=7/2和v=1/2是否满足约束条件 isAlways(subs(S.conditions,S.parameters,[7/2,1/2])) %isAlways返回loogical 1(true)表示这些值满足约束条件。将这两个参数的值带入(函数subs)S.x和S.y中,找到一个x和y的解 solx=subs(S.x,S.parameters,[7/2,1/2]) soly=subs(S.y,S.parameters,[7/2,1/2]) %用函数vpa得到解的数值形式 vpa(solx) vpa(soly)

8.%% 返回实数解 clc,clear syms x solve(x^5==3125,x) %如果仅仅需要一个实数解,那么就把选项Real设置成true solve(x^5==3125,x,’Real’,true)

9.%% 返回一个解(主值Principal) %不是返回一个无限多元素的周期解的集合,而是选择其中的最为实际的3个解(实际的、实用性的be most practical) syms x solve(sin(x)+cos(2*x)==1,x) %利用选择PrincipalValue设置为true选择一个解(主值) solve(sin(x)+cos(2*x)==1,x,’PrincipalValue’,true)

10.%% 应用简化规则来缩短结果 %solve默认是不对解采用简化规则的,但是这些解从数学上来讲,不总是正确的。这样以来,solve就不能symbolically求解方程了。 clc,clear syms x solve(exp(log(x)*log(3*x))==4 , x) %将IgnoreAnalyticConstraints (忽略解析约束)设置为true,这样就会应用简化规则,有可能让solve找到一个结果。 %简化规则的目的就是为了找到一个解。 %但是也不是任何情况下都可以应用简化规则,因此,应用简化规则后,应该对解的正确与否进行核实 S=solve(exp(log(x)*log(3*x))==4 , x,’IgnoreAnalyticConstraints’,true)

11.%% 忽略有关变量的假设 %sym和syms函数可以让你对符号变量进行假设(设置assumptions)。例如,可以声明x为正值 clc,clear syms x positive %那么,在上述假设下,求得的解只能是符合假设的解 solve(x^2+5*x-6==0,x) %如果想要得到方程全部的解,则需要将IgnoreProperties 设置为true solve(x^2+5*x-6==0,x,’IgnoreProperties ‘,true) %为了后续计算,清除之前的假设 syms x clear

12.%% 数值逼近符号解(that Contain RootOf) %当求解多项式的时候,solve可能返回包含RootOf的解。为了数值逼近这些解,可以采用vpa函数。 clc,clear syms x s=solve(x^4+x^3+1==0,x) %因为解中没有参数,所以可以采用vpa进行数值逼近 vpa(s)

13.%% 求解高阶的多项式等式 %当求解高阶的多项式方程的时候,solve可能采用 RootOf表示求得的解 clc,clear syms x a solve(x^4+x^3+a==0,x) %为了得到方程的显式解,尝试调用带有参数MaxDegree的solve函数。该选项规定了多项式最大的degree,solve以此标准返回显式解。 %默认值是3。增大该数值,就可以得到高阶多项式的显式解。 s=solve(x^4+x^3+a==0,x,’MaxDegree’,4) pretty(s)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160807.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
32. 镜头、曝光,以及对焦(下)
在镜头、曝光,以及对焦(上)中,我们看到了采用镜头能获得更加清晰和更高信噪比的图像,理解了薄透镜模型的几何关系,景深以及影响景深大小的典型因素,真实镜头和薄透镜模型不同的地方。
HawkWang
2020/04/17
1.1K0
32. 镜头、曝光,以及对焦(下)
高通Camera数字成像系统简介
转载: https://deepinout.com/qcom-camx-chi/qcom-camx-system-intro.html
音视频开发进阶
2021/05/10
2.2K0
高通Camera数字成像系统简介
31. 镜头、曝光,以及对焦(上)
它能使得真实物体透过小孔在屏幕上成一个倒像。而且我们知道,理想中的小孔具有无限小的尺寸。
HawkWang
2020/04/17
9390
31. 镜头、曝光,以及对焦(上)
33. 摄影-怎样对焦才能让不同距离的物体都拍摄清晰?
怎样对焦,才能让场景中不同距离的每个物体都拍摄清晰?如果你喜欢摄影,在构图和取景时我想这个问题一定困惑过你。如我的文章31. 镜头、曝光,以及对焦(上)所说,镜头是有景深的,因此景深范围内的物体可以清晰成像,不在这个范围内的物体则会显得模糊。
HawkWang
2020/04/17
1.1K0
33. 摄影-怎样对焦才能让不同距离的物体都拍摄清晰?
【GAMES101】Lecture 19 相机
成像可以通过我们之前学过的光栅化成像和光线追踪成像来渲染合成,也可以用相机拍摄成像
叶茂林
2024/02/09
1440
【GAMES101】Lecture 19 相机
机器视觉工业缺陷检测(光源,相机,镜头,算法)
视觉工业检测大体分为工件尺寸测量与定位,和表面缺陷检测,及各种Logo标识的检测与识别等。
机器学习AI算法工程
2021/10/14
18.3K0
机器视觉工业缺陷检测(光源,相机,镜头,算法)
39. 消除失焦模糊的其他几种方法
这里面,编码光圈的优点是能同时获取到场景的全焦图像和相对粗糙的深度图,有了这个深度图,还可以实现像多视角成像这类功能。其缺点是由于编码光圈挡住了一部分光线,所以整体的亮度偏暗,信噪比也不够。而且由于不同物距的模糊核不一致,还需要进行提前的标定。
HawkWang
2020/04/17
1.6K0
39. 消除失焦模糊的其他几种方法
摄影构图:如何处理对焦、快门速度、光圈大小、ISO 以及拍摄方式
99%的焦虑都来自于虚度时间和没有好好做事,所以唯一的解决办法就是行动起来,认真做完事情,战胜焦虑,战胜那些心里空荡荡的时刻,而不是选择逃避。不要站在原地想象困难,行动永远是改变现状的最佳方式
山河已无恙
2024/06/21
2390
摄影构图:如何处理对焦、快门速度、光圈大小、ISO 以及拍摄方式
光学基础知识:焦点、弥散圆、景深:概念与计算
与光轴平行的光线射入凸透镜时,理想的镜头应该是所有的光线聚集在一点后,再以锥状的扩散开来,这个聚集所有光线的一点,就叫做焦点。
3D视觉工坊
2023/04/30
2.1K1
光学基础知识:焦点、弥散圆、景深:概念与计算
机器视觉工程师必须了解的基础知识
数码相机的构造与传统的胶片式相机(模拟式)基本相同。所不同的是数码相机中使用被称为 CCD 的光电转换元件代替胶片,图像则作为数字信息采入。 CCD 即相当于模拟式相机的胶片,那么它又是如何将图像转换为数字信号的呢?
小白学视觉
2019/07/17
2.5K0
机器视觉工程师必须了解的基础知识
手机中的计算摄影1——人像模式(双摄虚化)
很多人咨询我,手机上到底有哪些计算摄影的应用和技术。那么接下来就准备抽空写一系列文章做一下介绍。
HawkWang
2021/09/01
2.6K0
35. 去卷积:怎么把模糊的图像变清晰?
让我先从第一种镜头的缺陷导致的图像模糊讲起,因为这是所有的镜头都会存在的固有的问题。
HawkWang
2020/04/17
1.9K0
35. 去卷积:怎么把模糊的图像变清晰?
数字成像系统概述
当你打开手机准备拍照,镜头(Lens)会首先把被摄景物投影在图像传感器(Sensor)上,与此同时,影像处理器(ISP)会通过测光、测距算出合适的参数并指示镜头对焦,随着你按下拍照键,图像传感器(Sensor)会完成一次曝光,并通过影像处理器(ISP)变成图片,再经手机应用的后期处理,最终呈现在屏幕上。
雪月清
2020/09/01
1.6K0
数字成像系统概述
机器视觉系统之——镜头、相机介绍
1).分辨率(Resolution):相机每次采集图像的像素点数(Piels),对于数字工业相机机一般是直接与光电传感器的像元数对应的,对于模拟相机机则是取决于视频制式,PAL制为768*576,NTSC制为640*480。
AI机器视觉
2022/06/01
1.6K0
机器视觉系统之——镜头、相机介绍
3D Imaging Using Extreme Dispersion in Optical Metasurfaces
由于超表面对入射光的相位、偏振和振幅的极端控制,因此具有革新成像技术的潜力。它们依靠增强的光的局部相互作用来实现所需的相位轮廓。由于光的局部相互作用增强,超表面是高度色散的。这种强分散被认为是实现常规超表面成像的主要限制。在这里,我们认为这种强色散为计算成像的设计自由度增加了一个程度,潜在地打开了新的应用。特别是,我们利用超表面的这种强分散特性,提出了一种紧凑、单镜头、被动的3D成像相机。我们的设备由一个金属工程,聚焦不同的波长在不同的深度和两个深度网络,恢复深度和RGB纹理信息从彩色,散焦图像获得的系统。与其他基于元表面的3D传感器相比,我们的设计可以在更大的视场(FOV)全可见范围内运行,并可能生成复杂3D场景的密集深度图。我们对直径为1毫米的金属的模拟结果表明,它能够捕获0.12到0.6米范围内的3D深度和纹理信息。
狼啸风云
2021/06/17
1.7K0
3D Imaging Using Extreme Dispersion in Optical Metasurfaces
40. 如何消除摄影中的运动模糊?
如果你试过去拍摄一些运动场景,例如拍摄疾驰的汽车,或是田径场上的短跑运动员,你一定曾经遇到过“拍糊”的时候。这种现象就是我在本文中要讨论的由运动导致的图像模糊,这是一种与我之前介绍的几种导致图像模糊的方式完全不同的问题,所以今天让我们来看看有什么好办法来应对。
HawkWang
2020/04/17
2.6K0
40. 如何消除摄影中的运动模糊?
工业机器视觉系统相机如何选型?(理论篇—3)
数字图像是机器视觉系统工作的前提和基础,工业机器视觉系统把成像子系统的信号转换为反映现实场景的二维数字图像,并对其进行分析、处理,得出各种指令来控制机器的动作。
不脱发的程序猿
2021/05/08
1.8K0
工业机器视觉系统相机如何选型?(理论篇—3)
34. 光场--捕获场景中所有的光线
在27. HDR - 高动态范围成像中,我向你介绍了把多个不同曝光程度的有限动态范围的图像融合起来,我们可以得到高动态范围的图像
HawkWang
2020/04/17
8620
34.  光场--捕获场景中所有的光线
智能手机双摄像头工作原理详解:RBG +RGB, RGB + Mono
用户1150922
2018/01/08
3.6K0
智能手机双摄像头工作原理详解:RBG +RGB, RGB + Mono
图像处理-激光测距技术&工业相机基本原理概述「建议收藏」
景深随镜头的焦距、光圈值、拍摄距离而变化。对于固定焦距和拍摄距离,使用光圈越小,景深越大。 主要不要过光了
全栈程序员站长
2022/09/02
9240
图像处理-激光测距技术&工业相机基本原理概述「建议收藏」
推荐阅读
相关推荐
32. 镜头、曝光,以及对焦(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档