matlab牛顿法解方程想X^5 3X^4-5X^3 2X^2-6X=0
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 08:39:50
symsxx0=2;f=x^3-3*x-1;eps=1e-6;maxcnt=1000;fx=diff(f,x);x1=x0;cnt=1;whilecnt
m=0;%起始点e=0.00001;%精度h=0.000001;%步长f=inline('1-y-2*sin(y+3)','y');%x=1,c=2,k=3代入具体数值t=0;f0=feval(f,m
你问了好多次啊?小写的问题还是?
原因在这一句:elsefprintf('x0=%fxe=%fk=%d\n',x0,xe,k)其中xe=%f只能输出的精度是0.000000,默认6位仅只小数点后面包含6位.而实际xe=0.000000
%f(x)=x*sin(1/x)-0.2*exp(-x)求此方程f(x)=0的解x=0.55;%初始值eps=1;tol=10^(-14);total=100;k=0;formatlong;while
代码如下:functionrtn=newton1(fx,dfx,x0,tol,N)%NewtonMethod%Thefirstparameterfxisaexternalfunctionwithres
你这个出什么问题了?再问:再答:Jacobian这个函数似乎不存在,你有名字为这个的.m文件么??再问:我试了一下,可以查到。你可以运行吗?再答:那就是大小写的问题了,使用jacobian再问:膜拜。
functionx=NewRaph(x0,f,fprime,tol)x(1)=x0;i=1;gx=x(i)-f(x(i))/fprime(x(i));while(abs(x(i)-gx)>tol)gx
采用第一个.首先你的两个代码的计算过程和方法以及步骤是一致的.只不过第二个将k==N放在循环内部判断是没有必要的.放在while外面,可以节省点计算量.如果你要求结果精度高一些的话,你调用:x=nan
看这个贴吧:超越方程吧http://tieba.baidu.com/f?kz=843796154啊哈,我写的
在matlab中使用fsolve函数就行了再问:不知道具体的该怎么使用呢?是直接fsolve(inline('H'),x0)就可以么?我初学,很多不懂,多谢再答:你可以例如x=fsolve(@(x)s
你是在说符号运算么,亲?再问:恩,其实我感觉应该不太算是符号运算。。。因为整个运算,在源程序中是符号运算,但是因为我是计算的物体有具体的尺寸限制,而且我是需要得到具体的数值的,所以我会另外进行一系列的
这样吧,你不要直接通过solve求解啊,可以画一个图像啊,以x的值为横坐标,行列式值为纵坐标,或者纵坐标取一下对数(如果变化范围太大),然后可以得出大致得到解的范围;最后可以通过其他方法计算更加精确的
用fsolve可解出来:先构造函数:functionoutput=solveproblem(X)c=X(1);m=X(2);y=X(3);output(1)=(1-c)*(1-y)*(1-m)*10.
x1=x-func1_1(x)/func1_1_1(x);是点除再问:Error:File:func1_1.mLine:1Column:22TheinputcharacterisnotvalidinM
symsxf=x^x-10;df=diff(f,x);eps=1e-6;x0=10;cnt=0;MAXCNT=200;%最大循环次数whilecnt
定义函数functiony=nd(x)y=0.036-((x/2090.7).^(1/0.1585))-x/182000functiony=nd0(x)y=-(1/0.1585)*(x/2090.7)
程序:clcclearx=zeros(1,25);x(1)=2;formatlongfori=1:24;x(i+1)=x(i)-(x(i)^3-3*x(i)+2)/(3*x(i)^2-3);enddi
functions=NewtonIterate(x,eps)%Newton迭代法求解非线性方程组的解%x为迭代初值,eps为允许误差ifnargin==1eps=1.0e-6;elseifnargin