欢迎来到天天文库
浏览记录
ID:58548602
大小:64.55 KB
页数:2页
时间:2020-10-21
《解非线性方程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、解非线性方程:x+sin(x)+1=01、求导数clcclearsymsxf=x+sin(x)+1;g=diff(f,x,1)算出导数为:g=1+cosx2、使用for循环实现迭代程序为:clcclearsymsxf=x+sin(x)+1;x=-0.5fori=1:40y=(x+sin(x)+1)/(1+cos(x))ifnorm(y)<0.000000000000001breakelsex=x-yendend运行得:x=-0.5109734293885693、直接使用matlab解此方程程序为:x=solv
2、e('x+sin(x)+1','x')x=vpa(x,15)结果为:x=-0.510973429388569,与牛顿拉非森法的结果相同。我那个参考书上的定义函数:Newton1function[x_star,k]=Newton1(fname,dfname,x1,ep,Nmax)ifnargin<5Nmax=500;endifnargin<4ep=1e-5;endx=x1;x0=x+2*ep;k=0;whileabs(x0-x)>ep&&k3、/feval(dfname,x0);endx_star=x;>>fname=inline('x^3+2*x^2+10*x-20');>>dfname=inline('3*x^2+4*x+10');>>formatlong>>[x_star,k]=Newton1(fname,dfname,1)x_star=1.368808107821375k=4
3、/feval(dfname,x0);endx_star=x;>>fname=inline('x^3+2*x^2+10*x-20');>>dfname=inline('3*x^2+4*x+10');>>formatlong>>[x_star,k]=Newton1(fname,dfname,1)x_star=1.368808107821375k=4
此文档下载收益归作者所有