R语言非线性方程数值分析生物降解、植物生长数据:多项式、渐近回归、米氏方程、逻辑曲线、Gompertz、Weibull曲线...

news2024/11/19 21:16:32

全文链接:https://tecdat.cn/?p=33742

在选择最佳拟合实验数据的方程时,可能需要一些经验。当我们没有文献信息时该怎么办?我们建立模型的方法通常是经验主义的。也就是说,我们观察过程,绘制数据并注意到它们遵循一定的模式点击文末“阅读原文”获取完整代码数据)。

相关视频

简介

例如,我们的客户可能观察到一种植物对某种毒性物质的反应是S形的。因此,我们需要一个S形函数来拟合我们的数据,但是,我们如何选择正确的方程呢?

我认为列出最常见的方程以及它们的主要特性和参数的意义可能会有用。因此,我还将给出相应的R函数。

非线性回归的一个问题是它以迭代方式工作:我们需要提供模型参数的初始猜测值,算法逐步调整这些值,直到(有希望)收敛到近似最小二乘解。根据我的经验,提供初始猜测可能会很麻烦。因此,使用包含R函数非常方便,这可以极大地简化拟合过程。

让我们加载必要的包。

library(nlme)

曲线形状

曲线可以根据其形状进行简单分类,这对于选择正确的曲线来研究过程非常有帮助。我们有:

  • 多项式

  1. 线性方程

  2. 二次多项式

凹/凸曲线(无拐点)

  1. 指数方程

  2. 渐近方程

  3. 负指数方程

  4. 幂曲线方程

  5. 对数方程

  6. 矩形双曲线

Sigmoid 曲线

  1. 逻辑方程

  2. Gompertz 方程

  3. 对数-逻辑方程(Hill 方程)

  4. Weibull 类型 1

  5. Weibull 类型 2

具有最大值的曲线

  1. Brain-Cousens 方程


多项式

多项式是描述生物过程的最灵活的工具。它们简单,并且虽然是曲线状的,但它们在参数上是线性的,并且可以通过使用线性回归来拟合。一个缺点是它们不能描述渐近过程,而这在生物学中非常常见。此外,它们容易过度拟合,因为我们可能会试图添加项来改善拟合,而很少关心生物现实性。


线性方程

显然,这不是一条曲线,尽管值得在这里提到。方程为:

20f651d41f167bf36113dd5873b4d65f.png

其中 b0 是当 X = 0 时 Y 的值,b1 是斜率,即 X 增加/减少一个单位时 Y 的增加/减少。当 b1>0 时,Y 随着 X 的增加而增加,否则随之减少。

二次方程

该方程为:

da83e39ecc61319fb60b8027709da480.png

其中,当 X=0 时, b0 是 Y 的值,当 X=0 时, b1和 b2 各自没有明确的生物学意义。然而,考虑到一阶导数为:

97bea8011a43782657ed885d8542d4da.png

它测量了在 X 增加一个单位时 Y 的增加/减少。我们可以看到这种增加/减少不是恒定的,而是根据 X 的水平而变化。

在最大值/最小值处,响应为:

1916cafe89e59d9ffdc6de841407ac7f.png

R 中的多项式拟合

在 R 中,可以使用线性模型函数 'lm()' 进行多项式拟合。虽然这不是高效的方法,但在某些情况下,我发现自己需要使用 'nls()' 或 'drm()' 函数进行多项式拟合。


凹/凸曲线

让我们进入非线性领域。凹/凸曲线描述了非线性关系,通常带有渐近线和无拐点。我们将列出以下最常用的曲线类型。


指数方程

指数方程描述了递增/递减的趋势,具有恒定的相对速率。最常见的参数化形式是:

92c274a42e3bc09397a707e5647011c1.png

其他可能的参数化形式包括:

9d9641148787eb03fe2880b4f963798e.png

上述参数化形式是等价的,可以通过设置

0b226c4e171f0dd369a98eb582e7c8f7.png

a2affd16d032b359576c756f7889acb5.png

以及

eed1b86dc8a3b4be2f15812efe003928.png

