一种非线性函数的曲线拟合方法

一种非线性函数的曲线拟合方法
一种非线性函数的曲线拟合方法

一种非线性函数的曲线拟合方法(函数公式:k = A*(T^a)*exp(E/T) )

上一篇文章说了,函数的曲线拟合我以前没做过,所以是摸着石头过河,不知道所采用的方法是否合理,虽然是完成了拟合,不过我觉得自己采用的拟合方法还是比较原始的,希望做曲线拟合的朋友多多指教。

原始数据如下:

T(K) K

200.00 2.5069E-13

220.00 3.5043E-13

223.00 3.6741E-13

225.00 3.7904E-13

250.00 5.4617E-13

275.00 7.5744E-13

295.00 9.6192E-13

298.00 9.9551E-13

300.00 1.0183E-12

325.00 1.3346E-12

350.00 1.7119E-12

375.00 2.1564E-12

400.00 2.6739E-12

425.00 3.2706E-12

450.00 3.9527E-12

475.00 4.7261E-12

480.00 4.8922E-12

500.00 5.5968E-12

525.00 6.5710E-12

550.00 7.6544E-12

575.00 8.8529E-12

600.00 1.0172E-11

800.00 2.5705E-11

1000.00 5.1733E-11

1250.00 1.0165E-10

目标:拟合成k = A*(T^a)*exp(E/T) 模式的公式,

其中A、a和E为未知常数,是我们需要通过曲线拟合要求出的数据。

拟合目标中的公式是幂逼近和指数逼近的混合,用Matlab的cftool 工具箱的自定义函数来逼近,效果并不理想,所以我就参考了网上的一些博客和百度知道等资源,采取如下策略:

首先将非线性的拟合公式转化为线性公式,再用求解线性方程组的矩阵方法求出未知常数的值。

具体地说,拟合公式的线性化表达式为:log(k) = log(A) + a*log(T) + E/T 。这里有三个未知常数log(A)、a 和E,则依次取T,K各三个数据,组成N 个线性方程组:Cx=b,其中:x=[log(A), a, E], C=[1, log(T), 1/T], b=log(k) 。

解这些线性方程组,得到所有方程组的解组成的解矩阵xMat,其大小为N*3,对解矩阵的每一列求平均,即可得到所求的未知常数值。

根据以上策略,可求得未知常数A、a和E的值如下:

A = 3.8858e-020,a = 3.0595,E = -117.2915

程序源码:

function [A,a,E]= fun_NLFit(T,K)

% 函数FUN_NLFIT() 根据输入T,K的数据集,求出拟合公式k = A*(T^a)*exp(E/T) % 的未知常数A,a,E 。

logT=log(T);

logK=log(K);

daoT=T.^(-1);

lenT=length(T);

C=ones(3);

xMat=[];

% 为了提高拟合精度,从第一个数据点开始,依次分别取T、K的三个相邻的数据点% 组成线性方程组,若T 有lenT 个元素,则可组成lenT-2 个方程组

for r=1:lenT-2

C(:,2)=logT(r:r+2);

C(:,3)=daoT(r:r+2);

b=logK(r:r+2);

% C=[1 log(T) 1/T], b=log(k)

x=(C\b)';

xMat=[xMat; x];

% 每解一次方程组,则将解x 存入解矩阵xMat

end

% 对解矩阵的每一列求平均,即可得到所求的未知常数值

logA=mean(xMat(:,1));

A=exp(logA);

a=mean(xMat(:,2));

E=mean(xMat(:,3));

% 画出由点集T、K构成的目标曲线

h1=stem(T,K,'bo'); % ‘bo’表示每个点用一个小圆圈表示

set(h1,'MarkerFaceColor','green'); % 小圆圈内的颜色为绿色

set(h1,'LineStyle','none'); % 隐藏基线到点的连线

set(get(h1,'BaseLine'),'LineStyle','none'); % 隐藏基线

hold on; % 保持由点集构成的目标曲线,以便和拟合曲线进行对比

% 根据拟合公式,求出若干的拟合点,画出拟合曲线

t=200:10:1300;

k=A*(t^a)*exp(E/t);

plot(t,k,'r');

% 拟合曲线用红色表示

xlabel('T'); ylabel('K'); title('Nonlinear Curve Fitting');

拟合效果图如下:

发表于@ 2007年12月16日22:18:00|评论(1 )|编辑

粒子群算法在神经网络非线性函数拟合中的应用【精品文档】(完整版)

粒子群算法在神经网络非线性函数 拟合中的应用 一、本文研究和解决的问题 在自动控制问题中,系统辨识的目的是为了建立被控对象的数学模型。多年来,控制领域对于复杂的非线性对象的辨识一直未能很好的解决,神经网络所具有的非线性特性和学习能力使其在系统辨识方面有很大的潜力。为解决具有复杂的非线性、不确定性和不确知对象的辨识问题开辟了一条有效的途径。基于神经网络的系统辨识是以神经网络作为被辨识对象的模型,利用其非线性特性,可建立非线性系统的静态或动态模型。理论上,多层前馈神经网络能够以任意精度逼近任意非线性映射。 但传统神经网络学习算法中存在的收敛速度慢、容易陷入局部最优等缺点,于是设计了基于标准粒子群算法的神经网络非线性函数拟合系统。 二、传统的BP神经网络 BP 神经网络即采用误差反向传播算法的网络,是一种至今仍然最为流行的前馈型神经网络模型。BP 神经网络有很强的非线性映射能力,它能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供给网络进行学习训练,它便能完成由n 维输入空间到m 维输出空间的非线性映射。BP 学习算法属于误差修正型学习,其关键在于根据误差修正输出层和隐含层的连接权值。其学习的基本实现方法是基于最小平方误差准则和梯度下降优化方法来确定权值调整法则。 BP网络建模特点: 非线性映照能力:神经网络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。 并行分布处理方式:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。 自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。 数据融合的能力:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。 多变量系统:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦问题。

