数值分析课程设计

合集下载

数值分析导论第三版课程设计

数值分析导论第三版课程设计

数值分析导论第三版课程设计介绍本文档是关于数值分析导论第三版课程设计的说明。

本课程设计旨在帮助学生初步掌握数值分析的基础知识和方法,并且能够通过程序实现对数值计算问题的求解。

本课程设计包括以下内容:1.基本数值方法的实现2.数值微积分的求解3.数值代数方程组的求解4.课程设计报告的撰写实验环境本课程设计需要使用以下软件:1.Python编程语言(版本3.6以上)2.Jupyter Notebook(版本4.0以上)实验基本要求1.课程设计可组队,每组不超过3人。

2.课程设计需要完成以下内容:–基本数值方法的实现•包括二分法、牛顿法、割线法等方法的实现•可以针对不同的数值计算问题,选择合适的数值方法进行实现–数值微积分的求解•包括梯形公式、辛普森公式等方法的实现•可以针对不同的数值微积分问题,选择合适的数值方法进行实现–数值代数方程组的求解•包括高斯消元法、LU分解法等方法的实现•可以针对不同的数值代数方程组问题,选择合适的数值方法进行实现–课程设计报告的撰写•报告需要包括以下内容:实验目的、实验方法、实验结果、代码清单实验题目1.二分法求根–实现二分法求方程f(x)=0的根。

–可以选择针对不同的目标函数进行求解。

2.牛顿法求根–实现牛顿法求方程f(x)=0的根。

–可以选择针对不同的目标函数进行求解。

3.割线法求根–实现割线法求方程f(x)=0的根。

–可以选择针对不同的目标函数进行求解。

4.梯形公式求积分–实现梯形公式求解目标函数f(x)的定积分。

–可以选择针对不同的目标函数进行求解。

5.辛普森公式求积分–实现辛普森公式求解目标函数f(x)的定积分。

–可以选择针对不同的目标函数进行求解。

6.高斯消元法求解线性方程组–实现高斯消元法求解线性方程组Ax=b。

–可以选择不同的系数矩阵A和方程组右侧的常向量b进行求解。

实验过程1.确定目标函数–根据实验要求选择合适的目标函数,或者自定义目标函数。

2.理解目标函数的性质–分析目标函数的连续性、可导性、多峰性、收敛性等性质,为选择合适的数值方法提供依据。

高等数值分析课程设计

高等数值分析课程设计

高等数值分析课程设计一、题目背景高等数值分析是计算数学领域的一门重要课程,它主要研究数值计算中的算法、误差分析、收敛性和稳定性等基本问题,涵盖了线性代数、数值微积分、常微分方程数值解等数学分支学科。

本文将介绍一项高等数值分析课程的设计,以增强学生对课程的理解和能力。

二、设计目标2.1 教学目标本课程设计旨在帮助学生:•掌握常见的数值分析算法;•熟悉各种算法的误差分析和收敛性;•能够独立设计和实现数值计算程序;•培养学生解决实际问题的能力。

2.2 实现目标为了实现教学目标,本课程设计将遵循以下原则:•采用案例分析和实例演示的方式,将数学理论与实际应用相结合;•强调算法的实现方法和效率分析;•通过小组合作的方式完成实践任务,培养学生的团队合作能力;•开设课程论文撰写指导和实践报告撰写指导课程,提高学生的学术写作能力。

三、课程内容本课程的教学安排如下:3.1 理论讲授•数值线性代数•数值微积分•常微分方程数值解•偏微分方程数值解3.2 实践任务•实现线性方程组求解算法•实现求解非线性方程的算法•实现常微分方程数值解算法•实现偏微分方程数值解算法3.3 课程论文和实践报告撰写要求每个学生提交一篇课程论文和一份实践报告,内容包括理论和实践部分。

论文部分主要包括:•算法的理论分析和数学推导;•算法的实现方法和效率分析;•算法的收敛性和稳定性分析。

实践报告部分主要包括:•实践任务的设计和实现方法;•算法实现的过程与结果分析;•算法的应用和实用性分析。

四、教学评估本课程的教学评估主要包括以下几个方面:4.1 学生成绩评估学生成绩评估包括平时分、实验成绩、论文得分和考试成绩。

其中,实验成绩和论文得分占总成绩的比重大于考试成绩。