参数的含义很明确:当 X=0 时, a 是 Y 的值,而 k 表示 X 增加一个单位对 Y 的相对增加/减少。如果我们计算指数函数的一阶导数:

D( expression(a * exp(k * X)), "X")

7f0f2a018596bfd8877aea7e797b3b56.png

从上面我们可以得出结论:通过 X 绘制的切线的斜率为 k,也就是 (k, Y)。因此,Y 增加的量与其实际水平成比例。

moel <- drm(Cnc ~ ime fc = DRC.pDcay(),
             daa =eradtion)
sumay(mdel)

eeda9b8cdd7afc40a13949aedce59b68.png

plt(mdel, log="")

69beb4bfad8382f967abf8b48a4fb8c8.png

'drc' 包还包含 'EXD.2()' 函数,它拟合了一个稍微不同参数化的指数衰减模型:

90db7c719559c6f392e8c76ff731beca.png

其中,d与上述模型中的a相同,e=1/k。

3c091280123d0a294dd85d11c21a6955.png

我将同时展示EXD.2(蓝色曲线)和EXD.3(红色曲线)的示例。

R
curve(EXD.fun(x, 0, 100, -1/0.05), col="blue", xlab = "X",
      ylab = "Y", main = "指数衰减", 
      xlim = c(0, 100), ylim = c(0,100))
curve(EXD.fun(x, 20, 100, -1/0.05), col="red", add = T)

6b1d5d33453c8992001fbe1bf3671b1d.png


点击标题查阅往期内容

4c6a1463c6ba937a8f93c245b54f2841.jpeg

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例

outside_default.png

左右滑动查看更多

outside_default.png

01

88d9ab42d73a2e261aab613a2e5f8bf0.png

02

9d0040c8e04e3cf6cbdb330fc259e784.png

03

56919837f9be547776d868aae681bd7a.png

04

b5ed472cafcfff64f2424f2d8a360efa.png

渐近回归模型

渐近回归模型描述了有限增长,其中当X趋于无穷大时,Y趋近于一个水平渐近线。这个方程有多种不同的参数化形式,也被称为单分子生长、Mitscherlich定律或von Bertalanffy定律。

由于其生物学意义,最常见的参数化形式是:

c77ba0b08411d0682958066bd1969b95.png

其中a是最大可达到的Y,b是x=0时Y的值为0,c与Y随X增加而相对速率成比例。事实上,我们可以看出它的一阶导数是:

R
D(exesion(a - (a - b) * exp (- c * X)), "X")

641148c3336a1d57ae15314ba7858857.png

即:

cc2114663e4e42272382e1cb67d2d0e6.png

我们可以看到生长的相对速率并不是常数(如指数模型中),而是在Y=0时最大,并随着Y的增加而减小。

让我们模拟一个示例。

R

model <- rmY ~ X, fct = DC.syReg())
plot(odl, log="", main = "渐近回归")

85547bba1884a3a0361c66da8b5306f3.png

负指数方程

如果我们在上述方程中加上限制条件b=0,我们得到以下方程,通常被称为“负指数方程”:

dddc004a67169d56d77623f75e2443a2.png

这个方程的形状与渐近回归类似,但当X=0时,Y=0(曲线通过原点)。它通常用于建模吸收的光合有效辐射(Y=PARa)与入射光合有效辐射(a=PARi)、叶面积指数(X=LAI)和消光系数(c=k)之间的关系。


幂函数曲线

幂函数曲线也被称为弗洛伊德方程或者等比方程,最常用的参数化形式如下:

4ab2223b4241f0551f72e0129d80fdce.png

这个曲线与X的对数上的指数曲线等效,实际上可以表示为:

ca81c07b2026c69ada29beacd155a006.png

对于X→∞,曲线并没有渐近线。斜率(一阶导数)为:

D(expression(a * X^b), "X")

e73f75afb3ed0ae3e5f0852bf5358e6e.png

我们可以看到两个参数与曲线的斜率有关,b决定了曲线的形状。当0<−b<1时,随着X的增加,Y也会增加,曲线呈现凸向上的形状。例如,这个模型可以用于根据采样面积来建模植物物种数量(Muller-Dumbois方法)。

