1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。(使用函数fminbnd、roots)。程序:
syms x
f='4*x.^6+x.^3-x-95';
x1=fminbnd( f ,0,100)
x2=fminbnd('-4*x.^6-x.^3+x+95',0,100)
x=x1;minf = eval(f)
x=x2;maxf = eval(f)
p=[4 0 0 1 0 -1 -95];
x=roots(p)
结果:
x1 =
0.4432
x2 =
99.9999
minf =
-95.3258
maxf =
4.0000e+012
x =
1.6860
0.8525 + 1.4852i
0.8525 - 1.4852i
-1.7050
-0.8431 + 1.4514i
-0.8431 - 1.4514i
2.求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用函数dsolve)。
程序:
y=dsolve('D2x=-Dx+x+1','Dx(0)=0,x(0)=0')
结果:
y =
exp(1/2*(5^(1/2)-1)*t)*(1/10*5^(1/2)+1/2)+exp(-1/2*(5^(1/2)+1)*t)*(-1/10*5^(1/2)+1/2)-1
3.已知t=an 2+bn ,测得对应数据如下:(多项式插值interp1)
t=[0,20,40,60,80,100,120,140,160,183.5];
n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
试求a 和b 的值。
程序:
n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
t=[0,20,40,60,80,100,120,140,160,183.5];
A=polyfit(n,t,2);
a=A(1),b=A(2)
结果:
a =
2.5083e-006
b =
0.0144
4.请用梯形法、辛普森法分别计算积分值
?++1021dx x x (trapz 、quad ) 程序:
F = (x)sqrt(x.^2+x+1);
Q = quad(F,0,1)
x=0:0.01:1;
y=sqrt(x.^2+x+1);
q=trapz(x,y)
结果:
Q =
1.3369
q =
1.3369
5.计算二重积分??+++++102
022)12(dxdy y x xy y x (使用函数dblquad )
程序:
F = (x,y)x.^2+y.^2+x*y+2*x+y+1;
Q = dblquad(F,0,2,0,1)
结果:
Q =
11.3333
6.矩阵M=[1,2,6; 4,2,7; 8,9,3],求M的LU分解,QR分解,对角阵,特征值分解。
(使用函数lu、qr、shol、eig)
程序:
A=[1 2 3;4 5 6;7 8 9];
[L U]=lu(a)
[Q R]=qr(a)
[X D]=eig(a)
结果:
L =
1
U =
2.5083e-006
Q =
1
R =
2.5083e-006
X =
1
D =
2.5083e-006
7 .a=3,A=4,b=a2,B=b2-1,c=a+A-2B,C=a+B+2c,求C。(使用函数solve)
程序:
D=solve('a=3,A=4','b=a^2','B=b^2-1','c=a+A-2*B','C=a+B+2*c');
C=D.C
结果:
C =
-223
8.用两种方法求解Ax=b的解。(A为四阶随机矩阵,b为四阶向量,自己创建)。程序:
A=fix(50*rand(4))
B=fix(50*rand(4,1))
if det(A)~=0
x=A\B
X=inv(A)*B
else
C=B;
D=[A C]
rref(B)
end
结果:
A =
47 44 41 46
11 38 22 36
30 22 30 8
24 0 39 20
B =
46
45
20
44
x =
-0.8583
0.0430
1.3169
0.6621
X =
-0.8583
0.0430
1.3169
0.6621
9.)1(5)25.1/()8.0()(323x
x x x x x f +
-+-+=,用两种方法求函数的根,并求其极值与零点。
程序:
y1='x.^3+(x-0.8).^2/(x+1.25).^3-5*(x+1/x)';
ezplot(y1,[-100,100])
[xmin,ymin]=fminbnd(y1,0,60);
ymin
y2='-x.^3-(x-0.8).^2/(x+1.25).^3+5*(x+1/x)';
[xmax,y]=fminbnd(y2,-50,-20);
ymax=-y
结果:
ymin =
-1.1489e+005
ymax =
-7.8999e+003
10、f(x)的定义如下:
2
2
2
6,04
()56,010,23
1,
x x x x
f x x x x x x
x x
?+-<≠-
?
=-+≤<≠≠
?
?--
?
且
且
其它
,写一个matlab函数
func1实现该函数。
程序:
function y=hs(x)
x=input('请输入x值:x=');
if x<0&x~=-4
y=x.^2+x-6;
elseif x>=0&x<10&x~=2&x~=3
y=x.^2-5*x+6;
else
y=x.^2-x+1;
end
结果:
请输入x值:x=5.6
ans =
9.3600
11、写一个MATLAB小程序,求出最小的n 值,使得n! > realmax。
程序:
n=1;
while prod(1:n)<=realmax
n=n+1;
end
n
结果:
n =
171
12、写一个MATLAB 函式myfun.m 来计算下列方程式:
y = 0.5*exp(x/3)-x*x*sin(x)
其中x 是函式的输入,y 是函式的输出。你的函式必须能够处理当x 是纯量或是向量的两种情况。
程序:
function y=myfun(x)
y=0.5*exp(x./3)-x.*x.*sin(x);
end
结果:
myfun([2,3])
ans =
-2.6633 0.0891
13、写一个MATLAB 函式pifun.m 来计算下列级数:
f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...)
其中n 为函式的输入,级数和f(n) 则是函式的输出。此外,你必须进行下列事项:(1)使用tic 和toc 指令来测量pifun(100000) 的计算时间。如果你不知道如何使用这两个指令,请使用help tic 及help toc 来查出它们的用法。我的计算机是Pentium-450,所得的计算时间约为2 秒。请说明你的计算机规格以及其计算时间。
程序:
function f=pifun(n)
tic
y=0;
for i=0:n
y=y+(-1)^(i)*1/(2*i+1);
end
f=4*y;
toc
t=toc
end
结果:
pifun(100000)
Elapsed time is 0.006173 seconds.
t =
0.0062
ans =
3.1416
14、写一个 MATLAB 的递归函式 fibo.m 来计算 Fibonacci 数列,其定义如下:
fibo(n+2) = fibo(n+1)+fibo(n)
此数列的启始条件如下: fibo(1) = 0, fibo(2) = 1.
程序:
function a=fibo(n)
if n==1
a=0;
elseif n==2
a=[0 1];
else b=fibo(n-1);
a=[b,b(end-1)+b(end)];
end
end
结果:
fibo(6)
ans =
0 1 1 2 3 5
15.求下列函数的极小点:
1) ()2123222118294x x x x x X f +-++=;
2) ()21212221222
3x x x x x x X f -+-+=; 3) ()()224121+-=x X f . 第1),2)题的初始点可任意选取,
第3)题的初始点取为()T X 1,00=.
程序:
f='x(1)^2+4*x(2)^2+9*x(3)^2-2*x(1)+18*x(2)';
[x,fm]=fminsearch(f,[0,0,0])
f='x(1)^2+3/2*x(2)^2-2*x(1)*x(2)+x(1)-2*x(2)';
[x,fm]=fminsearch(f,[0,0])
f='(x(1)-1)^4+x(2)^2';
[x,fm]=fminsearch(f,[0,1])