4.2 教学效果评估教学效果评估将从以下几个方面进行:•学生数学知识的掌握程度;•学生对数值计算的算法和方法的理解程度;•学生的编程能力和算法实现的水平;•学生实践能力和团队协作能力的培养。

大学数值分析课程设计

大学数值分析课程设计

大学数值分析课程设计一、课程目标知识目标:1. 理解数值分析的基本概念,掌握数值计算方法及其数学原理;2. 掌握线性代数、微积分等基本数学工具在数值分析中的应用;3. 学会分析数值算法的稳定性和误差,评估数值结果的正确性。

技能目标:1. 能够运用数值分析方法解决实际工程和科学研究问题;2. 掌握常用数值分析软件的使用,提高数据处理和问题求解的效率;3. 培养编程实现数值算法的能力,提高解决复杂问题的技能。

情感态度价值观目标:1. 培养学生对数值分析的浓厚兴趣,激发学习积极性;2. 培养学生的团队合作精神,提高沟通与协作能力;3. 增强学生的数学素养,使其认识到数学在科学研究和社会发展中的重要性。

课程性质分析:本课程为大学数值分析课程,旨在教授学生数值计算的基本理论和方法,培养学生解决实际问题的能力。

学生特点分析:学生具备一定的高等数学基础,具有较强的逻辑思维能力和抽象思维能力。

教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力;2. 鼓励学生主动参与讨论,培养学生的创新意识和解决问题的能力;3. 结合实际案例,强化学生对数值分析在工程和科研中的应用认识。

二、教学内容1. 数值分析基本概念:包括误差分析、稳定性、收敛性等;教材章节:第一章 数值分析概述2. 数值线性代数:矩阵运算、线性方程组求解、特征值与特征向量计算等;教材章节:第二章 线性代数的数值方法3. 数值微积分:数值积分、数值微分、常微分方程数值解等;教材章节:第三章 微积分的数值方法4. 非线性方程与系统求解:迭代法、牛顿法、弦截法等;教材章节:第四章 非线性方程与系统的数值解法5. 优化问题的数值方法:线性规划、非线性规划、最小二乘法等;教材章节:第五章 优化问题的数值方法6. 数值模拟与数值实验:蒙特卡洛方法、有限元方法、差分方法等;教材章节:第六章 数值模拟与数值实验7. 数值软件应用:MATLAB、Python等数值计算软件在数值分析中的应用;教材章节:第七章 数值软件及其应用教学进度安排:第1-2周:数值分析基本概念第3-4周:数值线性代数第5-6周:数值微积分第7-8周:非线性方程与系统求解第9-10周:优化问题的数值方法第11-12周:数值模拟与数值实验第13-14周:数值软件应用及综合案例分析教学内容确保科学性和系统性,注重理论与实践相结合,提高学生的实际操作能力。

《数值分析》课程教案

《数值分析》课程教案

《数值分析》课程教案数值分析课程教案一、课程介绍本课程旨在介绍数值分析的基本概念、方法和技巧,以及其在科学计算和工程应用中的实际应用。

通过本课程的研究,学生将了解和掌握数值分析的基本原理和技术,以及解决实际问题的实用方法。

二、教学目标- 了解数值分析的基本概念和发展历程- 掌握数值计算的基本方法和技巧- 理解数值算法的稳定性和收敛性- 能够利用数值分析方法解决实际问题三、教学内容1. 数值计算的基本概念和方法- 数值计算的历史和发展- 数值计算的误差与精度- 数值计算的舍入误差与截断误差- 数值计算的有效数字和有效位数2. 插值与逼近- 插值多项式和插值方法- 最小二乘逼近和曲线拟合3. 数值微积分- 数值积分的基本原理和方法- 数值求解常微分方程的方法4. 线性方程组的数值解法- 直接解法和迭代解法- 线性方程组的稳定性和收敛性5. 非线性方程的数值解法- 迭代法和牛顿法- 非线性方程的稳定性和收敛性6. 数值特征值问题- 特征值和特征向量的基本概念- 幂迭代法和QR方法7. 数值积分与数值微分- 数值积分的基本原理和方法- 数值微分的基本原理和方法四、教学方法1. 理论讲授:通过课堂授课,讲解数值分析的基本概念、原理和方法。

