matlab讲义一:方程求解.docVIP

  • 3
  • 0
  • 约8.91千字
  • 约 36页
  • 2021-10-15 发布于江苏
  • 举报
Matlab讲义一:方程求解 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 方程求解 本章学习目的: 1.复习求解方程的根本原理和方法,掌握解方程的迭代算法; 2.能利用MATLAB软件编写迭代算法程序,了解迭代过程的图形表示; 3.熟练掌握用MATLAB软件的函数来求解方程和方程组; 4.通过范例展现求解实际问题的初步建模过程和MATLAB程序设计。 §1.1 引言 “方程是很多工程和科学工作的发动机〞。研究大型的土建构造、机械构造、输电网络、管道网络,研究经济规划、人口增长、种群繁殖等问题时,简单的分析可以直接归结为线性或非线性方程组,复杂一些要用到〔偏〕微分方程,求数值解时将转化为n非常大的方程组。假设干世纪以来,工程师和科学家花了大量的时间用于求解方程〔组〕,数学家研究各种各样的方程求解方法。 本章我们就是要学习求解线性方程组、非线性方程〔组〕的方法,以及利用数学软件利用计算机对方程和方程组进展求解。 §1.2 方程的求解方法 考虑求方程f(x)=0的解,我们通常采用这样的几种方法:因式分解法、图形放大法、数值迭代逼近法。 1.因式分解法: 这是我们最熟悉、常用的一种方法,这个方法的关键在分解因式,包括对多项式函数、三角函数和指数函数等的分解。但对于无法进展分解的函数那么无能为力。 2.图形放大法: 由于计算机的广泛应用,可以非常方便地作出函数f(x)的图形〔曲线〕,找出曲线与x轴的交点的横坐标值,就可求出f(x)=0的近似根。这些值尽管不准确,但是直观,方程有多少个根、在什么范围,一目了然。并且可以借助于计算机使用图形局部放大功能,将根定位得更加准确。 3.数值迭代逼近法: 利用图形的方法或连续函数的零点存在性定理,可以推知f(x)在某一区间内有根,我们就可以用数值方法来求方程的根,这就是迭代逼近法。 迭代逼近法分为区间的迭代和点的迭代。 区间迭代又分为对分法和黄金分割法;点的迭代又分为简单迭代法、单点割线法、两点割线法、牛顿法等。迭代失败后又可以采用加速迭代收敛方法。各种迭代方法原理都很简单〔数值分析课有详细介绍〕,请同学们自学。 图形放大法 用图形放大法求解方程f(x)=0的步骤: 建立坐标系,作曲线f(x); 观察f(x)与x轴的交点; 将其中的一个交点进展局部放大; 该交点的横坐标值就是方程的一个根; 对所有的交点进展一样的处理,就得到方程的所有解。 例1.1 求方程所有的根及大致分布范围,欲寻求其中的一个实根,并且到达一定的精度。 画出的图形; x=-6:0.01:6; y=x.^5+2*x.^2+4; plot(x,y) grid on; 我们可以看出方程在-2~+2范围有一个实根。 逐次缩小范围得到较准确的根。 x=-2:0.01:2; y=x.^5+2.*x.^2+4; plot(x,y) grid on x=-2:0.01:-1.5; y=x.^5+2.*x.^2+4; plot(x,y) grid on x=-1.6:0.01:-1.5; y=x.^5+2.*x.^2+4; plot(x,y) grid on 因此我们可以看出这个实根的值在之间。 简单迭代法 1.迭代算法步骤: 对方程f(x)=0求解 对方程经过简单变形得到〔不是唯一的〕,x 被称之为不动点; 设置为迭代初值,迭代过程为,n=0,1,2…… 当两次迭代结果之差小于某个设定的误差值时,我们认为迭代结果是收敛的,可得到结果的近似值。 例1.2 求方程的非负实根。 解:由于函数连续,并且在x=0和x=1处函数值符号相反,可以判断函数在区间〔0,1〕必有零点,即方程在〔0,1〕内必然存在根。 先将函数变形为; 设置迭代初值为0,编程进展迭代。 n=1;x=0; y=exp(x)/3; ys=vpa(y,10); z=abs(y-x); while z10^(-5) x=y; y=exp(x)/3; ys=vpa(y,10); z=abs(y-x); n=n+1; end n,y,ys n = 21 y = ys = .6190471917 从该结果可以看出,迭代21次后两次迭代的结果误差值满足小于的条件,结果收敛,迭代结果为,假设保存小数点后10位有效数字那么结果为。 用迭代方法求解方程 解:〔1〕对方程变形为,有不同的形式,比方 ; (a) ; (b) ;…… (c) 〔2〕设定初始值

文档评论(0)

1亿VIP精品文档

相关文档