1. 请在MATLAB中输入一个一元函数并保存,例如
syms x
f(x)=x^3+(x-0.98)^2/(x+1.25)^3-5*(x+1/x)
>> Untitled4
f(x) =
(x - 49/50)^2/(x +5/4)^3 - 5*x - 5/x + x^3
2. 用两种方法去求上述函数的根。
>>b=fzero('f(x)',[-10,10])
y =
-949.6800
y =
949.5571
y =
-7.7313e+03
y =
661.4157
y =
252.9699
y =
17.8948
y =
11.6261
y =
2.7589
y =
-8.1363
y =
-1.7697
y =
-0.1790
y =
0.0021
y =
-1.4532e-05
y =
-1.1664e-09
y =
1.7764e-15
y =
-8.8818e-15
b =
2.4164
3. 求上述函数的极值。
>>a=fminbnd('f(x)',-10,10)
y =
-7.3794
y =
-0.7253
y =
-120.3429
y =
-319.4131
y =
-509.3409
y =
-656.7431
y =
-760.3663
y =
-829.4422
y =
-874.1149
y =
-902.4949
y =
-920.3323
y =
-931.4710
y =
-938.3990
y =
-942.6975
y =
-945.3606
y =
-947.0089
y =
-948.0286
y =
948.6591
y =
-949.0490
y =
-949.2900
y =
-949.4389
y =
-949.5310
y =
-949.5879
y =
-949.6231
y =
-949.6448
y =
-949.6582
y =
-949.6681
a =
-10.0000
4. 如果函数不保存在默认目录下会有什么后果?
系统会自动提示:
>> a=fminbnd(exec8,-100,100)
??? Error using=-> feval Undefined function 'exec8'.
Errorin-->E:\matlab\toolboxmatlablfunfunfmndm
Online115 =--> x= xf; fx=feval(funfcn,x,varargin { );
5. 构造一个多项式,求根,再由根求出原来的多项式。得到的多项式与原来的多项式是否相同,为什么?
得到的多项式与原来的多项式不一定相同,因为,这里所用到的求根方法是先把多项式转化为伴随矩阵,然后再求特征值,所以在取根时会有近似,所以得到的多项式与原来的多项式可能会有差别。
6. MATLAB求多项式的根是用什么方法,与传统方法相比有什么优点?
用了matlab中内置的roots(A)函数求数值解,用solve函数求符号解,其中A就是所要求的根的多项式函数,相比传统方法来说,更加的方便了。