2. 上机实践:通过实际的数值计算和编程实践,巩固和应用所学的数值分析知识。

3. 课堂讨论:组织学生进行课堂讨论,加深对数值分析问题的理解和思考能力。

五、考核方式1. 平时表现:包括课堂参与和作业完成情况。

2. 期中考试:对学生对于数值分析概念、原理和方法的理解程度进行考查。

3. 期末项目:要求学生通过上机实验和编程实践,解决一个实际问题,并进行分析和报告。

六、参考教材1. 《数值分析》(第三版),贾岩. 高等教育出版社,2020年。

2. 《数值计算方法》,李刚. 清华大学出版社,2018年。

以上是《数值分析》课程教案的概要内容。

通过本课程的研究,学生将能够掌握数值分析的基本原理和技术,并应用于实际问题的解决中。

数值分析教学设计方案

数值分析教学设计方案

一、教学目标1. 知识目标:(1)使学生掌握数值分析的基本概念、基本理论和基本方法;(2)使学生了解数值分析在各个领域的应用;(3)使学生具备数值计算能力,能够解决实际问题。

2. 能力目标:(1)培养学生分析问题、解决问题的能力;(2)提高学生编程能力和计算机应用能力;(3)培养学生的团队协作和创新能力。

3. 情感目标:(1)激发学生对数值分析的兴趣和热情;(2)培养学生严谨、求实的科学态度;(3)提高学生的社会责任感和使命感。

二、教学内容1. 数值分析的基本概念和理论;2. 常用数值方法,如插值法、数值微分、数值积分、数值解微分方程等;3. 数值方法的误差分析;4. 数值方法的稳定性分析;5. 数值计算软件介绍与应用。

三、教学策略1. 采用启发式教学,引导学生主动探究;2. 注重理论与实践相结合,提高学生的实际操作能力;3. 采用案例教学,激发学生的学习兴趣;4. 采用小组合作学习,培养学生的团队协作能力;5. 利用现代教育技术,提高教学效果。

四、教学过程1. 导入新课:介绍数值分析的基本概念和意义,激发学生的学习兴趣。

2. 理论讲解:系统讲解数值分析的基本概念、基本理论和基本方法,注重理论联系实际。

3. 实例分析:结合实际问题,分析数值方法的应用,使学生掌握数值计算的基本步骤。

4. 实践操作:布置课后作业,让学生运用所学知识解决实际问题,提高学生的实际操作能力。

5. 小组讨论:组织学生进行小组讨论,培养学生的团队协作能力。

6. 总结与反思:引导学生总结所学知识,反思自己的学习过程,提高学习效果。

五、教学评价1. 课堂表现:观察学生的课堂参与度、讨论积极性和问题解决能力。

2. 作业完成情况:检查学生的作业完成质量,了解学生对知识的掌握程度。

3. 期末考试:通过考试检验学生对数值分析知识的掌握程度,了解教学效果。

4. 学生反馈:收集学生对教学方法的意见和建议,不断改进教学方法。

六、教学资源1. 教材:《数值分析》;2. 教学课件;3. 实际案例;4. 数值计算软件(如MATLAB、Python等)。

数值分析方法课程设计

数值分析方法课程设计

数值分析方法课程设计背景介绍数值分析是一门研究求解各种数学问题的有效数值计算方法的学科,其应用广泛,如科学计算、工程设计和金融计算等领域。

在数值分析中,许多方法依赖于计算机的计算能力。

此外,数值分析还需要对数学理论和计算机科学两方面的知识有较深的理解。

本课程设计旨在通过实践,帮助学生深入了解数值分析方法及其应用,并提高学生的计算机编程能力。

课程设计目标•熟练掌握数值分析中的基本算法和方法,如插值法、数值积分等•能够将所学算法应用于实际问题,并编写可靠的程序解决问题•加深对计算机编程的理解和掌握,增强编程实践和创新能力•提高对数值分析和计算机科学交叉领域的理解课程内容第一部分:基本算法和方法1.数值微积分基本概念和原理2.插值法及其在实际中的应用3.数值积分的基本方法和理论基础4.常微分方程常用数值解法第二部分:实践应用与编程实现1.利用插值法和数值积分求解实际问题2.实现数值微积分和常微分方程的求解程序3.利用现有的数值分析软件解决实际问题,如 MATLAB 和 Python 等课程设计方案1.向学生介绍数值分析基本算法和方法,并讲解其理论基础和实际应用。

