matlab实习报告(最新)
- 格式:doc
- 大小:183.50 KB
- 文档页数:20
1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。(使用函数fminbnd、
roots) >>[x,y]=fminbnd('4*x.^6-x+x.^3-95',0,100) x = 0.4432
y = -95.3258 >> [x,y]=fminbnd('-4*x.^6+x-x.^3+95',0,100) x = 99.9999
y = -4.0000e+012 >> a=[4 0 0 1 0 -1 -95]; roots(a) ans = 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) dsolve('D2x=-Dx+x+1','Dx(0)=1','x(0)=0') ans = (5^(1/2)*exp(t*(5^(1/2)/2 - 1/2))*(5^(1/2) + 3))/10 + (5^(1/2)*(5^(1/2) - 3))/(10*exp(t*(5^(1/2)/2 + 1/2))) - 1
3 已知t=an2+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]; t0=[0,20,40,60,80,100,120,140,160,183.5]; n0=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152]; n=0:0.001:6152; t=interp1(n0,t0,n,'spline'); p=polyfit(n,t,2)
p =
0.0000 0.0144 0.0631 试求a和b的值。
4请用梯形法、辛普森法分别计算积分值1021dxxx (trapz、quad) f=inline('sqrt(x.^2+x+1)','x'); >> quad(f,0,1) ans = 1.3369 >> x=0:0.01:1;y=sqrt(x.^2+x+1);trapz(x,y) ans = 1.3369 5计算二重积分102022)12(dxdyyxxyyx (使用函数dblquad) dblquad('x.^2+y.^2+x*y+2*x+y+1', 0, 1, 0, 2) ans = 10.3333
6矩阵M=[1,2,6; 4,2,7; 8,9,3],求M的LU分解,QR分解,对角阵,特征值分解。 (使用函数lu、qr、shol、eig) M=[1,2,6; 4,2,7; 8,9,3]; lu(M) ans = 8.0000 9.0000 3.0000 0.5000 -2.5000 5.5000 0.1250 -0.3500 7.5500 qr(M) ans =
9.0000 9.1111 6.4444 -0.5000 2.4470 -2.3360 -1.0000 -0.4719 6.8566 [D,X]=eig(M) D = -0.4111 -0.7719 -0.4992 -0.5484 0.6237 -0.3914 -0.7282 0.1229 0.7730 X = 14.2944 0 0 0 -1.5712 0 0 0 -6.7232 7 a=3,A=4,b=a2,B=b2-1,c=a+A-2B,C=a+B+2c,求C。(使用函数solve) >> syms a b c A B C eq1='a=3'; eq2='A=4'; eq3='b=a^2'; eq4='B=b^2-1'; eq5='c=a+A-2*B'; eq6='C=a+B+2*c'; x=solve(eq1,eq2,eq3,eq4,eq5,eq6); >> x.C ans = -223
8 用两种方法求解Ax=b的解。(A为四阶随机矩阵,b为四阶向量,自己创建)。 方法一:>> A=rand(4) A =
0.9355 0.0579 0.1389 0.2722 0.9169 0.3529 0.2028 0.1988 0.4103 0.8132 0.1987 0.0153 0.8936 0.0099 0.6038 0.7468 >> B=[1;2;3;4];x=inv(A)*B x =
-0.2035 2.3800 5.7042 0.9564 方法二: >> A(:,5)=B;rref(A) ans =
1.0000 0 0 0 -0.2035 0 1.0000 0 0 2.3800 0 0 1.0000 0 5.7042 0 0 0 1.0000 0.9564
9.)1(5)25.1/()8.0()(323xxxxxxf,用两种方法求函数的根,并求其
极值与零点。 方法1: >> solve('x^3+(x-4/5)^2/(x+5/4)^3-5*x-5/x');x=double(ans); >> for i=1:length(x) xx(i)=isreal(x(i)); end >> x=x(xx) x = 2.4156 方法2: >> fzero('x.^3+(x-0.8).^2/(x+1.25).^3-5*(x+1/x)',3) ans = 2.4156 求极值: >> syms x y >> y=x.^3+(x-0.8).^2/(x+1.25).^3-5*(x+1/x); >> dydx=diff(y); >> solve(dydx);x=double(ans); >> for i=1:length(x) xx(i)=isreal(x(i)); end >> t=x(xx) t = -0.4694 -2.4039 >> x=t(1);y1=subs(y) y1 = 16.2832 >> x=t(2);y2=subs(y) y2 = -6.4732 >> z=diff(diff(y)); >> x=t(1);z1=subs(z) z1 = 205.8164 >> x=t(2);z2=subs(z) z2 = -53.5382 所以函数f(x)存在一个极大值点x1=-2.4039,极大值为-6.4732;一个极小值点x2=-2.4039,极小值为16.2832
10、f(x)的定义如下:2226,04()56,010,231,xxxxfxxxxxxxx且且其它,写一个matlab函数func1实现该函数。 function func1 (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 fprintf('%d\n',y);
11、写一个MATLAB小程序,求出最小的 n 值,使得 n! > realmax。 function f=realmax10() s=1;n=1; while(1) n=n+1; s=s*n; if s>realmax break; end end fprintf('nµÄֵΪ%d\n',n)
12、写一个 MATLAB 函式 myfun.m 来计算下列方程式: y = 0.5*exp(x/3)-x*x*sin(x) 其中 x 是函式的输入,y 是函式的输出。你的函式必须能够处理当 x 是纯量或是向量的两种情况。
function f=myfun(x) n=length(x); for i=1:n y(i)=0.5*exp(x(i)/3)-x(i)*x(i)*sin(x(i)); end y
13、写一个 MATLAB 函式 pifun.m 来计算下列级数: f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中 n 为函式的输入,级数和 f(n) 则是函式的输出。此外,你必须进行下列事项:
function f=pifun(n) l=1;s=0; for i=1:n s=s+l/(2*i-1); l=-l; end s=4*s;
disp('f(n)的值是');disp(num2str(s)) (1) 使用 tic 和 toc 指令来测量 pifun(100000) 的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的计算机是 Pentium-450,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。
>> tic,pifun(100000),toc f(n)的值是 3.1416 Elapsed time is 0.028928 seconds. Cpu Pentium dual—core e5300 (2)使用 flops 指令来测量 pifun(100000) 所用到 floating point operations 的计算次数。如果你不知道如何使用这个指令,请使用 help flops 来查出它的用法。
14、写一个 MATLAB 的递归函式 fibo.m 来计算 Fibonacci 数列,其定义如下: fibo(n+2) = fibo(n+1)+fibo(n) 此数列的启始条件如下: fibo(1) = 0, fibo(2) = 1. function f=fibo(n) if n==1 f=0; elseif n==2 f=1; else f=fibo(n-1)+fibo(n-2); end
15 求下列函数的极小点: 1) 2123222118294xxxxxXf;
>> 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])
x = 1.0000 -2.2500 0.0000