matlanb 牛顿迭代法编程求9x^2-sinx-1=0的根
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 09:41:47
#include#includeusingnamespacestd;intmain(){doublediedai(doublea,doubleb,doublec,doubled,doublex);
#include#includeintmain(){doublex0,x=1.5;do{x0=x;x=x0-(2*pow(x0,3)-4*pow(x0,2)+3*x0-6)/(6*pow(x0,2)-
程序流程分析:①赋值x0=1.5,即迭代初值;②用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;③计算增量d=f/fd;④计算下一个x,
#includevoidmain(){floats,f0,h,x;intn,i;printf("inputn:");scanf("%d",&n);h=1.0/n;f0=4.0;s=0.0;for(i=
牛顿迭代法牛顿迭代法又称牛顿切线法,它采用以下方法求根:先任意设定一个与真实的根接近的值x0作为第一个近似根,由x0求出f(x0),过(x0,f(x0))点做f(x)的切线,交x轴于x1,把它作为第二
很简单,你自己写,给你提示如下:头文件加:#include函数:f(x)=x*x-3.0*x-exp(x)+2.0;一阶导数:f2(x)=2.0*x-3.0-exp(x);迭代公式:x1=x0-f(x
xn+1=(xn+a/x)/2
你没有重新计算你定义的a循环最后加一条语句while(a>10e-6){..a=fabs(x0-x1);}
用迭代法求平方根的迭代公式为:要求前后两次求出的得差的绝对值少于0.00001.#include"math.h"main(){floatx0,x1,a;scanf("%f",&a);x1=a/2;do
哈啊啊啊啊啊啊啊啊啊啊啊再问:bjijib
此方程可化为e^x=-10x+2画一下图,既可知道,这直线和这个曲线会有一个交点假设解为X0那么从图中可以看出当X-10x+2那么我们就可以先找两个点,一个是使这个式子是小于号,另一个是使这个式子是大
对于求平方根,变成方程模式为f(x)=x^2-a,即求此方程的实根;下面编写了两个function函数,可以直接调用.二分法:functionx=sqrt_bisect(a)f=@(x)x^2-a;i
x=10^(1/x),{"浠f崲娆℃暟","x鍊?},{1,10.0000000000},{2,1.25892541179},{3,6.2277079027},{4,1.44734718383},{5
1.创建一个函数%牛顿法求立方根functionx=cube_newton(a)f=@(x)x^3-a;df=diff(sym('x^3-a'));ifa==0;x1=a;elsex0=a;x1=x0
symsxf=x^x-10;df=diff(f,x);eps=1e-6;x0=10;cnt=0;MAXCNT=200;%最大循环次数whilecnt
wkihh,.>=-===236544458kjim=+3.14-------------:[325544]
PROGRAMMAINREAD(*,*)XN=110X1=XF=X1**2-4*X1+1F1=2*X1-4X=X1-F/F1WRITE(*,100)N,X1,XN=N+1IF(ABS(X-X1).GT
嗯嗯有道理
f1(x)=2*x*x*x-4*x*x+3*x-6f2(x)=6*x*x-8*x+3......x=x-f1(x)/f2(x)