2.向学生提供一些实际问题,引导学生根据所学算法和方法进行求解。

3.给予学生一定的编程实践机会,让他们能够将所学算法实现为程序,并运用到具体的问题中。

4.通过课程作业、仿真实验等形式对学生进行考核和评价,确保学生能够有效掌握所学知识和能力。

评价标准1.学生掌握数值分析基本算法和方法的程度2.学生在实际问题中应用所学算法的能力3.学生编程实践和创新能力的水平4.学生对数值分析和计算机科学交叉领域的理解总结本课程设计旨在培养学生的数值分析和计算机编程实践,通过课程作业和编程实践等形式将理论知识与实际问题相结合,提高学生的实践应用能力。

同时,本课程设计也为学生未来的研究和工作提供了一定的基础。

数值分析课程设计方程求根

数值分析课程设计方程求根一、课程目标知识目标:1. 理解并掌握数值分析中方程求根的基本概念和原理;2. 学会运用不同的数值方法(如牛顿法、二分法等)求解一元及多元方程的根;3. 掌握分析数值方法收敛性的基本原理。

技能目标:1. 能够运用所学数值方法编写程序,求解实际问题的方程求根问题;2. 培养学生运用计算工具(如计算器、编程软件等)进行数值计算的能力;3. 培养学生分析数值计算结果,评估计算误差和收敛性的能力。

情感态度价值观目标:1. 培养学生对数值分析学科的兴趣和热情,激发学生主动探索科学问题的精神;2. 培养学生的团队合作意识,学会在小组讨论中分享观点,共同解决问题;3. 培养学生严谨的科学态度,认识到数值方法在实际问题中的应用价值。

分析课程性质、学生特点和教学要求:本课程为数值分析,主要针对高年级本科生。

学生已具备一定的数学基础和编程能力。

课程性质具有较强的理论性和实践性,要求学生在掌握基本理论的基础上,能够运用所学知识解决实际问题。

在教学过程中,注重理论与实践相结合,鼓励学生动手实践,提高分析问题和解决问题的能力。

课程目标的设置旨在使学生达到上述知识、技能和情感态度价值观的预期成果,为后续学习和工作打下坚实基础。

二、教学内容1. 方程求根的基本概念与分类- 一元方程求根方法- 多元方程求根方法2. 数值方法原理及分析- 牛顿法及其收敛性分析- 二分法及其收敛性分析- 弦截法及其收敛性分析3. 方程求根的编程实现- 编程环境与工具介绍- 各数值方法的编程实现- 编程实例分析与讨论4. 计算误差与收敛性分析- 计算误差来源及影响- 判断数值方法收敛性的方法- 提高计算精度和收敛速度的措施5. 实际应用案例分析- 物理学中的方程求根问题- 工程学中的方程求根问题- 经济学中的方程求根问题教学内容安排与进度:第一周:方程求根基本概念与分类第二周:一元方程求根方法及收敛性分析第三周:多元方程求根方法及收敛性分析第四周:数值方法的编程实现(上)第五周:数值方法的编程实现(下)第六周:计算误差与收敛性分析第七周:实际应用案例分析及讨论教材章节关联:《数值分析》第一章:方程求根方法概述《数值分析》第二章:一元方程求根方法《数值分析》第三章:多元方程求根方法《数值分析》第四章:数值方法的编程实现《数值分析》第五章:计算误差与收敛性分析教学内容的选择和组织旨在确保学生能够系统地掌握方程求根的相关知识,培养实际应用能力,为后续课程学习打下坚实基础。

数值分析导论第二版课程设计

数值分析导论第二版课程设计概述数值分析是一门应用数学学科,主要研究计算数学方法和算法,用于求解科学和工程问题中的数学问题。

本课程设计主要参考《数值分析导论第二版》一书,通过对各类数值算法的编程实现,深入理解数值分析中的基本概念和原理。

实验内容本课程设计分为三个部分,每个部分包含若干个小题目,学生需要根据教师布置的题目,自行编写相应的数值算法代码,并进行调试和验证。

第一部分问题描述利用梯形公式、Simpson公式和复合梯形公式计算以下函数的定积分:$$ \\int_0^1 x^2 e^{-x}dx $$其中,梯形公式和Simpson公式的误差要求必须小于10−4,复合梯形公式的误差要求必须小于10−6。

实验要求1.分别编写梯形公式、Simpson公式和复合梯形公式的算法;2.对每个算法进行误差分析,并计算误差;3.输出每个算法的结果以及误差。

第二部分问题描述实现三次样条插值算法,对以下函数进行插值计算:$$ f(x) = \\frac{1}{1+x^2}, ~ x\\in[-5,5] $$实验要求1.编写三次样条插值算法的代码;2.对插值结果进行可视化,画出原始函数及插值函数的曲线图;3.计算插值函数在x=0处的值,并与真实值进行比较。

第三部分问题描述实现共轭梯度法,对以下线性方程组进行求解:$$ \\begin{cases} 3x_1-x_2+x_3=6\\\\ x_1+4x_2-x_3=5\\\\2x_1-x_2+3x_3=2 \\end{cases} $$实验要求1.编写共轭梯度法的代码;2.对求解结果进行可视化,绘制解的分量x1,x2,x3随迭代次数的变化曲线;3.计算解的二范数,与真实解进行比较。

实验环境本课程设计建议使用Python语言进行编程实现,推荐使用Jupyter Notebook进行代码编写和操作演示。

相关库或工具包的版本要求如下:1.Python 3.0及以上版本;2.NumPy 1.0及以上版本;3.Matplotlib 2.0及以上版本;4.Jupyter Notebook5.7及以上版本。

(完整word版)数值分析课程设计实验二

实验二2.1一、题目:用高斯消元法的消元过程作矩阵分解。

设20231812315A ⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦消元过程可将矩阵A 化为上三角矩阵U ,试求出消元过程所用的乘数21m 、31m 、31m 并以如下格式构造下三角矩阵L 和上三角矩阵U(1)(1)212223(2)313233120231,1L m U a a m m a ⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦验证:矩阵A 可以分解为L 和U 的乘积,即A =LU 。

二、算法分析:设矩阵111213212223313233a a a A a a a a a a ⎛⎫ ⎪= ⎪ ⎪⎝⎭,通过消元法可以将其化成上三角矩阵U ,具体算法如下: 第1步消元:111111(1)22112(1)331130,0;;2,3;i i i i i i i i a m a a a a m a i a a m a +=≠⎧⎪=+=⎨⎪=+⎩ 得到111213(1)(1)12223(1)(1)323300a a a A a a a a ⎛⎫ ⎪= ⎪ ⎪⎝⎭第2步消元:(1)(1)(1)32322222(2)(1)(1)333332230,0;;a m a a a a m a ⎧+=≠⎪⎨=+⎪⎩ 得到的矩阵为111213(1)(1)22223(2)33000a a a A a a a ⎛⎫ ⎪= ⎪ ⎪⎝⎭三、程序及运行结果b1.mA=[20 2 3;1 8 1;2 -3 15];for i=1:2M(i)=A(i+1,1)/A(1,1);endfor j=2:3A1(j,2)=A(j,2)-M(j-1)*A(1,2);A1(j,3)=A(j,3)-M(j-1)*A(1,3);endM(3)=A1(3,2)/A1(2,2);A1(3,2)=0;A1(3,3)=A1(3,3)-M(3)*A1(2,3);M,A1运行结果为:M =0.0500 0.1000 -0.4051A1 =0 0 00 7.9000 0.85000 0 15.0443所以:10020230.051007.90.850.10.405110015.0443L U ⎛⎫⎛⎫ ⎪ ⎪== ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭验证:L=[1 0 0;0.05 1 0;0.1 -0.4051 1];U=[20 2 3;0 7.9 0.85;0 0 15.0443];A1=L*UA1 =20.0000 2.0000 3.00001.0000 8.0000 1.00002.0000 -3.0003 15.0000四、精度分析因为根据LU 的递推公式可知,L ,U 分别为下三角和上三角矩阵,其中L 不在对角线上的元素值为111()k ik ik is sk s kk l a l u u -==-∑,在计算每个系数时会产生相应的计算误差。

数值分析第七版课程设计

数值分析第七版课程设计一、实验背景数值分析是计算数学的重要分支,是研究利用计算机求解数值问题的方法和理论的一门学科。

