matlab 用牛顿切线法求解f=x^3-2*x 1
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/06 13:41:03
是这个题目吧编写程序,用Newton迭代法求方程f(x)=2x+cosx-2.6=0在区间[0,4]上的近似实根r,迭代初值自选,精确到0.0001.牛顿切线法的计算公式为x=x-f(x)/f’(x)
用VBA编的,应该和VB差不多吧.如果有用请采纳.o(∩_∩)oSubCalcFuncResult()DimFx,dFx,x1,x2x1=0:x2=1WhileAbs(x1-x2)>0.0001x1=
EXTERNALFSX0=1.5EPS=1.0E-06CALLDNEWT(X0,EPS,FS,L)IF(L.NE.0)THENWRITE(*,10)X0ENDIF10FORMAT(1X,'X=',E
原因在这一句:elsefprintf('x0=%fxe=%fk=%d\n',x0,xe,k)其中xe=%f只能输出的精度是0.000000,默认6位仅只小数点后面包含6位.而实际xe=0.000000
functionroot=NewtonRoot(f,a,b,eps)%用牛顿法求方程的一个根%方程的表达式:f%区间的左端点:a%区间的右端点;b%根的精度:eps%求得的根:rootif(nargi
你这个出什么问题了?再问:再答:Jacobian这个函数似乎不存在,你有名字为这个的.m文件么??再问:我试了一下,可以查到。你可以运行吗?再答:那就是大小写的问题了,使用jacobian再问:膜拜。
先判别根区间,再用牛顿法在各个区间中求解.f(x)的导数=3x2-cosx-12得x(k+1)=x(k)-【x(k)3-sinx(k)-12x(k)-1】/【3x(k)2-cosx(k)-12】然后取
采用第一个.首先你的两个代码的计算过程和方法以及步骤是一致的.只不过第二个将k==N放在循环内部判断是没有必要的.放在while外面,可以节省点计算量.如果你要求结果精度高一些的话,你调用:x=nan
贴上来,或者发到
Newton-Raphson求解非线性方程组matlab源程序matlab程序如下:functionhom[P,iter,err]=newton('f','JF',[7.8e-001;4.9e-001
function[A]=cal(a,b,v)%a,b表示区间,v是精度i=1;x=(a+b)/2;A=[ix];t=x-(x^3-x-1)/(3*x^2-1);%迭代函数while(abs(t-x)>
[r,n]=newton调用即可
这样吧,你不要直接通过solve求解啊,可以画一个图像啊,以x的值为横坐标,行列式值为纵坐标,或者纵坐标取一下对数(如果变化范围太大),然后可以得出大致得到解的范围;最后可以通过其他方法计算更加精确的
x1=x-func1_1(x)/func1_1_1(x);是点除再问:Error:File:func1_1.mLine:1Column:22TheinputcharacterisnotvalidinM
是这个样子的,你应该是直接运行的m文件当然提示你x没有定义了可以在命令行输入x0=...;newtoneqs(x0);就可以了提示一下,如果你者几个函数放在一个m文件中,应该是newtoneqs(x0
定义函数functiony=nd(x)y=0.036-((x/2090.7).^(1/0.1585))-x/182000functiony=nd0(x)y=-(1/0.1585)*(x/2090.7)
是不是计算机化学呀?通常这种题不会用手算的,需要使用Matlab软件中的牛顿法.如果是的话,需要将方程求导,然后在软件中写基本程序.建议你到Matlab吧去看看
f15z再问:在?