一、编写函数作图的程序,通过图形求出方程的近似解。
1、>> clear
>> syms x y
>> x=-10:0.1:10;
>> y=2.*x.*sin(x)-3;
>> plot(x,y);
>> grid
>> gtext('y=2.*x.*sin(x)-3')
2、>> clear
>> syms x y1 y2
>> x=0:0.1:10;
>> y1=2.*sin(x);
>> y2=3./x;
>> plot(x,y1,x,y2);
>> grid
>> gtext('y1=2sin(x),y2=3/x')
3、>> clear
>> syms x y
>> x=-2:0.1:4;
>> y=4.*x.^5-8.*x.^4-26.*x.^3+30; >> plot(x,y);
>> grid
>> gtext('y=4*x^5-8*x^4-26*x^3+30')
>> x=solve('4*x^5-8*x^4-26*x^3+30=0','x'); >> x1=double(x)
x1 =
1.0000
3.7117
-1.9244
-0.3936 + 0.9461i
-0.3936 - 0.9461i
二、用逐步搜索的方法求解。
function [k,r]=zhubuss(a,b,h,tol)
X=a:h:b;Y=funs(X);
n=(b-a)/h+1;m=0;
X(n+1)=X(n);Y(n+1)=Y(n);
for k=2:n
X(k)=a+k*h;
Y(k)=funs(X(k));
sk=Y(k)*Y(k-1);
if sk<=0
m=m+1;
r(m)=X(k);
end
xielv=(Y(k+1)-Y(k))*(Y(k)-Y(k-1));
if (abs(Y(k))<tol)&(xielv<=0)
m=m+1;
r(m)=X(k);
end
end
(1)function y=funs(x)
y=2.*x.^3+2.*x.^2-3.*x-3
>> [k,r]=zhubuss(-2,2,0.001,0.0001)
k =
4001
r =
-1.2240 -1.0000 -1.0000 -0.9990 1.2250
(2)function y=funs(x)
y=sin(cos(2.*x.^3))
>> [k,r]=zhubuss(-2,2,0.001,0.0001)
k =
4001
r =
-1.9190 -1.7640 -1.5770 -1.3300 -0.9220
0.9230 1.3310 1.5780 1.7650 1.9200
三、用二分法求解。
1、>> clear
>> syms x y
>> x=-4:0.1:4;
>> y=x.^3-x+4;
>> plot(x,y)
>> grid;gtext('y=2*x^3+2*x^2-3*x-3')
2、>> x=-4:1:4,y=x.^3-x+4
x =
-4 -3 -2 -1 0 1 2 3 4 y =
-56 -20 -2 4 4 4 10 28 64 3、function [k,x,wucha,yx]=erfen(a,b,abtol)
a(1)=a;b(1)=b;
ya=fun(a(1));yb=fun(b(1));
if ya*yb>0
disp('ya*yb>0,重新调整区间端点a,b.')
return
end
max1=-1+ceil((log(b-a)-log(abtol))/log(2));
for k=1:max1+1
a;ya=fun(a);
b;yb=fun(b);
x=(a+b)/2;yx=fun(x);
wucha=abs(b-a)/2;k=k-1;
[k,a,b,x,wucha,ya,yb,yx]
if yx==0
a=x;b=x;
elseif yb*yx>0
b=x;yb=yx;
else
a=x;ya=yx;
end
if b-a<abtol
return
end
end
k=max1;x;wucha;yx=fun(x);
function y=fun(x)
y=x.^3-x+4
>> [k,x,wucha,yx]=erfen(-2,-1,0.001)
k =
9
x =
-1.7959
wucha =
9.7656e-004
yx =
0.0037。