本课程设计旨在通过实验,加深对数值分析相关算法的理解,提高数学建模和计算机编程的能力。

二、实验内容本次课程设计包括以下两个实验:实验一:插值与逼近1.将函数$f(x)=\\dfrac{1}{x}$在区间[1,2]上进行等距节点插值,节点数分别为5、10、15和20,误差使用最大误差和平均误差来比较。

2.使用Newton插值法和Lagrange插值法对于函数$f(x)=\\sin x$进行插值,比较两种方法的误差。

3.对于函数f(x),给定节点x0,x1,x2,x3,计算出f(x)在x=1.5处的三次Hermite插值。

4.对于函数$f(x)=\\dfrac{1}{1+x^2}$,使用最小二乘法对其进行多项式逼近,比较多项式次数为1、2、3和4时的逼近结果。

实验二:数值微积分1.使用五点中心公式,计算f″(x)的近似值,并比较二、四、六、八次公式的精度。

2.使用梯形公式和Simpson公式分别求解函数$f(x)=\\cos(x^2)$在区间[0,1]上的定积分,比较两种方法的精度。

3.使用数值微积分方法计算曲线y=x3+2x+1在区间[0,1]上的弧长,步长分别为0.2、0.1、0.05和0.025,并比较不同步长对计算结果的影响。

三、实验要求1.使用MATLAB或Python等编程语言完成实验,并提交完整的程序代码以及实验报告。

2.实验报告应包括实验的目的、原理、过程、结果及其分析等内容。

3.程序代码应具有较好的结构性、可读性和可复用性,其中涉及到的算法应有详细的注释。

四、实验评分1.实验报告50分,其中内容占30分,格式和排版占20分。

2.程序代码50分,其中正确性占30分,可读性和可复用性占20分。

3.本次课程设计总成绩为实验报告分数和程序代码分数的加权平均分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.概述
设计名称:1.设计运用弦线法求非线性方程的根的算法
2.设计运用正交多项式求最小二乘拟合的算法
设计目的:1.弦线法是一种直接求非线性方程根的方法,避免了函数求导。

相对于牛顿法而言,当函数f(x)解析式比较复杂,或者其函数不能用初等函数
表达时,求导数比较困难,这时用弦线法就比较方便,而且弦线法具有超越性
的收敛速度。

2.在科学实验和统计研究中,往往需要从一组观测值【(xi,yi)】
i=0:n,去寻找y与x之间的函数关系y=f(x).我们通过运用正交多项式做最小
二乘拟合,得到y与x的拟合曲线.以便直观的研究y随x的变化关系.
二.设计内容
1.用弦线法求 f(x)=x^3+2*x^2+10*x-20=0 的根,要求|x k+1-x k|<10^(-6).
2.假定某日每隔一小时测量一次气温的数据如表8-17所示.用正交多项式
求温度变化的三次拟合曲线.
时间t 1 2 3 4 5 6 7 8 9 10 11 12 温度c(t) 15 14 14 14 14 16 18 20 22 23 25 28 时间t 13 14 15 16 17 18 19 20 21 22 23 24 温度c(t) 31 32 31 29 27 25 24 22 20 18 17 16
三.设计过程
算法实现:1.编写matlab函数M文件xian和gfun如下:
function f = xian(a,n,x01,x02,eps)
%采用弦线法求方程的根
%a为方程所对应的多项式的系数,按照从高次幂到低次幂的顺序输入
%n为a的最高次幂的级数
%x01,x02为初始值
%迭代公式为x(i+1)=x(i)-(x(i)-x(i-1))f(x(i))/(f(x(i))-f(x(i-1)))
%这里我们将求f(x(i))的值的函数单列出来
if nargin == 4 %判定输入参数的个数
eps = 1e-6;
elseif nargin <4
error('错误,重新输入')
return;
end
x(1) = x01; %给x的初始两个元素赋值
x(2) = x02;
tol = 1; %设定误差
i = 2; %设定x的下标
while tol>eps*x(i)
x(i+1)=x(i)-(x(i)-x(i-1))*gfun(a,n,x(i))/(gfun(a,n,x(i))-gfun(a,n ,x(i-1)));
tol = abs(x(i+1)-x(i)); %判定误差
i = i+1;
end
y =x(i) %输出迭代结果
fprintf('迭代次数为%d\n',i-2)
function y= gfun(a,n,x) %求f(x(i))的值
y = 0;
for i =1:n+1
y = y + a(i)*x^(n+1-i);
end
取x1=1.3,x2=1.5,在命令窗口调用M文件xian,将会显示输出结果.
2.编写matlab函数M文件naorthfit如下:
function p=naorthfit(x,y,m)
psi=fliplr(eye(m+1,m+1));p=zeros(1,m+1);
psi(2,m+1)=-sum(x)/length(x);
for k=2:m t=polyval(psi(k,:),x);t1=polyval(psi(k-1,:),x);
a=(x.*t)*t'/(t*t');
b=(t*t')/(t1*t1');
psi(k+1,:)=conv([1 -a],psi(k,2:m+1))-b* psi(k-1,:);
end
for k=0:m
t=polyval(psi(k+1,:),x); p(k+1)=y*t'/(t*t');
end
p=p*psi;
输入数组x和y,在命令窗口中调用M文件naorthfit(x,y,3),将会显示输出结果。

