实验一 MATLAB使用练习
1. 输入矩阵
?1 5 6 2? ??A??2 8 9 2?
?1 5 3 7? ??将其第2行第3列元素赋值给a
将其第1、3行第2、3、4列赋值给B 输入A(8)看一下出现什么结果?
2. 输入分块矩阵
其中 E R O S分别是单位矩阵、随机阵、零阵和对角阵。验证
?E3x3 R3x2?A???O S?2x32x2? ?E R?RS?2A??? 2O S??
>> A=[1 5 6 2;2 8 9 2;1 5 3 7] >>E=eye(3,3),O=zeros(2,3), >> a=A(2,3) R=rand(3,2) a = >> S=rand(2) 9 S = >> B=A(1:2:3,2:4) 0.6154 0.9218 B = 0.7919 0.7382 5 6 2 >> s=diag(S) 5 3 7 s = >> A(8) 0.6154 ans = 0.7382 9 >> S=diag(s) S = 0.6154 0 0 0.7382 >>A=[E R;O S] B=A^2 C=[E,R+R*S;O,S^2]
?13. 已知如下矩阵,计算A+B;A-B;AB;BA; A?1BAB?1 2 3??0 -2 1?
????A??2 2 1?A??3 0 -2?
?3 4 3??-2 3 0? ????>> A=[0 -2 1;3 0 -2;-2 3 0],B=[1 2 3;2 2 1;3 4 3] >> A+B, A-B, A*B, B*A, inv(A)*B ,A*inv(B)
4. 生成一个5阶的服从标准正态分布的随机矩阵,并 (1)求出它的特征值和特征向量;
(2)取出该标准正态分布阵的第二条主对角元; (3)求出它的逆矩阵;
(4)取出它的上三角部分和下三角部分; 实验编程:A=randn(5)
(1)[a,b]=eig(A) (2)a=diag(A,2) (3)inv(A) (4)triu(A),tril(A) 5.
sin(a?b) 设a??24o,b?75o,计算的值tan(a?b)
实验编程:
>>a=-24*pi/180;b=75*pi/180;
A=sin(abs(a)+abs(b))/sqrt(tan(abs(a+b)))
6. 通过上机实验,比较help和lookfor的差别。
lookfor查找速度慢,容易导致MATLAB busy。Help是实现精确查找,用来查询已知命令的用法。lookfor实现的是粗查找,用来寻找未知的命令,并显示有该关键字的相关命令。如果不知道一些函数或者只知道几个词用lookfor查找,如果知道精确的还是用help 7、已知
?32?9?A???
?653?? 32?ay?f(a)?a?sin(a)?e的值ijij至少用三种方法求出
第一种:>>A=[3,2*pi,9;6,5,3*pi];
Y=A.^3+(sin(A)).^2+exp(-A)
第二种:>>y=feval(inline(?a.^3+(sin(a)).^2+exp(-a)?),A) 第三种:>>y=@(a)(a.^3+(sin(a)).^2+exp(-a)); Y=feval(y,A)
实验二 matlab图形功能与程序设计
1. 作参数方程 grid
2.作曲面z?x2?y2的3维图形。
实验编程:>> x=-1:0.01:1;
y=x;
表示的空间曲线。要求保存名为[x,y]=meshgrid(x,y); luoxuan.m的 z=x.^2-y.^2; M脚本文件,并要求将图形窗口分为2个子mesh(x,y,z) 图, 一个子图不加网格,但标注‘螺旋线’‘x3.设银行年利率为11.5%,将10000元轴’‘ 钱存入银行,问多长时间会连本带利翻一y轴’‘z轴’;一个子图要求加网格。 番。要求编写M文件计算。 t=linspace(0,20);
x=exp(-0.1*t).*cos(t); y=exp(-0.1*t).*sin(t); z=sqrt(t);
subplot(1,2,1); plot3(x,y,z);
title('螺旋线')xlabel('x轴') ylabel('y轴')zlabel('z轴')
解: x=10000; r=0.115; n=0;
while x<20000
x=x*(1+0.115);%本金=去年的本金+利息 n=n+1; end n
subplot(1,2,2); plot3(x,y,z); 4.()用命令1fplot绘制函数y=x?sin(x)在区间[-5,5]的图形;
x=cos3t (2)用命令ezplot绘出参数方程?t?[0,2?]?y=sin5t?
22 与隐函数4x?16y?3的图形,要求将这两个图形建立 在一个坐标系下.(1) fplot('x.*sin(x)',[-5,5])
(2) ezplot('cos(3*t)','sin(5*t)',[0,2*pi])
hold on
ezplot('4*x.^2+16*y.^2=3',[-1,1,-0.5,0.5]); hold off
6. 某商场对顾客所购买的商品实行打折销售,已知打折标准,求所售商品的实际销售价格。 打折标准:少于200元,不打折;少于500 元,打9.7折;少于1000元,打9.5折;
实验编程: 超过1000元,打8.6折 a(1)=1; function y=jj(x) a(2)=1; if x<200 k=1; y=x; while a(k)<=10000 elseif x<500 a(k+2)=a(k)+a(k+1); y=x*0.97; k=k+1; elseif x<1000 end; y=x*0.95; k-1,a(k) else x>1000
y=x*0.86; end
提示:先建立M文件fun5.m定义函数(fx)再在Matlab命令窗口输入fun5(2),fun5(0.5), fun5(-1)即可。
function y=fun5(x) if x>1
y=x.^2+1; elseif x<=0 y=x^3; else y=2*x; end
>> fun5(2),fun5(0.5),fun5(-1) 8.判断任意一个正整数是质数还是合数,在一些有关数论问题中是经常碰到的。当一个正的奇数比较大时,判断是否为质数往往是不很容易的。现在要求编制一个函数程序,对任意一个正整数,判断出它是质数还是合数,若是质数,则返回值是1;若是合数,返回值0,同时给出两个因数;若输入非正数,则返回值-1,并提示错误。 function k=hezhishu(M) k=1; if M<=1
disp('data error!');k=-1; return
end
if M>=4 for m=2:fix(sqrt(M)) if mod(M,m)==0 k=0;
fprintf('%.0f=%.0f*%.0f\\n',M,m,M/m) break end end end
>>hezhishu(4), hezhishu(137), hezhishu(-4),
实验三 插值与拟合与数值积分
1.在1点~12点的12小时内,每隔1小时测量一次温度,温度依次是: 5,8,9,15,25,29,31,30,22,25,27,24.
(1)试估计在3.2h,6.5h,7.1h,11.7h时的温度值(线性、三次样条、拉格朗日); (2)试估计每隔1/10h的温度值,用图形表示。 编写拉格朗日函数如下: y0=[5,8,9,15,25,29,31,30,22,25,27,24]
x=[3.2,6.5,7.1,11.7]; function y=lagr(x0,y0,x)
y1=interp1(x0,y0,x) n=length(x0);
y2=interp1(x0,y0,x,'spline') m=length(x);
y3=lagr(x0,y0,x) for i=1:m
(2) 解:在M文件中输入 z=x(i);
x0=1:1:12; s=0;
y0=[5,8,9,15,25,29,31,30,22,25,27,24] for k=1:n
x=1:0.1:12; p=1;
y1=interp1(x0,y0,x); for j=1:n
y2=interp1(x0,y0,x,'spline'); if j~=k
y3=lagr(x0,y0,x);
subplot(3,1,1); p=p*(z-x0(j))/(x0(k)-x0(j));
plot(x0,y0,'k+',x,y1,'r'); end
title('线性'); end
subplot(3,1,2); s=p*y0(k)+s;
plot(x0,y0,'k+',x,y2,'r'); end
title('三次样条') y(i)=s;
subplot(3,1,3); end
(1) 解:在M文件中输入 plot(x0,y0,'k+',x,y3,'r'); x0=1:1:12; title('拉格朗日');
2.已知某精密仪器的某部件轮廓线的数据如下表所列,求x每改变0.1时的Y值。 x y 0 0 3 1.2 5 1.7 7 2.0 9 2.1 11 2.0 12 1.8 13 1.2 14 1.0 15 1.6 >> x0=[0 3 5 7 9 11 12 13 14 15]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]; x=0:0.1:15;y=interp1(x0,y0,x,?spline?) plot(x,y,'g.'),grid
3.弹簧在力F的作用下伸长x,一定范围内服从胡克定律:F与x成正比,即F=kx,现在得到下面一组F,x数据,并在(x,F)坐标下作图,可以看到当F大到一定数据值后,就不服从这个定律了。试由数据确定k,并给出不服从胡克定律时的近似公式。 解:服从胡克定律: 不服从胡克定律时: x0=[1 2 4 7 9 ] X1=[9 12 13 15 17]; F0=[1.5 3.9 6.6 11.7 15.6 ] F1=[15.6 18.8 19.6 20.6 21.1 ]; aa=polyfit(x0,F0,1) aa=polyfit(x1,F1,2) y=polyval(aa,x0) y=polyval(aa,x1); plot(x0,F0,'k+',x0,y,'r'); plot(x1,F1,'k+',x1,y,'r'); xlabel('x'),ylabel('F') xlabel('x'),ylabel('F')
?/24.用matlab计算 22221/20
注:其中a=7782.5 ,b=7721.5.要求分别用梯形公式,辛普森公式计算
L?4?(asin(t)?bcos(t))dt>>t=0:pi/10:pi/2;
y=sqrt(7782.5^2*(sin(t)).^2+7721.^2*(cos(t)).^2); disp('梯形公式求积分L1') L1=4*trapz(t,y)
disp('辛普森公式求积分L2')
L2=4*quad('sqrt(7782.5^2*(sin(t)).^2+7721.^2*(cos(t)).^2)',0,pi/2) 5、以以下积分为例,利用复化梯形法计算pi的值,将误差控制在1e-5以内 14??2dx 01?x
y=inline('4/(1+x.^2)'); a=0;b=1;n=1; h=(b-a)/n;
t1=h.*(y(a)+y(b))/2; er=1; k=1;
while er>=1.0e-5 s=0; for i=1:n
?
s=s+y(a+(i-1/2).*h); end
t2=(t1+h.*s)/2; er=abs(t1-t2);
fprintf('n=%.0f,p=%.5f,er=%.5f\\n',k,t2,er) n=2.*n; h=h/2; t1=t2; k=k+1; end
实验四 常微分方程的数值解
实验编程:>> y=dsolve('(x^2-1)*Dy+2*x*y-cos(x)=0','y(0)=1','x') 输出结果:>> y=
(sin(x)-1)/(x^2-1)
实验编程:>> y=dsolve('D2y+3*Dy+exp(x)=0','x') 输出结果: y =-1/4*exp(x)-1/3*exp(-3*x)*C1+C2
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数学实验期末整理(修改)在线全文阅读。
相关推荐: