sphm.net
当前位置:首页 >> MATLAB中用牛顿法求解 >>

MATLAB中用牛顿法求解

定义函数 function y=nd(x) y= 0.036-((x/2090.7).^(1/0.1585))-x/182000 function y=nd0(x) y=- (1/0.1585)*(x/2090.7).^(1/0.1585-1)*(1/2090.7) - 1/182000 主程序 x=0.5; %迭代初值 i=0; %迭代次数计数 while i10^(-5); %收敛判断 x=y; else...

function x = newton_method(fun,x0,e,N)if nargin

这是两部分代码: function eq=exam1_5(x) eq=(x^7+2*x.^5+3*x.^3+5*x+7)/(7*x^6+10*x^4+9*x.^2+5); 这两行是函数部分,参数为x,返回值为eq。 下面的命令是在命令窗口输入的: x0=0.1; x1=x0-exam1_5(x0); while abs(x1-x0)>0.0001 x0=x1; x1=x...

secant(0,3,1e-5) n = 7 ans = 2.6458secant(0,3,1e-5) n = 7 ans = 2.6458

根据牛顿法的迭代公式,自定义牛顿法函数 newton()。 在命令窗口中,输入 [x,y,tol] = newton_main() 回车后得到如下结果 x = 6.64162968961185e-07 y = 4.40980585381112e-13 tol = 1e-06

function s=NewtonIterate(x,eps) %Newton迭代法求解非线性方程组的解 %x为迭代初值,eps为允许误差 if nargin==1 eps=1.0e-6; elseif nargin> x= NewtonIterate(2.5,eps) x = 1307/624

syms x x0=2; f=x^3-3*x-1; eps=1e-6; maxcnt=1000; fx=diff(f,x); x1=x0; cnt=1; while cnt

代码如下。假设f(x)=exp(x)+3*x^3。这里你可以改成任意连续函数。 另外,牛顿法一般用误差大小来判断是否收敛,没必要一定跑100次。 %============================================== x0 = 4; % 设初始值为x=4 nmax = 100;%迭代100次 f = inlin...

clear,clc ezplot('sin(x)') hold on ezplot('x^2/4') grid on f=@(x)sin(x)-x^2/4; df=@(x)cos(x)-x/2;%导数 x=3;%任意有意义的初始值 while abs(f(x))>0.00001 x=x-f(x)/df(x); end x %图很明显有两个 这里给的逼近值不同所以求出哪一个也不一...

牛顿迭代法的原理是, 实现过程如下: function y = fun_main(x) %定义函数 y =x^3+4*x^2-10; end function y = dfun_main(x) %定义导函数 y =x^3+4*x^2-10; y = 3*x^2 + 8*x; end syms x ezplot('y=x^3+4*x^2-10',[-5 4 -11 5]),grid on,hold o...

网站首页 | 网站地图
All rights reserved Powered by www.sphm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com