运用程序段:plot(x,y,’bo’);xlabel(‘x’);ylabel(‘y’);画出散点图。

运用程序:x=1:0.1:24; y=-0.0075.*x^3+0.1722.*x^2+0.1647.*x+12.2760;
plot(x,y,’bo’);xlabel(‘x’);ylabel(‘y’);
画出拟合图。

算法思想:1.弦线法是一种求非线性方程根的迭代法,首先给定初始值,设定循环条件,为所要达到的精度,按照迭代
公式x n+1=xn-(f(xn)*(xn-xn-1))/(f(xn)-f(xn-1)),
也就是迭代。

直到所得的解满足给定的精度,结束循环。

得到
方程的近似根。

2.正交多项式做最小二乘拟合,只是利用递推关系式p0(x)=1,
p1(x)=(x-a1)p0(x),p i+1(x)=(x-a i+1)p i(x)-b i p i-1(x)
(i=1,2,….n-1)进行循环,直到达到所需的拟合次数,并且当
逼近次数增加时,只要把程序中循环次数加一,其余不变
四.主要代码
1.弦线法.
function f = xian(a,n,x01,x02,eps)
if nargin == 4
eps = 1e-6;
elseif nargin <4
error('错误,重新输入')
return;
end
x(1) = x01;
x(2) = x02;
tol = 1;
i = 2;
while tol>eps*x(i)
x(i+1)=x(i)-(x(i)-x(i-1))*gfun(a,n,x(i))/(gfun(a,n,x(i))-gfun(a,n ,x(i-1)));
tol = abs(x(i+1)-x(i));
i = i+1;
end
y =x(i)
fprintf('迭代次数为%d\n',i-2)
function y= gfun(a,n,x)
y = 0;
for i =1:n+1
y = y + a(i)*x^(n+1-i);
end
2.正交多项式做最小二乘拟合
function p=naorthfit(x,y,m)
psi=fliplr(eye(m+1,m+1));p=zeros(1,m+1);
psi(2,m+1)=-sum(x)/length(x);
for k=2:m
t=polyval(psi(k,:),x);t1=polyval(psi(k-1,:),x);
a=(x.*t)*t'/(t*t');
b=(t*t')/(t1*t1');
psi(k+1,:)=conv([1 -a],psi(k,2:m+1))-b* psi(k-1,:);
end
for k=0:m
t=polyval(psi(k+1,:),x);
p(k+1)=y*t'/(t*t');
end
p=p*psi;
plot(x,y,’bo’);xlabel(‘x’);ylabel(‘y’); % 散点图
x=1:0.1:24; y=-0.0075.*x^3+0.1722.*x^2+0.1647.*x+12.2760; %拟合图plot(x,y,’bo’);xlabel(‘x’);ylabel(‘y’);
五.结果显示
1.弦线法的输出结果
>> xian([1,2,10,-20],3,1.3,1.5)
y =
1.3688
迭代次数为4
2.正交多项式做最小二乘拟合输出结果
>>x=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24];
>> y=[15 14 14 14 14 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >> naorthfit(x,y,3)
ans =
-0.0075 0.1722 0.1647 12.2760
141618202224
26283032x
y
5
10
15
20
25
10121416182022242628
30x
y
散点图和拟合图。

相关文档
最新文档