3.用Newton法求f=x^4-4*x^3-6*x^2-16*x+4的极小点。
分别取初始点x0=2.5,x0=3function [x,minf]=minNewton(f,x0,eps)format long;if nargin==2;eps=1.0e-6;end;df=diff(f);d2f=diff(df);k=0;tol=1;while tol>epsdfx=subs(df,findsym(df),x0);d2fx=subs(d2f,findsym(d2f),x0);x1=x0-dfx/d2fx;tol=abs(dfx);x0=x1;end;x=x1;minf=subs(f,findsym(f),x);format short;>> syms x;f=x^4-4*x^3-6*x^2-16*x+4;x=minNewton(f,2.5)x=minNewton(f,3)x =4x =4f(x)=4^4-4*4^3-6*4^2-16*4+4=-156;min4.画出用Newton法求函数f(x)的极小点的程序框图,并编写计算程序,求f(x)=3*x^4-16*x^3+30*x^2-24*x+8的极小值,取初始点x0=3function [x,minf]=minNewton(f,x0,eps)format long;if nargin==2;eps=1.0e-6;end;df=diff(f);d2f=diff(df);k=0;tol=1;while tol>epsdfx=subs(df,findsym(df),x0);d2fx=subs(d2f,findsym(d2f),x0);x1=x0-dfx/d2fx;tol=abs(dfx);x0=x1;end;x=x1;minf=subs(f,findsym(f),x);format short;>> syms x;f=3*x^4-16*x^3+30*x^2-24*x+8;x=minNewton(f,3)f=3*x^4-16*x^3+30*x^2-24*x+8;x =2.0000f(x)=3*2^4-16*2^3+30*2^2-24*2+8=0;min6.用抛物线法求f(x)=x^4/4-4*x^3/3+5*x^2/2-2*x的极小点function [x,minf]=minPWX(f,a,b,eps)format long;if nargin==3;eps=1.0e-6;end;t0=(a+b)/2;k=0;tol=1;while tol>epsfa=subs(f,findsym(f),a);fb=subs(f,findsym(f),b);ft0=subs(f,findsym(f),t0);tu=fa*(b^2-t0^2)+fb*(t0^2-a^2)+ft0*(a^2-b^2);td=fa*(b-t0)+fb*(t0-a)+ft0*(a-b);t1=tu/2/td;ft1=subs(f,findsym(f),t1);tol=abs(t1-t0);if ft1<=ft0;if t1<=t0;b=t0;t0=t1;elsea=t0;t0=t1;endk=k+1;elseif t1<=t0;a=t1;elseb=t1;endk=k+1;endendx=t1;minf=subs(f,findsym(f),x);format short;>> syms x;f=(x^4)/4-(4*x^3)/3+(5*x^2)/2-2*x;x=minPWX(f,1,3)x =2.0000>> syms x;f=(x^4)/4-(4*x^3)/3+(5*x^2)/2-2*x;x=minPWX(f,2,2.5)x =2.00008.画出用平分法求函数f(x)的极小点的程序框图,并求解第六题,f(x)=x^4/4-4*x^3/3+5*x^2/2-2*x,取a0=0,b0=4function x=agui_bisect(fname,a,b,e)fname为函数名,a,b为区间端点,e为精度fa=feval(fname,a); %把a端点代入函数,求的fafb=feval(fname,b); %把b端点代入函数,求的fbif fa*fb>0 error('两端函数值为同号');end %如果fa*fb>0,则输出两端函数值为同号k=0x=(a+b)/2while(b-a)>(2*e) %循环条件的限制fx=feval(fname,x);%把x代入代入函数,求的fxif fa*fx<0%如果fa与fx同号,则把x赋给b,把fx赋给fbb=x;fb=fx;else %如果fa与fx异号,则把x赋给a,把fx赋给faa=x;fa=fx;endk=k+1 %计算二分了多少次x=(a+b)/2 %当满足了一定精度后,跳出循环,每次二分,都得新的区间断点a和b,则近似解为x=(a+b)/2endfun=inline('x^4/4-4*(x^3)/3+5*(x^2)/2-2*x');x=agui_bisect(fun,0,4,1.0e-6)x =2.76089.编写用”成功-失败”法求函数f(x)的极小点的计算程序,并求解minf(x)=x^5+2*x^4-4*x^3+x^2+x+2;function [minx,maxx]=minJT(f,x0,h0,eps)format long;if nargin==3;eps=1.0e-6;end;x1=x0;k=0;h=h0;while 1x4=x1+h;k=k+1;f4=subs(f,findsym(f),x4);f1=subs(f,findsym(f),x1);if f4<f1x2=x1;x1=x4;f2=f1;f1=f4;h=2*h;elseif k==1;h=-h;x2=x4;f2=f4;elsex3=x2;x2=x1;x1=x4;break;endendendminx=min(x1,x3);maxx=x1+x3-minx;format short;clearsyms x;f=x^5+2*x^4-4*x^3+x^2+x+2;[x1,x2]=minJT(f,0,0.1)x1 =-0.7000x2 =-0.1000>> syms x;f=x^5+2*x^4-4*x^3+x^2+x+2;[x1,x2]=minJT(f,1,2)x1 =-1x2 =3>> syms x;f=x^5+2*x^4-4*x^3+x^2+x+2;[x1,x2]=minJT(f,1,0.5)x1 =-2.5000x2 =0.500011.编写用0.618法求函数f(x)的极小点的计算程序,并求解min f(x)= exp(-x)+x^2,sit-1≤x≤3function [x,minf]=minHJ(f,a,b,eps)format long;if nargin==3eps=1.0e-6;endl=a+0.382*(b-a);u=a+0.618*(b-a);k=1;tol=b-a;while tol>eps&&k<100000fl=subs(f,findsym(f),l); fu=subs(f,findsym(f),u); if fl>fu;a=l;l=u;u=a+0.618*(b-a);elseb=u;u=l;l=a+0.382*(b-a);endk=k+1;tol=abs(b-a);endif k==100000disp(‘找不到最小值!‘);x=NaN;minf=NaN;return;endx=(a+b)/2;minf=subs(f,findsym(f),x); format short>> syms x;f=exp(-x)+x^2;[x,fx]=minHJ(f,-2,3)x =0.3518fx =0.8272。