常见OTDR测试曲线解析

常见OTDR测试曲线解析 一、正常曲线 一般为正常曲线图, A 为盲区, B 为测试末端反射峰。测试曲线为倾斜的,随着距离的曾长,总损耗会越来越大。用总损耗( dB )除以总距离( Km)就是该段纤芯的平均损耗( dB/Km )。 二、光纤存在跳接点 中间多了一个反射峰,因为很有可能中间是一个跳接点,现城域网光缆中,比较常见。如:现主干光缆由汇接局至光缆交接箱,当有需求时,需由光交接箱布放光缆至用户端,光交接箱就需跳纤联接,所以在测试这样的纤芯时,就会出现像图中这样的曲线图。当然也会有例外的情况,总之,能够出现反

射峰,很多情况是因为末端的光纤端面是平整光滑的。端面越平整,反射峰越高。例如在一次中断割接当中,当光缆砍断以后,测试的曲线应该如光路存在断点图所示,但当你再测试时,在原来的断点位置出现反射峰的话,那说明现场的抢修人员很有可能已经把该纤芯的端面做好了。 三、异常情况 出现图中这种情况,有可能是仪表的尾纤没有插好,或者光脉冲根本打不出去,再有就是断点位置比较进,所使用的距离、脉冲设置又比较大,看起来就像光没有打出去一样。出现这种情况,1、要检查尾纤连接情况; 2、就是把OTD R的设置改一下,把距离、脉冲调到最小,如果还是这种情况的话,可以判断: 1、尾纤有问题;2、OTDR 上的识配器问题; 3、断点十分近,OTDR不足以测试出距离来。如果是尾纤问题,只要换一根尾纤就知道,不行的话就要试着擦洗识配器,或就近查看纤芯了。 四、非反射事件

1、这种情况比较多见,曲线中间出现一个明显的台阶,多数为该纤芯打折,弯曲过小,受到外界损伤等因素,多为故障点。 2、若光纤模式、折射率不一样,接续时也会出现此情况,常见光纤G651光纤(标准单模光纤,B1光缆),G653光纤(色散位移光纤,B2光缆)。造成这种现象的原因是由于接头两侧光纤的背向散射系数不一样,接头后光纤背向散射系数大于前段光纤背向散射系数,而从另一端测则情况正好相反,折射率不同也有可能产生增益现象。所以要想避免这种情况,只要用双向测试法就可以了。 五、光纤存在断点 这种情况一定要引起注意!曲线在末端没有任何反射峰就掉下去了,分析:1如果知道纤芯原来的距离,1、在没有到达纤

炉温测试板制作及曲线测试规范(20200517094721)

炉温测试板制作及曲线测试规范 1、目的: 规范SMT炉温测试方法,为炉温设定、测试、分析提供标准,确保产品质量。为炉温曲线的 制作、确认和跟踪过程的一致性提供准确的作业指导; 2、范围: 本规范适用于公司PCBA部SMT车间所有炉温设定、测试、分析及监控。 3.定义: 3.1升温阶段:也叫预热区,从室温到120度,用以将PCBA从环境温度提升到所要求的活性 温度;升温斜率不能超过3°C度/s;升温太快会造成元件损伤、会出现锡球现象,升 温太慢锡膏会感温过度从而没有足够的时间达到活性温度;通常时间控制在60S左右; 3.2恒温阶段:也叫活性区或浸润区,用以将PCBA从活性温度提升到所要求的回流温度; 一是允许不同质量的元件在温度上同质;二是允许助焊剂活化,锡膏中挥发性物质得到 有利挥发,一般普遍的锡膏活性温度是120-150度,时间在60-120S之间,升温斜率一 般控制在1度/S左右;PCBA上所有元件要达到熔锡的过程,不同金属成份的锡膏熔点 不同,无铅锡膏(SN96/AG3.5/CU0.5)熔点一般在217-220度,有铅(SN63/PB37)一 般在183度含银(SN62/PB36/AG2)为179度; 3.3回流阶段:也叫峰值区或最后升温区,这个区将锡膏在活性温度提升到所推荐的峰值温 度,加热从熔化到液体状态的过程;活性温度总是比熔点低,而峰值温度总在熔点之上, 典型的峰值温度范围是(SN63/PB37)从205-230度;无铅(SN96/AG3.5/CU0.5)从235-250 度;此段温度设定太高会使升温斜率超过2-5度/S,或达到比所推荐的峰值高,这种情 况会使PCB脱层、卷曲、元件损坏等;峰值温度:PCBA在焊接过程中所达到的最高温度; 3.4冷却阶段:理想的冷却曲线一般和回流曲线成镜像,越是达到镜像关系,焊点达到的固 态结构越紧密,焊点的质量就越高,结合完整性就越好,一般降温斜率控制在4度/S; 4、职责: 4.1 工程部 4.1.1工程师制定炉温测试分析标准,炉温测试员按此标准测试、分析监控炉温。 4.1.2 指导工艺技术员如何制作温度曲线图; 4.1.3 定义热电偶在PCB上的测试点,特别是对一些关键的元件定位; 4.1.4基于客户要求和公司内部标准来定义温度曲线的运行频率;