moel <- drm(nuSces ~ Aea, fct = DCowCurve(),
             data = spieAra)
summary(mdel)

1512e86636f07b48d84219e3aae3289a.png

plot(oel, log="")

05c83b2872fc4a2a7f60a0f431fd1f27.png

如果b<0,曲线将呈现凹向上的形状,Y随着X的增加而减少。

curve

f2f6c281c5385849e1df543c75dac4b2.png

如果b>1且为负数,曲线将呈现凹向上的形状,Y随着X的增加而增加。

curve(powerC

c2b7baad0205eae8fe383f0450d5307b.png

对数方程

这确实是一个对数转化后的线性模型:

1d80b1898f91c05dc616e9afb40b7bc9.png

可以使用 'lm()' 函数来拟合对数方程。

# b 是正值

model <- lm(Y ~ log(X) )
summary(model)

17f8efcd6cae796cb11f6815e4a3d53b.png

summary(model)

bd32a96ffe3f6029cfc1d5b1f48d57f6.png

plot(model,

1d3ca20617801bbfa336e9a8377905cc.png

# b 是负值
X <- c(1,2,4,5,7,12)
a <- 2; b <- -0.5

summary(model)

8a50e44a8a80eec04d13b4523cb11024.png

plot(model, log="",

4b15b2027e3d909923e8e38aba3d53f7.png

Michaelis-Menten方程

这是一个双曲线形状的方程,通常参数化为:

0379852a9fc9c20e8cb73cf33b5857b9.png

这条曲线朝上凸起,随着X′ 的增加而增加,直到达到一个平台水平。参数a′ 表示高位渐近线(对于X→∞),而b′ 是使得响应等于a/2的X值。事实上,很容易证明:

19d9e413e93ee2c4d69fd23993a28912.png

由此可得,b=x50=50。

斜率(一阶导数)为:

D(expression( (a*X) / (b + X) ), "X")

1715314778eb9e256bf4ad206c913d37.png

从这里可以看出,初始斜率(在X=0时)为 i=a/b。

{r}

res <- rnorm(8, 0, 0.1)
Y <- Ye + res

# nls拟合
mol <- nls(Y ~ SSien(X, a, b))
summary(model)

11147a90c8e682015b00ea690b06bb31.png

{r}
# drm拟合
summary(model)

360eceae83a450b2832eee7d37bb25af.png

{r}
plot(model, log="", main = "Mic

c149293dd17bfaadd42649b4caaef0b4.png

"drc"包还包含自启动函数 "MM.3()",其中当 X=0 时,允许 Y ≠ c ≠ 0。


产量损失/密度曲线

杂草与农作物竞争研究使用重新参数化的Michaelis-Menten模型。实际上,Michaelis-Menten的初始斜率可以被视为竞争的测量,即在首次添加杂草到系统中时产量(Y)的减少。因此,将Michaelis-Methen模型重新参数化以将i=a/b=α/β作为显式参数进行描述。重新参数化的方程为:

44f0b805d9b64889fc33c7a2c4a89964.png

该模型可用于描述杂草密度对产量损失的影响。因此需要使用无杂草的产量和以下方程来计算产量损失(百分比):

9267a8f0a2002ff24669b87fb763e61e.png

其中,YW是观测到的产量,YWF是无杂草的产量。下面以日葵种植在增加密度的Sinapis arvensis杂草中的情况为例进行说明。

{r}

competition$YL <- (Ywf - competition$Yield) / Ywf * 100

# nls拟合

summary(model)

c4bcb2d759ed2523ddf898967eb02284.png

{r}
# drm拟合

summary(model)

f1124179ad89685a4ce8c826c60d1059.png

{r}
plot(model, log="

15986613a2d491d877a6fc6929845d90.png

上述拟合约束了当杂草密度为0时,产量损失为0。

确实,从上述方程我们推导出:

2dfdc9d9be711eb960c09c9c0ed229ba.png

和所示:

66e8842337b3b0e5ca778d01c3a57148.png

model <- dr
summary(model)

ba9f6f0574fabdee72dc8cac1ee636da.png

plot(model

936ad857626a239f2b1de73eadcfb503.png

S 型曲线

S 型曲线具有 S 形状,可以是递增、递减、对称或非对称的。它们有许多参数化方法,有时可能让人困惑。因此,我们将展示一种常见的参数化方法,这在生物学方面非常有用。


逻辑曲线

逻辑曲线来源于累积逻辑分布函数;曲线在拐点处对称,并可以参数化为:

2e558e7f235458d6fea13f8f0941b45d.png

其中,d 是上渐近线,c 是下渐近线,e 是在 d 和 c 之间产生响应的 X 值,而 b 是拐点附近的斜率。参数 b 可以是正数或负数,因此 Y 可以随着 X 的增加而增加或减少。

逻辑函数非常有用,例如用于植物生长研究。

model <- dm(weightFree ~ DAE, fct =
sum

58675f1956b9c7d34d5331d73de1f0ca.png

plot(model, log="",

fce47f3e1692e2db71bbf754cc2ddfe8.png

Gompertz 曲线

Gompertz 曲线有许多参数化方法。我们倾向于使用与逻辑函数相似的参数化方法:

b1accc9f027da16500d8d48bb90232da.png

其中参数的含义与逻辑函数中的参数相同。不同之处在于该曲线在拐点处不对称。

另一种不对称性

我们已经看到,相对于逻辑函数,Gompertz 函数在开始时呈现更长的延迟,但之后稳步上升。我们可以通过以下方式更改 Gompertz 函数来描述不同的模式:

8767c8bf9454d32989d44b2b0b21e1fc.png

该函数的自启动函数尚不可用,至少在我所知道的范围内。此外,我也不知道这个函数的特定名称。

通过在图表中比较这三个逻辑函数,我们可以看到它们在偏斜和对称性方面的差异。

curve( E.fun(x, b, c, d, e), add = T, col = "blue" )
legen

bc0d49c0eb12a4a782b55cd9057131c8.png

基于对数的 S 型曲线

在生物学中,测量的数值通常是严格为正的(时间、重量、高度、计数)。因此,使用对非正数也定义的函数可能看起来不现实。因此,通常更倾向于使用独立变量 X 被限制为正的函数。所有上述描述的 S 型曲线都可以基于 X 的对数进行,这样我们可以得到更现实的模型。


对数-逻辑曲线

在许多应用中,S 型响应曲线在 x 的对数上是对称的,这需要一个对数-逻辑曲线(对数正态曲线实际上几乎等效,但很少使用)。例如,在生物测定中(但也在萌发测定中),对数-逻辑曲线定义如下:

6702d582877f4b133786a80ec34b4d38.png

参数的含义与上述逻辑方程中的含义相同。很容易看出上述方程等价于:

855fa80bdd32b45004965b608a26ab80.png

另一种可能的参数化方法是所谓的 Hill 函数:

a098b8800616e71ac661b861184134d1.png

确实:

e154850590094b55a9f53966a7877521.png

对数-逻辑函数用于作物生长、种子萌发和生物测定,它们可以具有与逻辑函数相同的约束条件。

我们展示了一个基于对数-逻辑拟合的示例,涉及到对一个除草剂处理的甘蓝菜生物测定中不断增加剂量的关系。

dm(FW~ Dose,fct = L.4(),data =brssica)
summary(model)

35bb2a7282559f43fa621e89ed298bb0.png

plot(model, main = "对数-逻辑方程")

c93a76961c8f5d64bedf0baa10594cab.png

Weibull 曲线(类型 1)

类型 1 Weibull 曲线与替代 Gompertz 曲线的对数-逻辑曲线相似。方程如下:

5d8adfb7a7acf14195b7f62a50ee4abc.png

参数与上述其他 S 型曲线的含义相同。

Weibull 曲线(类型 2)

类型 2 Weibull 曲线与 Gompertz 曲线的对数-逻辑曲线相似。方程如下:

c764a2469a2da1aefe519d7902a4ec27.png

参数与上述其他 S 型曲线的含义相同。

我们将对这些 Weibull 曲线拟合数据集。

plot(model, main = "Weibull functions")
plo

f2df286d83f33f19df730c9896548869.png


e385d5175c1338c3f73116826c06eb3f.png

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言非线性方程数值分析生物降解、植物生长数据:多项式、渐近回归、米氏方程、逻辑曲线、Gompertz、Weibull曲线》。

a3a0462272d1dc8b8e2e897f83a959a9.jpeg

9f4cbc8ba829e7bc11d8e935ea93db99.png

点击标题查阅往期内容

R语言混合线性模型、多层次模型、回归模型分析学生平均成绩GPA和可视化

R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型

eab1775ad27a6f1f395e09fee46d7239.png

53b856a251f2edf767a87364ccd2807b.jpeg

f6e1be937308b11fe37ba2ebce6b6915.png

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

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

相关文章

Qt使用opencv操作摄像头的例子

概述 这是一个Qt使用opencv lib操作摄像头的例子 详细 一、简介 这是一个Qt使用opencv lib操作摄像头的例子 二、代码实现过程 新建一个VideoCapture对象&#xff0c;然后通过这个对象读取Mat图像数据&#xff0c;再讲Mat数据转成QImage显示在QLabel上。 VideoCapture既支持…

PythonWeb服务器(HTTP协议)

一、HTTP协议与实现原理 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于在网络上传输超文本数据的协议。它是Web应用程序通信的基础&#xff0c;通过客户端和服务器之间的请求和响应来传输数据。在HTTP协议中连接客户与服务器的…

读写分离MySQL

利用Mycat控制后台数据库的读写分离和负载均衡 利用主从复制思想,实现读写分离,主库写,从库读 从库最好不要写,因为从库写入的数据不能同步到主库,只有主库写的数据才能同步到从库 balance属性值对应的含义(负载均衡) 一主一从读写分离的弊端 主节点Master宕机以后,业务系统…

DN-DETR(CVPR 2022)

DN-DETR&#xff08;CVPR 2022&#xff09; Accelerate DETR Training by Introducing Query DeNoising 匈牙利匹配不稳定导致了早期训练阶段的优化目标不一致 同一个图像&#xff0c;query在不同时期会对不同对象进行匹配 DN-DETR在真实的GT上添加噪声&#xff1a;xywh&am…

OpenGLES:多纹理贴图,文字水印

一.概述 上一篇博客讲解了OpenGLES怎么实现单纹理贴图 仅仅只绘制一张图片是不过瘾的 本篇博客讲解如何通过多纹理贴图实现图片和文本水印效果 在单纹理贴图基础上&#xff0c;多纹理贴图的区别主要有两点&#xff1a; 纹理的生成、绑定等由单个变成多个文本内容先转换为B…

深度学习实战基础案例——卷积神经网络(CNN)基于Xception的猫狗识别|第2例

文章目录 一、环境准备二、数据预处理三、构建模型四、实例化模型五、训练模型5.1 构建训练函数5.2 构建测试函数5.3 开始正式训练 六、可视化精度和损失七、个体预测 我的环境&#xff1a; pytorch&#xff1a;2.0python&#xff1a;3.8jupyternotebook 一、环境准备 impor…

jmeter——接口压测和性能监测实践

一、安装JMeter 1. 在客户端机器上安装JMeter压测工具&#xff0c;我这里安装的版本是apache-jmeter-5.2.1&#xff0c;由于JMeter是JAVA语言开发的&#xff0c;所以安装JMeter压测工具前先安装JDK&#xff0c;一般安装JDK1.8及以上即可。安装完成后&#xff0c;如果客户端机器…

【广州华锐互动】利用VR开展工业事故应急救援演练,确保救援行动的可靠性和有效性

在工业生产中&#xff0c;事故的突发性与不可预测性常常带来巨大的损失。传统的应急演练方式往往存在场地限制、成本高、效果难以衡量等问题。然而&#xff0c;随着虚拟现实&#xff08;VR&#xff09;技术的快速发展&#xff0c;VR工业事故应急救援演练应运而生&#xff0c;为…

基于PLE结合卡尔曼滤波的RSSI定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ............................................................... for Num_xb Num_xb2Num_…

Elasticsearch 部署学习

文章目录 Elasticsearch 部署学习1. 单节点部署 elasticsearch1.1 部署 jdk1.2 下载 elasticsearch1.3 上传文件并修改配置文件1.4 启动1.5 问题总结1.6 浏览器验证 2. 集群部署 elasticsearch3. 常用命令4. Elasticsearch kibana安装:one: 参考部署文档:two: 下载对应版本的安…

75、SpringBoot 整合 MyBatis------使用 Mapper 作为 Dao 组件

总结&#xff1a; 添加一个User类和Mapper接口&#xff0c; 在Mapper接口这个类上面添加Mapper注解&#xff0c;就可以和数据库进行映射了&#xff0c; 然后在mapper接口写方法和sql&#xff0c; 在测试类进行测试。 pom文件就添加个mybatis-spring-boot-starter 的组件&#x…

C 语言简单入门

C 语言发展历史|标准 1972年&#xff0c;丹尼斯里奇&#xff08;Dennis Ritch&#xff09;和肯汤普逊&#xff08;Ken Tompson&#xff09;在贝尔实验室开发 UNIX 操作系统时基于 B 语言设计出 C 语言。 1987年&#xff0c;布莱恩柯林汉&#xff08;Brian Kernighan&#xff…

Java核心知识点整理大全5-笔记

书接上回Java核心知识点整理大全4-笔记_希斯奎的博客-CSDN博客 目录 3.4.1. HashMap&#xff08;数组链表红黑树&#xff09; 3.4.1.1. JAVA7 实现 3.4.1.2. JAVA8 实现 3.4.2. ConcurrentHashMap 3.4.2.1. Segment 段 3.4.2.2. 线程安全&#xff08;Segment 继承 ReentrantLo…

【C语言】联合体与结构体如何巧妙配合使用节省内存空间?

本篇文章目录 1. 联合体的特点2. 计算联合体占用内存大小3. 利用联合体的特点判断当前机器是以什么字节序顺序存储数据&#xff1f;4. 联合体什么时候使用&#xff1f; 1. 联合体的特点 联合也是一种特殊的自定义类型&#xff0c;这种类型定义的变量也包含一系列的成员&#x…

微软最热门的10款前端开源项目!

本文来盘点微软开源的十大前端项目&#xff0c;这些项目在 Github 上获得了超过 45 万 Star&#xff01; Visual Studio Code Visual Studio Code 是一款由微软开发的开源的代码编辑器。它支持多种编程语言&#xff0c;如C、C、C#、Python、JavaScript 和 TypeScript 等&…

Nginx 代理 MySQL 连接

文章目录 Nginx 代理 MySQL 连接1. 前言2. 部署 Nginx&#xff0c;MySQL3. ngx_stream_core_module 配置方式3.1 stream3.2 server3.3 listen3.4 配置示例 4. 限制访问 IP4.1 allow4.2 deny4.3 配置示例 5. 综合案例 Nginx 代理 MySQL 连接 原文地址&#xff1a;https://mp.wei…

Windows批处理文件 @echo off作用

bat批处理文件代码中有echo off 这样的语句&#xff0c;echo off是什么意思&#xff1f;在bat中扮演着什么作用呢&#xff1f; A&#xff1a; echo off的意思是在批处理运行命令的时候不会一条一条的显示执行的命令&#xff0c;与之相匹配的还有echo on。 echo off 与echo on …

机器视觉康耐视Visionpro-脚本编写标记标识:点,直线,矩形,圆

显示标记标识的重要作用就是,对NG或者OK对操作机器视觉的人去看到具体位置缺陷或者NG坐标。 一.点CogPointMarker CogPointMarker PointMarker1 = new CogPointMarker();//创建对象,点CogPointMarker //注意运行工具 PointMarker1.X = 100; PointMarker1

基于FPGA的16QAM调制verilog代码

名称&#xff1a;FPGA的16QAM调制verilog 软件&#xff1a;Quartus 语言&#xff1a;Verilog 要求&#xff1a; 使用FPGA实现16QAM的调制&#xff0c;并进行仿真 代码下载&#xff1a;FPGA的16QAM调制verilog_Verilog/VHDL资源下载 代码网&#xff1a;hdlcode.com 部分代…