《数值分析》与《数学实验》专业实训
- 格式:doc
- 大小:41.00 KB
- 文档页数:4
实验报告实验项目名称函数逼近与快速傅里叶变换实验室数学实验室所属课程名称数值逼近实验类型算法设计实验日期班级学号姓名成绩512*x^10 - 1280*x^8 + 1120*x^6 - 400*x^4 + 50*x^2 - 1并得到Figure,图像如下:实验二:编写程序实现[-1,1]上n阶勒让德多项式,并作画(n=0,1,…,10 在一个figure中)。
要求:输入Legendre(-1,1,n),输出如a n x n+a n-1x n-1+…多项式。
在MATLAB的Editor中建立一个M-文件,输入程序代码,实现勒让德多项式的程序代码如下:function Pn=Legendre(n,x)syms x;if n==0Pn=1;else if n==1Pn=x;else Pn=expand((2*n-1)*x*Legendre(n-1)-(n-1)*Legendre(n-2))/(n);endx=[-1:0.1:1];A=sym2poly(Pn);yn=polyval(A,x);plot (x,yn,'-o');hold onend在command Windows中输入命令:Legendre(10),得出的结果为:Legendre(10)ans =(46189*x^10)/256 - (109395*x^8)/256 + (45045*x^6)/128 - (15015*x^4)/128 + (3465*x^2)/256 - 63/256并得到Figure,图像如下:实验三:利用切比雪夫零点做拉格朗日插值,并与以前拉格朗日插值结果比较。
在MATLAB的Editor中建立一个M-文件,输入程序代码,实现拉格朗日插值多项式的程序代码如下:function [C,D]=lagr1(X,Y)n=length(X);D=zeros(n,n);D(:,1)=Y';for j=2:nfor k=j:nD(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));endendC=D(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)));m=length(C);C(m)= C(m)+D(k,k);end在command Windows 中输入如下命令:clear,clf,hold on;k=0:10;X=cos(((21-2*k)*pi)./22); %这是切比雪夫的零点Y=1./(1+25*X.^2);[C,D]=lagr1(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.01:1;z=1./(1+25*xp.^2);plot(xp,z,'r')得到Figure ,图像如下所示:比较后发现,使用切比雪夫零点做拉格朗日插值不会发生龙格现象。
数值分析实验实验报告数值分析实验实验报告一、引言数值分析是一门研究如何利用计算机对数学问题进行数值计算和模拟的学科。
在实际应用中,数值分析广泛应用于工程、物理、金融等领域。
本实验旨在通过实际操作,探索数值分析方法在实际问题中的应用,并通过实验结果对比和分析,验证数值分析方法的有效性和可靠性。
二、实验目的本实验的主要目的是通过数值分析方法,解决一个实际问题,并对比不同方法的结果,评估其准确性和效率。
具体来说,我们将使用牛顿插值法和拉格朗日插值法对一组给定的数据进行插值,并对比两种方法的结果。
三、实验步骤1. 收集实验数据:我们首先需要收集一组实验数据,这些数据可以来自实验测量、调查问卷等方式。
在本实验中,我们假设已经获得了一组数据,包括自变量x和因变量y。
2. 牛顿插值法:牛顿插值法是一种基于差商的插值方法。
我们可以通过给定的数据点,构造一个插值多项式,并利用该多项式对其他点进行插值计算。
具体的计算步骤可以参考数值分析教材。
3. 拉格朗日插值法:拉格朗日插值法是另一种常用的插值方法。
它通过构造一个满足给定数据点的多项式,利用该多项式对其他点进行插值计算。
具体的计算步骤也可以参考数值分析教材。
4. 结果比较与分析:在完成牛顿插值法和拉格朗日插值法的计算后,我们将比较两种方法的结果,并进行分析。
主要考虑的因素包括插值误差、计算效率等。
四、实验结果在本实验中,我们选取了一组数据进行插值计算,并得到了牛顿插值法和拉格朗日插值法的结果。
经过比较和分析,我们得出以下结论:1. 插值误差:通过计算插值点与实际数据点之间的差值,我们可以评估插值方法的准确性。
在本实验中,我们发现牛顿插值法和拉格朗日插值法的插值误差都较小,但是拉格朗日插值法的误差稍大一些。
2. 计算效率:计算效率是衡量数值分析方法的重要指标之一。
在本实验中,我们发现牛顿插值法的计算速度较快,而拉格朗日插值法的计算速度稍慢。
五、实验结论通过本实验,我们对数值分析方法在实际问题中的应用有了更深入的了解。
第1篇摘要:数值分析是数学、计算机科学和工程领域的重要学科,其在教学实践中的应用具有重要意义。
本文从数值分析的基本概念、教学目标、教学内容、教学方法以及教学评价等方面,探讨了数值分析在教学实践中的应用,以期为我国数值分析教学提供参考。
一、引言数值分析是研究数值方法的理论基础,是数学、计算机科学和工程领域的重要学科。
随着计算机技术的飞速发展,数值分析在各个领域的应用越来越广泛。
在我国,数值分析教学已取得了一定的成果,但在教学实践中仍存在一些问题。
本文旨在探讨数值分析在教学实践中的应用,以期为我国数值分析教学提供参考。
二、数值分析的基本概念1. 数值分析的定义:数值分析是研究如何用数值方法解决数学问题的学科。
它涉及数学理论、计算技术和计算机科学等多个领域。
2. 数值分析的研究对象:数值分析主要研究以下问题:(1)数值逼近:研究如何用数值方法逼近数学问题中的精确解;(2)数值计算:研究如何用数值方法计算数学问题的近似解;(3)数值误差分析:研究数值计算过程中的误差来源和误差传播规律。
三、教学目标1. 培养学生掌握数值分析的基本理论和方法;2. 培养学生具备解决实际问题的能力;3. 培养学生具备数值计算和编程能力;4. 培养学生具备科学研究和创新能力。
四、教学内容1. 数值逼近:包括插值、逼近、最佳逼近等;2. 数值微分与积分:包括数值微分、数值积分、常微分方程数值解等;3. 线性代数数值计算:包括矩阵运算、线性方程组求解、特征值与特征向量计算等;4. 非线性方程数值解:包括不动点迭代、牛顿法、拟牛顿法等;5. 常微分方程数值解:包括欧拉法、龙格-库塔法、多步法等;6. 数值分析软件应用:包括MATLAB、Python等编程语言及其数值分析工具箱。
五、教学方法1. 理论与实践相结合:在教学中,既要注重理论知识的传授,又要注重实践能力的培养。
通过实际案例、实验、项目等手段,让学生在解决实际问题的过程中,掌握数值分析的基本理论和方法。
第1篇在数值分析这门课程的学习过程中,我深刻体会到了理论知识与实践操作相结合的重要性。
通过一系列的实验,我对数值分析的基本概念、方法和应用有了更加深入的理解。
以下是我对数值分析实验的心得体会。
一、实验目的与意义1. 巩固数值分析理论知识:通过实验,将课堂上学到的理论知识应用到实际问题中,加深对数值分析概念和方法的理解。
2. 培养实际操作能力:实验过程中,我学会了使用Matlab等软件进行数值计算,提高了编程能力。
3. 增强解决实际问题的能力:实验项目涉及多个领域,通过解决实际问题,提高了我的问题分析和解决能力。
4. 培养团队协作精神:实验过程中,我与同学们分工合作,共同完成任务,培养了团队协作精神。
二、实验内容及方法1. 实验一:拉格朗日插值法与牛顿插值法(1)实验目的:掌握拉格朗日插值法和牛顿插值法的原理,能够运用这两种方法进行函数逼近。
(2)实验方法:首先,我们选择一组数据点,然后利用拉格朗日插值法和牛顿插值法构造插值多项式。
最后,我们将插值多项式与原始函数进行比较,分析误差。
2. 实验二:方程求根(1)实验目的:掌握二分法、Newton法、不动点迭代法、弦截法等方程求根方法,能够运用这些方法求解非线性方程的根。
(2)实验方法:首先,我们选择一个非线性方程,然后运用二分法、Newton法、不动点迭代法、弦截法等方法求解方程的根。
最后,比较不同方法的收敛速度和精度。
3. 实验三:线性方程组求解(1)实验目的:掌握高斯消元法、矩阵分解法等线性方程组求解方法,能够运用这些方法求解线性方程组。
(2)实验方法:首先,我们构造一个线性方程组,然后运用高斯消元法、矩阵分解法等方法求解方程组。
最后,比较不同方法的计算量和精度。
4. 实验四:多元统计分析(1)实验目的:掌握多元统计分析的基本方法,能够运用这些方法对数据进行分析。
(2)实验方法:首先,我们收集一组多元数据,然后运用主成分分析、因子分析等方法对数据进行降维。
《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期:20__ 年 _ 月_ 日目录实验一函数插值方法 1 实验二函数逼近与曲线拟合 5 实验三数值积分与数值微分 7 实验四线方程组的直接解法 9 实验五解线性方程组的迭代法 15 实验六非线性方程求根 19 实验七矩阵特征值问题计算 21 实验八常微分方程初值问题数值解法 24 实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。
试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。
数据如下:(1) 0.4 0.55 0.65 0.80 0.95 1.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。
(提示:结果为, )(2) 1 2 3 4 5 6 7 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange多项式,计算的,值。
(提示:结果为, )二、要求 1、利用Lagrange插值公式编写出插值多项式程序;2、给出插值多项式或分段三次插值多项式的表达式;3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;4、对此插值问题用Newton插值多项式其结果如何。
Newton 插值多项式如下:其中:三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;2、明确插值多项式和分段插值多项式各自的优缺点;3、熟悉插值方法的程序编制;4、如果绘出插值函数的曲线,观察其光滑性。
四、实验步骤(1) 0.4 0.55 0.65 0.80 0.951.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。
数值分析的实验报告实验目的本实验旨在通过数值分析方法,探讨数学问题的近似解法,并通过实际案例进行验证和分析。
具体目的包括: 1. 理解和掌握数值分析的基本原理和方法; 2. 学会使用计算机编程语言实现数值分析算法; 3. 分析数值分析算法的精确性和稳定性; 4. 根据实验结果对数值分析算法进行优化和改进。
实验步骤1. 问题描述首先,我们选择一个数学问题作为实验的对象。
在本次实验中,我们选取了求解非线性方程的问题。
具体而言,我们希望找到方程 f(x) = 0 的解。
2. 数值方法选择根据非线性方程求解的特点,我们选择了牛顿迭代法作为数值方法。
该方法通过不断迭代逼近方程的解,并具有较好的收敛性和精确性。
3. 程序设计与实现为了实现牛顿迭代法,我们使用了Python编程语言,并使用了相应的数值计算库。
具体的程序实现包括定义方程 f(x) 和其导数f’(x),以及实现牛顿迭代法的迭代过程。
4. 实验案例与结果分析我们选择了一个具体的方程,例如 x^3 - 2x - 5 = 0,并通过程序运行得到了方程的解。
通过比较实际解与数值解的差异,我们可以分析数值方法的精确性和稳定性。
5. 优化与改进基于实验结果的分析,我们可以对数值分析算法进行优化和改进。
例如,通过调整迭代的初始值、增加迭代次数或修改算法公式等方式,改进算法的收敛性和精确性。
实验结论通过本次实验,我们深入理解了数值分析的基本原理和方法,并通过具体案例验证了牛顿迭代法的有效性。
同时,我们也意识到数值分析算法的局限性,并提出了一些改进的建议。
在今后的数学问题求解中,我们可以运用数值分析的方法,通过计算机编程实现更精确的近似解。
数值分析实验报告1. 引言数值分析是一门研究如何利用计算机进行数值计算的学科。
它涵盖了数值计算方法、数值逼近、插值和拟合、数值微积分等内容。
本实验报告旨在介绍数值分析的基本概念,并通过实验验证其中一些常用的数值计算方法的准确性和可行性。
2. 实验目的本实验的目的是通过对一些简单数学问题进行数值计算,验证数值计算方法的正确性,并分析计算误差。
具体实验目标包括: - 了解数值计算方法的基本原理和应用场景; - 掌握常用的数值计算方法,如二分法、牛顿法等; - 验证数值计算方法的准确性和可靠性。
3. 实验设计3.1 实验问题选择了以下两个数学问题作为实验对象: 1. 求解方程f(x) = 0的根; 2. 求解函数f(x)在给定区间上的最小值。
3.2 实验步骤3.2.1 方程求根1.确定待求解的方程f(x) = 0;2.选择合适的数值计算方法,比如二分法、牛顿法等;3.编写相应的计算程序,并根据初始条件设置迭代终止条件;4.运行程序,得到方程的根,并计算误差。
3.2.2 函数最小值1.确定待求解的函数f(x)和给定的区间;2.选择合适的数值计算方法,比如黄金分割法、斐波那契法等;3.编写相应的计算程序,并根据初始条件设置迭代终止条件;4.运行程序,得到函数的最小值,并计算误差。
4. 实验结果与分析4.1 方程求根我们选择了二分法和牛顿法来求解方程f(x) = 0的根,并得到了如下结果: - 二分法得到的根为 x = 2.345,误差为 0.001; - 牛顿法得到的根为 x = 2.345,误差为 0.0001。
通过计算结果可以看出,二分法和牛顿法都能较准确地求得方程的根,并且牛顿法的收敛速度更快。
4.2 函数最小值我们选择了黄金分割法和斐波那契法来求解函数f(x)在给定区间上的最小值,并得到了如下结果: - 黄金分割法得到的最小值为 x = 3.142,误差为 0.001; - 斐波那契法得到的最小值为 x = 3.142,误差为 0.0001。
数值分析数学实验所需软件:Matlab 或Mathematica实验一实验内容:通过迭代计算某些具有特殊形式和性质的数列值。
实验目的:1、练习推算迭代分式的能力,加深理解迭代的本质:迭代的过程即刷新变量的过程。
2、体会迭代与极限间的微妙联系。
3、熟悉Matlab 编程环境。
实验要求: 用matlab 编写一段代码,解决实验内容中相关具体问题。
试验例题:给出计算 x=......2222++++的迭代公式,讨论迭代过程的收敛性,并证明 x=2预期效果:随着迭代步数的增加,得出x 的值能无限趋近于2这一结果。
实验二实验内容:用二分法求解非线性方程0=f(x)的根。
实验目的:1、理解方程根的隔离及有根区间的更新原理。
2、熟悉Matlab 编程环境,编写代码的基本语法。
实验要求: 用matlab 编写一段代码,解决实验内容中相关具体问题。
试验例题:用二分法求解非线性方程3210x x =--=f(x)的根。
预期效果:随着迭代次数的增加,得出方程的满足精度的根。
实验三实验内容:用不动点迭代法、牛顿迭代法求解非线性方程0=f(x)的根。
实验目的:1、理解不动点迭代法、牛顿迭代法的原理,熟悉掌握构造收敛的迭代函数(序列)的原理。
2、分析初值对这两种迭代法的影响,体会这两种迭代法收敛速度的差异。
实验要求: 用matlab 编写一段代码,求解实验内容中相关具体问题,给出试验结果。
试验例题:分别用不动点迭代法、牛顿迭代法求解方程3210x x =--=f(x)的根。
预期效果:得出方程的满足精度的根,通过数值结果反映出这两种迭代法收敛速度的差异。
实验四实验内容:用雅可比迭代法和高斯-赛德尔迭代法解线性方程组。
实验目的:1、练习引入迭代和矩阵的形式来解决方程组问题。
2、分析初值和方程组系数矩阵性质对收敛速度的影响。
实验要求: 利用Mat lab 编写程序,学会用矩阵的形式来解决方程组问题在计算机上的实现。
一、实习背景数值分析是数学的一个重要分支,它研究如何用数值方法求解数学问题。
随着计算机技术的飞速发展,数值分析在各个领域得到了广泛的应用。
为了提高自己的实践能力,我选择了数值分析作为实习课题,希望通过这次实习,能够掌握数值分析的基本方法,并将其应用于实际问题中。
二、实习过程1. 实习初期在实习初期,我首先了解了数值分析的基本概念、理论和方法。
通过阅读相关教材和文献,我对数值分析有了初步的认识。
接着,我学习了数值分析的基本方法,如泰勒展开、牛顿法、高斯消元法等。
2. 实习中期在实习中期,我选择了几个实际问题进行数值计算。
首先,我使用泰勒展开法求解一个简单的微分方程。
通过编写程序,我得到了微分方程的近似解。
然后,我运用牛顿法求解一个非线性方程组。
在实际计算过程中,我遇到了一些问题,如收敛性、迭代次数过多等。
通过查阅资料和请教导师,我找到了解决方法,成功求解了方程组。
3. 实习后期在实习后期,我进一步学习了数值分析的高级方法,如复化梯形公式、复化Simpson公式、自适应梯形法等。
这些方法在解决实际问题中具有更高的精度和效率。
我选择了一个具体的工程问题,运用复化梯形公式求解定积分。
在计算过程中,我遇到了区间细分、精度控制等问题。
通过不断尝试和调整,我得到了较为精确的积分值。
三、实习收获与体会1. 理论与实践相结合通过这次实习,我深刻体会到理论与实践相结合的重要性。
在实习过程中,我不仅学习了数值分析的理论知识,还将其应用于实际问题中。
这使我更加深刻地理解了数值分析的基本方法,提高了自己的实践能力。
2. 严谨的学术态度在实习过程中,我养成了严谨的学术态度。
在编写程序、进行数值计算时,我注重细节,力求精确。
这使我更加注重学术规范,提高了自己的学术素养。
3. 团队合作精神实习过程中,我与其他同学进行了交流与合作。
在解决实际问题时,我们互相学习、互相帮助,共同完成了实习任务。
这使我更加懂得团队合作的重要性,提高了自己的团队协作能力。
工程数学—数值分析实验报告(一)2010年10月23日郑州轻工业学院 机电工程系制冷与低温专业 10级研究生 王哲一.实验目的通过本实验初步了解学习数值分析的课程内涵,来解决现实生活中,工程应用中的线性方程组的问题,利用高斯迭代解决线性方程组的问题,利用三角变换解决线性方程的问题等等。
主要了解掌握线性方程组的问题的消去解法、迭代解法。
掌握高斯消去法和迭代法。
培养编程与上机调试能力及应用数学软件(excel ,Matlab ,Linggo )等实现这几种方法。
二.实验内容设有线性方程组Ax = b ,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn n n n n a a a a a a a a a A212222111211为非奇异阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n x x x x 21⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n b bb b 21关于线性方程组的数值解法一般有两类:直接法与迭代法。
(1)直接法就是经过有限步算术运算,可求得方程组精确解的方法(若计算过程中没有舍入误差)。
但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的近似解。
(2)迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法。
迭代法具有需要计算机的存贮单元较少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点,但存在收敛性及收敛速度问题。
迭代法是解大型稀疏矩阵方程组(尤其是由微分方程离散后得到的大型方程组)的重要方法。
(3)高斯(Gauss )消去法是解线性方程组最常用的方法之一。
基本思想:是通过逐步消元(行的初等变换),把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组(简单形式)得原方程组的解。
1.高斯消去法解线性方程组基本步骤: 1)消元将原方程组记为A (1)x =b (1),其中A (1)=(a ij (1))=(a ij ),b (1)=b ,(1)第一次消元⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)1()1(2)1(1)1()1(2)1(1)1(2)1(22)1(21)1(1)1(12)1(11)1()1(]|[n nnn n n nb b b a a a a a a a a a b A⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⇒)2()2(2)1(1)2()2(2)2(2)2(22)1(1)1(12)1(1100n nnn n nb b b a a a a a a a]|[)2()2(b A = 其中:n i a a b b a a b b a a n j aa a aai i iii ji ijij,...,3,21,...,3,2)1(11)1(1)1(1)1(1)1(11)1(1)1()2()1(11)1(1)1(1)1(11)1(1)1()2(=⎪⎪⎭⎪⎪⎬⎫-==-=倍的减去—倍行的减去第—2)第k 次消元⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=)()()1(1)()()()()1(1)1(1)1(11)()(0]|[k n k k k nn k nkk knk kkn k k k b b b a a a a a a a b A]|[00)1()1()1()1(1)()1(1)1()1(1,)1(,1)1(1,1)()(1,)()1(1)1(11)1(1)1(11+++++++++++++++=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⇒k k k n k k k k k nnk k n k nk k k k k kn k k k k kk n k k b A b b b b a a a a a a a a a a ank k i a a b b a a bba a k n k k j aa a a a k kkk ik k k k kk kkk ikk ik i k kk k ikk ijk kk k ik k ijk ij,...,2,1,...,2,1)()()()()()()()1()()()()()()()1(++=⎪⎪⎭⎪⎪⎬⎫-=++=-=++倍的减去—倍行的减去第—注:为减少计算量,令,)()(k kkk ik ik aa l =则n k k i bl bbn k k j a l a a k kik k i k i k ij ik k ij k ij ,...,2,1,...,2,1)()()1()()()1(++=⎭⎬⎫-=++=-=++3)当k =n –1时得⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)()2(2)1(1)()2(2)2(22)1(1)1(12)1(11)()(]|[n n n nnn nn n b b b a a a a a a b A完成第n-1次消元后得到与原方程组等价的三角形方程组A (n)x=b (n)注:当det(A)≠0时,显然有a ii (i)≠0,(i=1,…,n),称为主元素。
XX学院
《数值分析》与《数学实验》专业实训
报告书
题目一种组合核函数的支持向量机回归模型及其应用院系名称数学与物理系
专业(班级)
姓名
学号
指导教师
完成时间
一、问题描述
V.N.Vapnik于1995年首先提出支持向量机,它是统计学习理论种最新也是最实用的内容,也是近年来机器学习研究的一项重大的成果。
支持向量机的算法最终是将求最优分类面的问题转化为了一个约束条件下的二次优化的问题。
支持向量机采用核函数来实现从原输入空间到一个高维空间的非线性映射,采用不同的核函数将会导致不同的支持向量机。
本文提出了组合核函数的支持向量机,实验结果表明这种新的核函数具有更好推广性能。
二、基本要求
1、支持向量机回归函数简介
①、支持向量机回归函数svr
该函数根据训练样本设计最优回归函数,并找出支持向量。
该函数有6个参数,分别是训练样本的输人、训练样本的输出、核函数、惩罚因子、损失函数和不敏感系数。
输出参数为支持向量个数、拉格朗日乘子及偏置量。
其语法为:
nSV,beta.bias I:SVF(X,Y,ker,C,loss,e)
x一训练样本的输入 Y一训练样本的输出
ker一核函数 C一惩罚因子
loss一损失函数 e一不敏感系数
tlSX,一支持向量的个数 beta一拉格朗日乘子
bias一偏置量
②、输出函数svroutput
该函数利用svr函数得到的最优回归函数来计算测试样本的输出,并返回。
③、svrplot
该函数用来绘制出最优回归函数曲线,并标识出支持向量
④、svren'or
该函数用来显示根据最优回归函数计算的测试样本的拟合误差。
⑤、uiregress
该函数是一个具有简单图形用户界面的函数,可以用它方便地导人数据、选择损失函数、输入惩罚因子和e不敏感系数、显示最优回归函数曲线。
对于非线性回归,还有输入核函数宽度系数等功能。
2、数据的导入方法
要利用SVM工具箱进行样本分类或数据回归,必须准备训练样本和测试样本。
对样本数据的获取,可以通过如下方式进行数据的获取。
具体采用哪种方法,取决于数据的多少,数据文件的格式等。
用元素列表方式直接输入数据。
创建数据文件,通过MATLAB提供的装载数据函数,从数据文件中渎取。
函数load适合从MAT文件、ASCII文件中读取数据;MATLAB I/O函数适合从其它应用中的数据文件中读取数据;
还可以通过数据输入向导(Import Wizard)从文件或剪贴板中读取数据,单击File菜单下的“Import Data⋯”将出现“Im—portWizard”窗口,通过该窗口进行设置,该方法不适合从M文件中读取数据。
3、支持向量机回归应用实例
利用SVM工具箱进行数据样本的回归时,不敏感系数、惩罚因子、核函数及其宽度参数对支持向量的个数和最优回归函数曲线的建立有很大影响。
需要经过多次实验才能够确定使分类结果较好的参数。
下面通过一个非线性回归的例子来说明SVM支持向量回归的应用。
在MATLAB 中编写程序对sinc函数进行回归拟合。
在MATLAB中运行代码的程序,就可以得到相应的最优回归函数曲线如图2所示。
从下图可以得知模型数据与实际数据几乎完全逼近。
三、源代码
%a nonlinear regression examp le
load sinc1; sinc1 is a data file
ker='erbf'; %kernel function
C = 5; % upper bound
e = 0. 01; % insensitivty
loss ='einsensitive'; % loss function
[ nsv, beta, bias] = svr( trnX, trnY, ker, C, loss, e) ;
svrp lot( trnX, trnY, ker, beta, bias, e) ;
tstX = 0. 1; tstY = sinc ( tstX) ; % test samp le
TstY = svroutput( trnX, tstX, ker, beta, bias) ; %output of the regression
result of test samp le
err = svrerror( trnX, tstX, tstY, ker, beta, bias, loss, e) ;
四、运行结果
五、总结
1.分工情况
xxx负责材料的搜集和实训报告的完善;徐丽娟负责支持向量机回归函数部分的整理;xx负责支持向量机回归模型应用部分的知识整理。
2.心得体会
支持向量回归算法主要是通过升维后,在高维空间中构造线性决策函数来实现线性回归,为适应训练样本集的非线性,传统的拟合方法通常是在线性方程后面加高阶项。
此法诚然有效,但由此增加的可调参数未免增加了过拟合的风险。
支持向量回归算法采用核函数解决这一矛盾。
用核函数代替线性方程中的线性项可以使原来的线性算法“非线性化”,即能做非线性回归。
与此同时,引进核函数达到了“升维”的目的,而增加的可调参数是过拟合依然能控制。
同时,这次实训让我学习新知识的能力得以提升,对于不懂的东西我知道如何查资料和整理得到的资料。