非线性曲线拟合的实证分析

- 17 - 非线性曲线拟合的实证分析 吴 燕 (安徽财经大学,安徽 蚌埠 233041) 【摘 要】文章主要是运用matlab 软件,通过定量分析对非线性曲线模型进行曲线拟合,得到非线性曲线的模型,并找出最佳模型。 【关键词】matlab;双曲线;对数曲线;幂函数曲线;预测 【中图分类号】TP319 【文献标识码】A 【文章编号】1008-1151(2008)09-0017-02 (一)理论概述 在生产和科学实验中,线性模型是回归模型中最常见的一种,但实际中,许多现象之间的关系往往并不是线性的,而是呈现某种曲线关系。这就产生了非线性模型理论方法。 非线性模型指的是关于参数或自变量是非线性函数的模型。非线性模型的形式复杂多样,有双曲线形式、对能够数 形式、幂函数形式等,更复杂的有修正指数曲线、Compterz 曲线以及Logistic 曲线等。如何根据实际的数据选择合适的模型,是建模的关键。总的说来可以参考两种方法:一是根 据散点图来确定类型,即由散点图的形状来大体确定模型类 型;二是根据一定的经济知识背景。 在matlab 软件中,非线性拟合主要是通过函数inline 和命令[beta,r,J] = nlinfit(x,y,fun,beta0)来进行的。其 中,函数inline 是用来定义所要求的函数的;用命令[beta,r,J]= nlinfit(x,y,fun,beta0)来进行拟合,其中x,y 为原始数据,fun 是在M 文件中定义的函数,beta0是函数中 参数的初始值;beta 为参数的最优值,r 是各点处的拟合残差,J 为雅克比矩阵的数值。 (二)实证分析 本文采用某企业在16个月度的某产品产量和单位成本资料的数据,研究二者关系,运用matlab 软件分别对数据进行双曲线拟合、对数曲线拟合,幂函数曲线拟合,并从中找出最佳的拟合形式。 某企业某产品产量和单位成本资料 月度序号 产量(台)x 单机成本(元/台)y 1 4300 346.23 2 4004 343.34 3 4300 327.46 4 5016 313.27 5 5511 310.75 6 5648 307.61 7 5876 314.56 8 6651 305.72 9 6024 310.82 10 6194 306.83 11 7558 305.11 12 7381 300.71 13 6950 306.84 14 6471 303.44 15 6354 298.03 16 8000 296.21 首先,为了明确产量和单机成本是何种关系,先绘制散点图。在matlab 软件中用plot(x,y)命令来做散点图,得到如下图形: 2333333 散点图 从图中可以看出y 和x 不宜采用线性模型来描述,此时考虑非线性模型。根据散点图,y 随着x 的增加而减少,结合 经济学中成本理论的相关知识,可以考虑以下三个模型: 双曲线:y=a+b/x 对数曲线:y=a+b*lnx 幂函数曲线:y=b ax 下面分别给出三种曲线函数的拟合程序: 1.双曲线模型:y=a+b/x x1=[4300,4004,4300,5016,5511,5648,5876,6651,6024,6194,7558,7381,6950,6471,6354,8000]; y1=[346.23,343.34,327.46,313.27,310.75,307.61,314.56,305.72,310.82,306.83,305.11,300.71,306.84,303.44,298.03,296.21]; 先要进行初始参数的计算,选择已知数据的两点(4300,346.23)和(8000,296.21),在matlab 软件中用如下命令来解方程组: [a,b]=solve('346.23=a+b/4300','296.21=a+b/8000'); 得到初始值a= 238.08,b= 465050.81 b01=[238.08,465050.81]; %初始参数值 fun1=inline('b(1)+b(2)./x','b','x'); % 定义函数 [b1,r1,j1]=nlinfit(x1,y1,fun1,b01); y=250+355460/x1; %根据b1写出具体函数 【收稿日期】2008-06-09 【作者简介】吴燕(1983-),安徽巢湖人,安徽财经大学数量经济专业在读生,研究方向为经济优化与应用。

用计算机绘制函数图像

