用牛顿法编程计算Sinx-0.5x=0的正根
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/04 14:29:44
首先,你把a附错值了,应该是a=[1,0,0,0,0,-1]其次,你把牛顿收敛的精度定得太高了,我i3-2100的电脑跑了2分多钟才把图给跑出来.程序有没结束运行,看命令窗口的的引导符有没显示就可以了
[x,y,z]=solve('x1-4*x2+2*x3=0','2*x2-x3=0','-x1+2x2-x3=0')或者>>A=[1-4202-1-12-1];>>b=[0;0;0];>>x=A\b再
程序修改了一下,不知道是不是你想要的结果:x=[0.40,0.55,0.65,0.80,0.90,1.05];y=[0.41075,0.57815,0.69675,0.88811,1.02652,1.
原因在这一句:elsefprintf('x0=%fxe=%fk=%d\n',x0,xe,k)其中xe=%f只能输出的精度是0.000000,默认6位仅只小数点后面包含6位.而实际xe=0.000000
#include#includedoubleepsilon=1E-10;//精度要求constintMAX=1
symsx>>limit(cos(pi/2*sin(x))/cos(x),pi/2)ans=0是你的Matlab出问题了吧?
//用sinx=x-x^3/3!+x^5/5!……+(-1)^(n-1)*(x^(2*n-1)/(2*n-1)!#include#includedoublepower(doublex,intn){if
#include#includevoidmain(){longfloatx,s=0;intn,i,k,a=1,b;printf("Inputx,n:");scanf("%lf,%d",&x,&n);f
functionroot=NewtonRoot(f,a,b,eps)%用牛顿法求方程的一个根%方程的表达式:f%区间的左端点:a%区间的右端点;b%根的精度:eps%求得的根:rootif(nargi
可以,先将每个式子左边中的ai按照从小到大排序,比如a1+a3-2*a2=5写成a1-2*a2+a3=5,每个式子都如此处理,以ai作为未知数来求A*a=b,其中A为n-1行n+1列的矩阵,b为n-1
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
B2=input('请输入各节点参数形成的矩阵:B2=');%本程序的功能是用牛顿-拉夫逊法进行潮流计算n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');isb=
#include#includedoubleepsilon=1E-10;//精度要求constintMAX=1
这样吧,你不要直接通过solve求解啊,可以画一个图像啊,以x的值为横坐标,行列式值为纵坐标,或者纵坐标取一下对数(如果变化范围太大),然后可以得出大致得到解的范围;最后可以通过其他方法计算更加精确的
我这有牛顿迭代程序.在附件里面再问:首先,谢谢你了!可是我想知道我的哪里错了,还有你的程序那里er=0.01是固定的那它只会因ddf=0时才停止循环了,可是牛顿法ddf=0不一定有精确解,应该还是要用
symsxf=taylor(sin(x),10)%10阶,在x=0处subs(f,2)%sin2
用case语句就能实现了再问:哥哥能不能帮忙写下真的急用啊谢谢如果你有空哈谢谢再答:#includeintmain(){intsui;//定义个人所得税intS;//定义收入printf("请输入你的
名字好神奇==写具体要求吧
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)
是不是计算机化学呀?通常这种题不会用手算的,需要使用Matlab软件中的牛顿法.如果是的话,需要将方程求导,然后在软件中写基本程序.建议你到Matlab吧去看看