数值方法第二版MATLAB作业:二分法和牛顿迭代法解非线性方程

5星 · 超过95%的资源 需积分: 10 10 下载量 196 浏览量 更新于2024-01-21 2 收藏 762KB DOCX 举报
《数值方法第二版matlab作业》是一本关于数值方法的书籍,其中包含了许多编程作业。本文将总结第二章中关于非线性方程求根解方程的内容。 第二章主要介绍了两种求解非线性方程的方法,分别是二分法和牛顿迭代法。接下来将对这两种方法进行详细介绍。 首先是二分法求解方程。给定方程为156.4=100e^λ-43.5λ(e^λ-1)。为了求解方程,我们首先定义了方程的函数表达式f,并给定了工作区间[0.1, 0.2]。然后使用二分法来逼近方程的解,要求精度达到10^(-10)。 具体的代码为: ```Matlab a = 0.1; b = 0.2; f = @(x) (100*exp(x) - 43.5*(exp(x)-1)/x) - 156.4; c = (a + b) / 2; while abs(b - a) > 1e-10 if f(c) * f(b) < 0 a = c; else b = c; end c = (a + b) / 2; end x = c; fprintf('\n x = %.10f\n', x); ``` 以上代码通过将工作区间不断缩小,直到区间长度小于等于10^(-10)时,取区间中点作为近似解x。 接下来是牛顿迭代法求解方程。给定方程为156.4=100e^x*x^2-43.5*x*(e^x-1)-156.4*x^2。为了求解方程,我们使用牛顿迭代法来逼近方程的解,要求精度达到10^(-4)。 迭代公式为: x = x - (100*exp(x)*x^2 - 43.5*x*(exp(x)-1) - 156.4*x^2) / (100*exp(x)*x^2 - 43.5*(exp(x)*x-exp(x)+1))。 具体的代码为: ```Matlab Error = 1e-4; x = 1; for k = 1:10 xk = x; x = x - (100*exp(x)*x^2 - 43.5*x*(exp(x)-1) - 156.4*x^2) / (100*exp(x)*x^2 - 43.5*(exp(x)*x-exp(x)+1)); end ``` 以上代码通过迭代公式不断更新x的值,直到满足迭代误差小于等于10^(-4)时,取最后一次迭代得到的x作为近似解。 通过以上两种方法,我们可以得到方程的近似解。在本章的作业中,通过二分法求解方程得到的近似解精度达到了10^(-10),而通过牛顿迭代法求解方程得到的近似解精度达到了10^(-4)。这两种方法都是常用的数值方法,可以在实际问题中有效地求解非线性方程。