用计算机绘制函数图像 利用计算机软件可以便捷、迅速地绘制各种函数图像。不同的计算机软件绘制函数图像的具体操作不尽相同,但都是基于我们熟悉的描点作图。即给子变量赋值,用计算法则算出相应的函数值,再由这些对应值生成一系列的点,最后连接这些点描绘出函数图像。下面以Excel 和《几何画板》为例,介绍用计算机软件作函数图像的方法。 1.用“Excel ”绘制函数3 y x =的图像 (1) 打开Excel ,在A 列输入自变量x 的值; (2) 把光标移到B 列,在编辑框输入计算法则“=POWER (A :A ,3)”,回车,在B 列 生成相应的函数值,如图1所示; (3) 选中数据区域A 、B 列,执行“插入→图表”命令,在“图表类型”中选择“XY 散点”,根据需要在“子图表类型”中选择其一。然后按照对话框中的提示,完成制图操作,就可得到如图2所示的函数3y x =的图像。 图1 图2 2.用《几何画板》绘制函数2(0)y bx b =≠的图像 (1) 打开几何画板,通过执行“构造/平行线”和“构造/线段”,生成平行于x 轴的 线段AB ,将A 固定于y 轴,B 为动点,选中B 点,执行“度量/横坐标”选项,画板上显示的点B 的横坐标B x 就是参数b 的值。 (2) 执行“图表/新建函数”,在对话框内输入函数表达式“*^2B x x ”,执行“图表 /绘制新函数”,即生成函数图像,如图3。

图3 图4 当你左右移动B 点的位置时,函数2(0)y bx b =≠就会“动”起来,如图4,如果有条件,请你绘制函数2(0)y ax bx c a =++≠的图像,并探究系数a 、b 、c 对函数图象的影响。

动态模量主曲线生成方法

主曲线使用方法 主曲线是一种将有限试验结果扩展至无限范畴的方法,它的前提是实验材料的力学特性具有时温特效,尤其是有机材料。 在时间历程上,测试4-5个温度(或者荷载)条件下的试验数据,然后,将其绘制在时间(x)-试验数据(y)的双对数log-log坐标轴上,使用时-温转换,得到主曲线。时-温转化的方法一般是,首先选择关注温度,并将该温度作为主温度;然后,顺次将不同温度下的数据沿时间(x)轴进行平移,平移多少由转换因子大小决定;最终,得到主曲线。 转换因子大小与温度值有关,可以选择WLF公式,也可以选择Arrhenius(阿尼乌斯)公式来计算,二者均可以从很多文献里获取。当不同的温度的曲线向主温度曲线处平移时,转换因子的正负便与平移方向有关,向左移是“+”,向右移是“-”(突然想起高中数学老师教的“+左-右”)。 有了上边的基本概念,就可以进行实际操作了,很简单,所有的操作都是在EXCEL表格里进行(在雅虎搜索里输入NCHRP09-29_mastersolver2-2.xls,点搜索后获取),只是要保证EXCEL 里装了solver规划求解宏(以OFFICE2007为例,点击左上角windows-Excel选项-加载项-规划求解加载项-转到-规划求解加载项-确定,如下图所示)。

在EXCEL表格DATA的sheet里,输入动态模量值和混合料其他体积参数,然后进入FIT的sheet里,将C4:C7里的数据拷贝到B4:B7,点击“规划求解”启动宏,目标单元格选择为Ⅰ23,“等于”这一项选择“最小值”,可变单元格选择为B4:B7,点击“求解”便可得到最小二乘法所列的最佳值。一般情况下,只需要一次计算就够了,个别的情况,可在使用一次规划求解,看看计算的结果不会变为止(第二次规划求解时不需要再拷贝C4:C7的数据)。

一种非线性函数的曲线拟合方法

一种非线性函数的曲线拟合方法(函数公式:k = A*(T^a)*exp(E/T) ) 上一篇文章说了,函数的曲线拟合我以前没做过,所以是摸着石头过河,不知道所采用的方法是否合理,虽然是完成了拟合,不过我觉得自己采用的拟合方法还是比较原始的,希望做曲线拟合的朋友多多指教。 原始数据如下: T(K) K 200.00 2.5069E-13 220.00 3.5043E-13 223.00 3.6741E-13 225.00 3.7904E-13 250.00 5.4617E-13 275.00 7.5744E-13 295.00 9.6192E-13 298.00 9.9551E-13 300.00 1.0183E-12 325.00 1.3346E-12 350.00 1.7119E-12 375.00 2.1564E-12 400.00 2.6739E-12 425.00 3.2706E-12 450.00 3.9527E-12 475.00 4.7261E-12 480.00 4.8922E-12 500.00 5.5968E-12 525.00 6.5710E-12 550.00 7.6544E-12 575.00 8.8529E-12 600.00 1.0172E-11

800.00 2.5705E-11 1000.00 5.1733E-11 1250.00 1.0165E-10 目标:拟合成k = A*(T^a)*exp(E/T) 模式的公式, 其中A、a和E为未知常数,是我们需要通过曲线拟合要求出的数据。 拟合目标中的公式是幂逼近和指数逼近的混合,用Matlab的cftool 工具箱的自定义函数来逼近,效果并不理想,所以我就参考了网上的一些博客和百度知道等资源,采取如下策略: 首先将非线性的拟合公式转化为线性公式,再用求解线性方程组的矩阵方法求出未知常数的值。 具体地说,拟合公式的线性化表达式为:log(k) = log(A) + a*log(T) + E/T 。这里有三个未知常数log(A)、a 和E,则依次取T,K各三个数据,组成N 个线性方程组:Cx=b,其中:x=[log(A), a, E], C=[1, log(T), 1/T], b=log(k) 。 解这些线性方程组,得到所有方程组的解组成的解矩阵xMat,其大小为N*3,对解矩阵的每一列求平均,即可得到所求的未知常数值。 根据以上策略,可求得未知常数A、a和E的值如下: A = 3.8858e-020,a = 3.0595,E = -117.2915 程序源码: function [A,a,E]= fun_NLFit(T,K) % 函数FUN_NLFIT() 根据输入T,K的数据集,求出拟合公式k = A*(T^a)*exp(E/T) % 的未知常数A,a,E 。 logT=log(T); logK=log(K);

