简单迭代法求根mAtlAB

用对数迭代法就解非线性方程的根

m = x0; h=0.000001; f=inline(fun,'x'); k=0; f0=feval(f,m); f2=feval(f,m+h); f1=feval(f,m-h); n=m-2*h*f0/(f2-f1); while abs(1-m/n)>e

1)for循环那里x=1.4后面应为冒号2)for 少了对应的end3)for循环里x_derivative为sym类型,不能直接运算,需用subs代入数值4)迭代算法需要大改,n没有定义

用牛顿迭代法,求导x=0.29644>> x0=0;tol=1e-6;x1=newton(x0,tol) n = 6 x1 = 0.29644>>syms x,ezplot(sin(4*x^2-4*x+1)-(3/4)*x-1/(10*x+3)+9/40),grid on>>hold on,plot(double(x1),0,'p'),text(0.5,1,'Zeros Point') 代码见附件 图形见下图

建立m文件:function [result ,k] = newton(fun,x0,e)% 调用形式:% [x k] = newton(fun,x0,e)% 功能: % 用差商求导的牛顿法求解一元非线性方程的根% 输入:% -- fun 字符串,f(x)的表达式,以x作为自变量,以字符串形式输入% -- x0 标量,求解的

牛顿迭代法在数值分析中最简单迭代法的一种.牛顿迭代法的迭代格式为Xk+1=Xkf(Xk)/f'(Xk)根据牛顿迭代法的迭代格式,用matlab语言编程,可以求得x = 1.32471795724475其实现代码如下.

对于求平方根,变成方程模式为f(x)=x^2-a,即求此方程的实根;下面编写了两个function函数,可以直接调用.二分法:function x=sqrt_bisect(a)f=@(x)x^2-a;if a1e-6 x=(xa+xb)/2; if f(xb)*f(x)>0 xb=x; elseif f(xa)*f(x)>0 xa=x; else break end endendx

用牛顿迭代法可以求解方程x=exp(-x)在x0=0.5附近的近似根.求解方法:1、建立自定义函数zhidao的文件,即 y=x-exp(-x).y=newton_fun(x)2、建立自定义导函数的文件,即 dy=1+exp(-x).dy=newton_dfun(x)3、根据牛顿迭代法原理编写,建立牛顿迭代法函数的文件,即x = x0 - newton_dfun(x0)\newton_fun(x0);按照上述方法,编程后运行可以得到x=0.56714

syms x;f=x^3-3228*x+3228*cos(x);df=diff(f,x);e=1e-6;t0=0.7;t=t0;t0=t+2*e;while abs(t0-t)>et0=t;t=t0-subs(f,x,t0)/subs(df,x,t0); end double(t0)ans = 0.739159912007417

在后面加上optimset('maxiter',最大迭代次数),例如x = fsolve(@myfun,[2 3 4],optimset('maxiter',100000))

相关文档

matlab迭代求根
一般迭代法matlab
迭代法matlab程序
matlab迭代法例题
简单迭代法matlab
matlab简单迭代法实例
迭代法求方程的根
matlab牛顿迭代法求根
matlab 非线性方程求根
用matlb简单迭代法程序
matlab二分法求方程实根
sor迭代法matlab程序
简单迭代法 一般迭代法
matlab牛顿迭代法实例
matlab迭代法实用程序
matlab迭代法求方程
matlab简单迭代公式编程
matlab牛顿迭代法例题
电脑版