常见OTDR测试曲线解析80569

常见OTDR测试曲线解析 一、正常曲线 一般为正常曲线图, A 为盲区,B 为测试末端反射峰。测试曲线为倾斜的,随着距离的曾长,总损耗会越来越大。用总损耗( dB )除以总距离(Km)就是该段纤芯的平均损耗(dB/Km )。 二、光纤存在跳接点 中间多了一个反射峰,因为很有可能中间是一个跳接点,现城域网光缆中,比较常见。如:现主干光缆由汇接局至光缆交接箱,当有需求时,需由光交接箱布放光缆至用户端,光交接箱就需跳纤联接,所以在测试这样的纤芯时,就会出现像图

中这样的曲线图。当然也会有例外的情况,总之,能够出现反射峰,很多情况是因为末端的光纤端面是平整光滑的。端面越平整,反射峰越高。例如在一次中断割接当中,当光缆砍断以后,测试的曲线应该如光路存在断点图所示,但当你再测试时,在原来的断点位置出现反射峰的话,那说明现场的抢修人员很有可能已经把该纤芯的端面做好了。 三、异常情况 出现图中这种情况,有可能是仪表的尾纤没有插好,或者光脉冲根本打不出去,再有就是断点位置比较进,所使用的距离、脉冲设置又比较大,看起来就像光没有打出去一样。出现这种情况,1、要检查尾纤连接情况;2 、就是把OTD R的设置改一下,把距离、脉冲调到最小,如果还是这种情况的话,可以判断:1、尾纤有问题;2、OTDR 上的识配器问题;3、断点十分近,OTDR不足以测试出距离来。如果是尾纤问题,只要换一根尾纤就知道,不行的话就要试着擦洗识配器,或就近查看纤芯了。 四、非反射事件

1、这种情况比较多见,曲线中间出现一个明显的台阶,多数为该纤芯打折,弯曲过小,受到外界损伤等因素,多为故障点。 2、若光纤模式、折射率不一样,接续时也会出现此情况,常见光纤G651光纤(标准单模光纤,B1光缆),G653光纤(色散位移光纤,B2光缆)。造成这种现象的原因是由于接头两侧光纤的背向散射系数不一样,接头后光纤背向散射系数大于前段光纤背向散射系数,而从另一端测则情况正好相反,折射率不同也有可能产生增益现象。所以要想避免这种情况,只要用双向测试法就可以了。 五、光纤存在断点 这种情况一定要引起注意!曲线在末端没有任何反射峰就掉下去了,分析:1如果知道纤芯原来的距离,1、在没有到达

用C++实现数学函数图形绘制(含源文件)

用VC++实现数学函数图形绘制 Use the VC++ to realize drawing figures of mathematic functions 摘要 Visual C++(以下简称VC++)是面向对象与可视化软件开发工具中比较成熟的一类。MFC是VC++中直接由Microsoft提供的类库,它集成了大量已定义好的类,我们可以根据需要,调用相应类,或根据需要自定义类。正是基于MFC 的这种特性,我们试图设计出具有封装性、独立性的功能模块------函数数据生成模块,函数曲线输出模块,模块之间的桥梁是由模板类CArray派生的CPoint 类数组充当的。函数数据生成模块用来实现对函数的设置并获得采样点,数组得到采样点数据并将其传递到输出模块中。从整体来看,实现了各程序模块的独立性,使得在函数模块中可任意添加、删除函数,可使用不同的DC和GDI,可实现不同的输出方式,整个工程在函数绘图功能上是无限扩展的。经过反复的调试和检验,我们实现了预期目标。我们的主要目的是尝试VC++在数学函数绘图方面的功能和应用。这是对VC++的探索,也是对数学函数绘图多样化的尝试。 关键字 数学函数图形绘制模板数组三次样条

【Abstract】 Visual C++ is one of the object oriented and visual software developer ,which is more mature than others . MFC is a class warehouse which is supplied by Microsoft ,and it contains a great deal of defined classes .we can transfer the corresponded class if necessary ,or give a fresh definition according our needs . Exactly based on MFC this kind of character, we try to design out the function mold which have the function to pack the class and be independent ------Mold for creating Function data, Mold for outputting the function curve, mold piece of born mold piece be sent by Cpoint Array rared by template CArray.The first mold is to make out sets for the function and get data we need which will be sent to the defined array,so now the array have the data that is to be got by the second mold.From whole project,we can see the independence of each mold,and exactly we may increase and decrease functions if necessary,we even can use different DC and GDI to realize the customed exportation method by which we can have a new view of the function curve. So, the function of the project can be extended freely.after repeatedly debugging and examining,we achieve our purpose.The most important thing we are trying is to find a way to connect the VC++ and the figures of mathmetic functions.This is not only a exploration to VC++,but also a attempt for realizing diversifing the mathmetic functions. 【Key words】 Mathematic functions drawingfigures template array tripline

炉温曲线测试规范

炉温曲线测试规范 1.目的 本规范规定了炉温曲线的测试周期、测试方法等,以通过定期的、正确的炉温曲线测试确定最佳的曲线参数,最终保证PCB装配的最佳、稳定的质量,提高生产效率和产品直通率。 2.定义 2.1回流曲线 在使用焊膏工艺方式中,通过固定在PCB表面的热电偶及数据采集器测试出PCB在回流焊炉中时间与温度的可视数据集合,根据焊膏供应商推荐的曲线,对不同产品通过适当调整温度设置及传输链的速度所得到的最佳的一组炉温设置参数。 2.2固化曲线 在使用点胶或印胶工艺方式中,通过固定在PCB表面的热电偶及数据采集器测试出PCB在固化炉中时间与温度的可视数据集合,根据焊膏供应商推荐的曲线,对不同产品通过适当调整温度设置及传输链的速度所得到的最佳的一组炉温设置参数。 2.3基本产品 指在一个产品系列中作为基本型的产品,该系列的其它产品都在此基础上进行贴装状态更改或对印制板进行少量的改版,一般情况下一个产品系列同一功能的印制板其图号仅在版本号上进行区分,如“***-1”与“***-2”或“***V1.1”与“***V1.2”等。 2.4派生产品 指由于设计贴装状态更改、或印制板在原有基础上进行少量的改版所生成的其所改动的CHIP 类器件数量未超过50只、同时没有对外形尺寸大于□20mm×20mm的IC器件(不包括BGA、CSP等特殊封装的器件)的数量进行调整的产品。 2.5全新产品 指产品公司全新开发、设计贴装状态更改或印制板在原有基础上改版时所生成的其所改动的CHIP类器件数量超过50只、或对外形尺寸大于□20mm×20mm的IC器件的数量进行调整的产品。凡状态更改中增加或减少了BGA、CSP等特殊封装的器件的产品均视为全新产品。 2.6测试样板 指用来测试炉温的实装板,该板必须贴装有与用来测试的生产状态基本一致的元器件。 3.职责 4.炉温测试管理 4.1炉温测试周期:原则上工程师根据当月所生产的产品应每月测试一次,将测试结果记录在“炉温参数设置登记表”上,并将炉温曲线打印存档。 4.2原则上全新产品必须经过炉温测试,确定准确的炉温设置参数,但对批量小于100套的全新工程师可以根据原有的相似产品根据观察实物的焊接效果进行自行调整。 4.3全新产品在炉温测试时应领取新的测试样板,派生产品可采用原基本产品的测试样板进行炉温测试,以针对不同的产品及状态设置相应准确的炉温参数。 5.测试准备 5.1炉温测试使用DataPaq炉温测试仪,热电偶使用K型。 5.2选择测温点。 热电偶应该安装在能代表PCB板上最热与最冷的连接点上(引脚到焊盘的连接点上),以及热敏感器件和其它高质量器件上,以保证其被足够地加热,一般测温点至少在三点及以上。测温点按以

函数的图像和函数的三种表示方法

函数的图象 课前预习 要点感知1对于一个函数,如果把自变量与函数的________分别作为点的横、纵坐标,在坐标平面内描出相应的点,这些点所组成的图形就是这个函数的________. 预习练习1-1下列各点在函数y=3x+2的图象上的是( ) A.(1,1) B.(-1,-1) C.(-1,1) D.(0,1) 1-2点A(1,m)在函数y=2x的图象上,则点A的坐标是________. 要点感知2由函数解析式画其图象的一般步骤是:①________;②________;③________.当堂训练 知识点1函数图象的意义 1.下列图形中的曲线不表示y是x的函数的是( ) 2.下图是我市某一天内的气温变化图,根据下图,下列说法中错误 的是( ) A.这一天中最高气温是24 ℃ B.这一天中最高气温与最低气温的差为16 ℃ C.这一天中2时至14时之间的气温在逐渐升高 D.这一天中只有14时至24时之间的气温在逐渐降低 3.甲、乙两人在一次百米赛跑中,路程s(米)与赛跑时间t(秒)的关 系如图所示,则下列说法正确的是( ) A.甲、乙两人的速度相同 B.甲先到达终点 C.乙用的时间短 D.乙比甲跑的路程多 4.(湖州中考)放学后,小明骑车回家,他经过的路程s(千米)与所用时间t(分 钟)的函数关系如图所示,则小明的骑车速度是________千米/分钟. 5.如图,表示甲骑电动自行车和乙驾驶汽车均行驶90 km的过程中,行驶 的路程y与经过的时间x之间的函数关系,请根据图象填空: (1)________出发的早,早了____小时,________先到达,先到____小时; (2)电动自行车的速度为______km/h,汽车的速度为______km/h. 知识点2画函数图象 6.画出函数y=2x-1的图象. (1)列表: x…-101… y…… (2)描点并连线; (3)判断点A(-3,-5),B(2,-3),C(3,5)是否在函数y=2x-1 的图象上 (4)若点P(m,9)在函数y=2x-1的图象上,求出m的值.

基于BP神经网络的非线性函数拟合

基于BP神经网络的非线性函数拟合 摘要:本文建立BP神经网络对一个多输入多输出系统的二元非线性函数进行拟合,仿真实验表明:在样本数据充足且不含噪声的情况下,训练的精度越高,逼近的效果越好;数据不充足且不含噪声时,训练精度的高低在一定范围内对于网络性能没有决定性的影响,网络性能主要取决于初始化;不管训练数据是否充足,若含有噪声,训练精度过高会使网络泛化能力降低。 0引言 作为当前应用最为广泛的一种人工神经网络,BP网络在函数逼近、模式识别、数据压缩、智能控制等领域有着非常广泛的应用。BP网络由大量简单处理单元广泛互联而成,是一种对非线性函数进行权值训练的多层映射网络,结构简单,工作状态稳定,具有优良的非线性映射能力,理论上它能够以任意精度逼近任意非线性函数。BP神经网络通过学习能够存储大量输入输出样本中蕴含的映射关系,只需提供足够的样本模式对BP网络进行训练,而无需事先了解数学方程。本文采用BP神经网络解决下列函数拟合问题。 函数逼近:设计一个神经网络拟合下列多输入多输出函数: y1=2+x1RP1.5-1.5sin(3x2); y2=x2sin(x1)+x1cos(x2); 1< x1, x2<5 产生200个数据,其中100个用来训练网络,另外100个用于网络模型的测试。1BP神经网络结构和算法 一个典型的3层BP神经网络结构如图1所示,包括输入层、隐含层和输出层。各层

神经元之间无反馈连接,各层内神经元之间无任何连接。其中隐含层的状态影响输入输出之间的关系,及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。BP 神经网络的学习过程由正向传播和反向传播组成。在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精度要求。BP 算法的实质是求取误差函数最小值问题,通过多个样本的反复训练,一般采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。 隐含节点 图1 典型3层BP神经网络结构图 2用于函数拟合的BP神经网络模型的建立 为建立函数拟合的BP神经网络模型,一般要考虑以下几步: (1) 样本数据的产生 为简单起见,在x1,x2均属于[1,5]区间内选择均匀分布的200个数据点分别作为训练和测试样本。如图2所示。

matlab非线性参数拟合估计_很好的参考材料

使用nlinfit、fminsearch在matlab中实现基于最小二乘法的 非线性参数拟合 (整理自网上资源) 最小二乘法在曲线拟合中比较普遍。拟合的模型主要有 1.直线型 2.多项式型 3.分数函数型 4.指数函数型 5.对数线性型 6.高斯函数型 ...... 一般对于LS问题,通常利用反斜杠运算“\”、fminsearch或优化工具箱提供的极小化函数求解。在Matlab中,曲线拟合工具箱也提供了曲线拟合的图形界面操作。在命令提示符后键入:cftool,即可根据数据,选择适当的拟合模型。 “\”命令 1.假设要拟合的多项式是:y=a+b*x+c*x^ 2.首先建立设计矩阵X: X=[ones(size(x)) x x^2]; 执行: para=X\y para中包含了三个参数:para(1)=a;para(2)=b;para(3)=c; 这种方法对于系数是线性的模型也适应。 2.假设要拟合:y=a+b*exp(x)+cx*exp(x^2) 设计矩阵X为 X=[ones(size(x)) exp(x) x.*exp(x.^2)]; para=X\y 3.多重回归(乘积回归) 设要拟合:y=a+b*x+c*t,其中x和t是预测变量,y是响应变量。设计矩阵为X=[ones(size(x)) x t] %注意x,t大小相等! para=X\y polyfit函数 polyfit函数不需要输入设计矩阵,在参数估计中,polyfit会根据输入的数据生成设计矩阵。 1.假设要拟合的多项式是:y=a+b*x+c*x^2 p=polyfit(x,y,2) 然后可以使用polyval在t处预测: y_hat=polyval(p,t) polyfit函数可以给出置信区间。 [p S]=polyfit(x,y,2) %S中包含了标准差 [y_fit,delta] = polyval(p,t,S) %按照拟合模型在t处预测 在每个t处的95%CI为:(y_fit-1.96*delta, y_fit+1.96*delta)

matlab简介(解常微分方程绘制函数图像)

MATLAB简介 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。 一、基本功能 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 二、特点 1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。 三、优势 1.友好的工作平台编程环境 MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。 2.强大的科学计算机数据处理能力 MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

OTDR测试曲线分析方法.

OTDR测试曲线分析方法 OTDR是光缆工程施工和光缆线路维护工作中最重要的测试仪器,它能将长100多公里光纤的完好情况和故障状态,以一定斜率直线(曲线)的形式清晰的显示在几英寸的液晶屏上。根据事件表的数据,能迅速的查找确定故障点的位置和判断障碍的性质及类别,对分析光纤的主要特性参数能提供准确的数据。目前OTDR型号种类繁多,操作方式也各不相同,但其工作原理是一致的。在光纤线路的测试中,应尽量保持使用同一块仪表进行某条线路的测试,各次测试时主要参数值的设置也应保持一致,这样可以减少测试误差,便于和上次的测试结果比较。即使使用不同型号的仪表进行测试,只要其动态范围能达到要求,折射率、波长、脉宽、距离、平均化时间等参数的设置亦和上一次的相同,这样测试数据一般不会有大的差别。 一、OTDR测试的主要参数: 1.测纤长和事件点的位置。 2.测光纤的衰减和衰减分布情况。 3.测光纤的接头损耗。 4.光纤全程回损的测量。 二、测试参数设置: 1.波长选择: 因不同的波长对应不同的光线特性(包括衰减、微弯等),测试波长一般遵循与系统传输通信波长相对应的原则,即系统开放1550波长,则测试波长为1550nm。 2.脉宽: 脉宽越长,动态测量范围越大,测量距离更长,但在OTDR曲线波形中产生盲区更大;短脉冲注入光平低,但可减小盲区。脉宽周期通常以ns来表示。一般 10公里以下选用100ns、300 ns ,10公里以上选用300ns、1μs。 3.测量范围: OTDR测量范围是指OTDR获取数据取样的最大距离,此参数的选择决定了取样分辨率的大小。最佳测量范围为待测光纤长度1.5倍距离之间。 4.平均时间: 由于后向散射光信号极其微弱,一般采用统计平均的方法来提高信噪比,平均时间越长,信噪比越高。例如,3min的获得取将比1min的获得取提高 0.8dB

matlab非线性拟合

如何拟合曲线 表达式必须自己估计。有很多表达式都能拟合出类似曲线。matlab里做曲线拟合的主要有(我经常用的)有这两个:polyfit和lsqcurvefit。前者专门对高次多项式拟合,后者则适用于绝大多数非线性拟合。根据描点判断可以用多项式拟合,我下面以二次多项式举例: clear x=[ 0 28 64 103 123 144 217 291 429 504 553 657 711 783 838]'; y=[ 31.5300 30.4300 29.3800 28.8000 28.1300 27.5900 25.5300 24.3000 22.8300 21.5700 21.8600 29.4900 34.5200 41.7600 44.6000]; %用polyfit拟合 p=polyfit(x,y,2); %用2次多项式 figure(1); title('拟合1') hold on plot(x,y,'+',x,polyval(p,x)); legend('原始值','拟合值'); %用lsqcurvefit拟合 f=@(b,x) b(1)+b(2).*x+b(3).*x.^2; %构造要拟合的函数 b=lsqcurvefit(f,[1,1,1],x,y); %进行拟合 figure(2) title('拟合2'); hold on plot(x,y,'+',x,f(b,x)); legend('原始数据','拟合数据') 如何计算残差! 首先确定你把拟合曲线图画出来了,然后在figure 1上边的选项中按Tools----Basic Fitting-----cubic----Show equations----plot residuals-----"然后点向右的箭头"-----”再从右边选项框里选Save to workspace“ 这就行了

MATLAB在非线性曲线拟合中的应用研究

MATLAB 在非线性曲线拟合中的应用小结 摘要:归纳总结了非线性曲线拟合的方法、求解步骤和上机操作过程 关键词:曲线拟合非线性MA TLAB 正文: 1.曲线拟合的基本原理 已知一组测定的数据(例如N 个点(xi,yi )去求得自变量x 和因变量y 的一个近似解析表达式y=φ(x )。若记误差δi=φ(xi )-yi ,i=1,2,…N ,则要使误差的平方和最小,即要求: ∑== N i i Q 1 2δ 为最小,这就是常用的最小二乘法原理。 2 .MATLAB 曲线拟合的相关方法 2.1.函数形式: (1)多项式拟合函数polyfit ,调用格式为: p=polyfit (x,y ,n ) 其中x ,y 为参与曲线拟合的实验数据,n 为拟合多项式的次数,函数返回值为拟合多项式的系数(按降幂排列)。n=1时,就为线性拟合。 例1:给出表1数据,试用最小二乘法求一次和二次拟合多项式。 表1 数据 在MATLAB 命令窗口中输入: clear; close; x=-1:0.25:1; y=[-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836] p1=polyfit(x,y ,1) p2=polyfit(x,y ,2) y1=polyval(p1,x); y2=polyval(p2,x); plot(x,y ,'+',x,y1,'r:',x,y2,'k-.') 运行结果:

拟合多项式为:y*=2.0516+2.0131和y*=0.0313x2+2.2516x+2.20001 (2)非线性数据拟合函数lsqcurvefit 调用格式为: c=lsqcurvefi (t'fun',x0,xdata,ydata ) 其中'fun'为拟合函数的M -函数文件名,x0为初始向量,xdata,ydata 为参与曲线拟合的实验数据。函数返回值c 为非线性函数fun 的拟合系数。 例2:2004年全国大学生数学建模竞赛C 题(酒后驾车)中给出某人在短时间内喝下两瓶啤酒后,间隔一定的时间测量他的血液中酒精含量y (毫克/百毫升),得到数据如表2。 表2 酒精含量与饮酒时间的实验数据 通过建立微分方程模型得到短时间内喝酒后血液中 酒精浓度与时间的关系为: )(321t c t c e e c y ---= (2) 根据实验数据,利用非线性拟合函数lsqcurvefit ,确定模型(2)式中的参数c1,c2,c3。求解过程为: 先编写一个M -函数文件Example2_1: function f=Example2_1(c,tdata) f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata)); 保存后,在命令窗口中输入: clear tdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16]; ydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 8 15 12 10 7 7 4]; c0=[1 1 1];

相关文档
最新文档