版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题二1. 如何理解“矩阵是matlab最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。因此,矩阵是matlab最基本、最重要的数据对象。2. 设a和b是两个同维同大小的矩阵,问:(1) a*b和a.*b的值是否相等?答:不相等。(2) a./b和b.a的值是否相等?答:相等。(3) a/b和ba的值是否相等?答:不相等。(4) a/b和ba所代表的数学含义是什么?答:a/b等效于b的逆右乘a矩阵,即a*inv(b),而ba等效于b矩阵的逆左乘a矩阵,即inv(b)*a。3. 写出完成下列
2、操作的命令。(1) 将矩阵a第25行中第1, 3, 5列元素赋给矩阵b。答:b=a(2:5,1:2:5); 或b=a(2:5,1 3 5)(2) 删除矩阵a的第7号元素。答:a(7)=(3) 将矩阵a的每个元素值加30。答:a=a+30;(4) 求矩阵a的大小和维数。答:size(a);ndims(a);(5) 将向量 t 的0元素用机器零来代替。答:t(find(t=0)=eps;(6) 将含有12个元素的向量 x 转换成矩阵。答:reshape(x,3,4);(7) 求一个字符串的ascii码。答:abs(123); 或double(123);(8) 求一个ascii码所对应的字符。答:c
3、har(49);4. 下列命令执行后,l1、l2、l3、l4的值分别是多少?a=1:9;b=10-a;.l1=a=b;l2=a<=5;l3=a>3&a<7;l4=find(a>3&a<7);答:l1的值为0, 0, 0, 0, 1, 0, 0, 0, 0l2的值为1, 1, 1, 1, 1, 0, 0, 0, 0l3的值为0, 0, 0, 1, 1, 1, 0, 0, 0l4的值为4, 5, 65. 已知完成下列操作:(1) 取出a的前3行构成矩阵b,前两列构成矩阵c,右下角子矩阵构成矩阵d,b与c的乘积构成矩阵e。答:b=a(1:3,:);c=a
4、(:,1:2);d=a(2:4,3:4);e=b*c;(2) 分别求e<d、e&d、e|d、e|d和find(a>=10&a<25)。答:e<d=,e&d=,e|d=,e|d=find(a>=10&a<25)=1; 5。6. 当a=34, nan, inf, -inf, -pi, eps, 0时,分析下列函数的执行结果:all(a),any(a),isnan(a),isinf(a),isfinite(a)。答:all(a)的值为0any(a) 的值为1isnan(a) 的值为 0, 1, 0, 0, 0, 0, 0isinf(
5、a) 的值为 0, 0, 1, 1, 0, 0, 0isfinite(a) 的值为1, 0, 0, 0, 1, 1, 17. 用结构体矩阵来存储5名学生的基本情况数据,每名学生的数据包括学号、姓名、专业和6门课程的成绩。答:student(1).id='0001'student(1).name='tom'student(1).major='computer'student(1).grade=89,78,67,90,86,85;8. 建立单元矩阵b并回答有关问题。b1,1=1;b1,2='brenden'b2,1=reshape(1
6、:9,3,3);b2,2=12,34,2;54,21,3;4,23,67;(1) size(b)和ndims(b)的值分别是多少?答:size(b) 的值为2, 2。ndims(b) 的值为2。(2) b(2)和b(4)的值分别是多少?答:b(2)=,b(4)= (3) b(3)=和b3=执行后,b的值分别是多少?答:当执行b(3)=后,b=1, 1, 4, 7; 2, 5, 8; 3, 6, 9, 12, 34, 2; 54, 21, 3; 4, 23, 67当执行b3=后,b=1,; 1, 4, 7; 2, 5, 8; 3, 6, 9, 12, 34, 2; 54, 21, 3; 4, 2
7、3, 67习题三1. 写出完成下列操作的命令。(1) 建立3阶单位矩阵a。答:a=eye(3);(2) 建立5×6随机矩阵a,其元素为100,200范围内的随机整数。答:round(100+(200-100)*rand(5,6);(3) 产生均值为1,方差为0.2的500个正态分布的随机数。答:1+sqrt(0.2)*randn(5,100);(4) 产生和a同样大小的幺矩阵。答:ones(size(a);(5) 将矩阵a对角线的元素加30。答:a+eye(size(a)*30;(6) 从矩阵a提取主对角线元素,并以这些元素构成对角阵b。答:b=diag(diag(a);2. 使用函
8、数,实现方阵左旋90o或右旋90o的功能。例如,原矩阵为a,a左旋后得到b,右旋后得到c。答:b=rot90(a);c=rot90(a,-1);3. 建立一个方阵a,求a的逆矩阵和a的行列式的值,并验证a与a-1是互逆的。答:a=rand(3)*10;b=inv(a);c=det(a);先计算b*a,再计算a*b,由计算可知b*a=a*b,即a·a-1= a-1·a是互逆。4. 求下面线性方程组的解。答:a=4,2,-1;3,-1,2;12,3,0;b=2;10;8;x=inv(a)*b方程组的解为x=5. 求下列矩阵的主对角线元素、上三角阵、下三角阵、秩、范数、条件数和迹
9、。(1) (2) 答:(1) 取主对角线元素:diag(a);上三角阵:triu(a);下三角阵:tril(a);秩:rank(a);范数:norm(a,1); 或 norm(a);或 norm(a,inf);条件数:cond(a,1); 或 cond(a,2); 或 cond(a,inf)迹:trace(a);(2)【请参考(1)】。6. 求矩阵a的特征值和相应的特征向量。答:v,d=eig(a);习题四1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。答:a=input('请
10、输入4位整数:');a=a/1000,a/100,a/10,a;a=fix(rem(a,10);a=rem(a+7,10);b=a(3)*1000+a(4)*100+a(1)*10+a(2);disp('加密后的值为:',num2str(b);2. 分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入。答:(1) 用if语句实现计算:a=input('请输入a的值:');b=input('请输入b的值:');c=input('请输入c的值:');x=input('请输入x的值:');i
11、f x>=0.5 & x<1.5y=a*x2+b*x+c;endif x>=1.5 & x<3.5y=a*(sin(b)c)+x;endif x>=3.5 & x<5.5y=log(abs(b+c/x);enddisp('y=',num2str(y);(2) 用switch语句实现计算:a=input('请输入a的值:');b=input('请输入b的值:');c=input('请输入c的值:');x=input('请输入x的值:');switch fix
12、(x/0.5) case 1,2 y=a*x2+b*x+c; case num2cell(3:6) y=a*(sin(b)c)+x; case num2cell(7:10) y=log(abs(b+c/x); enddisp('y=',num2str(y);3. 产生20个两位随机整数,输出其中小于平均值的偶数。答:a=fix(10+89*rand(1,20);sum=0;for i=1:20sum=sum+a(i);endb=a(find(a<(sum/20);c=b(find(rem(b,2)=0);disp(c);4. 输入20个数,求其中最大数和最小数。要求分别用
13、循环结构和调用matlab的max函数、min函数来实现。答:(1) 用循环结构实现:v_max=0;v_min=0;for i=1:20x=input('请输入第', num2str(i), '数:');if x> v_maxv_max=x;end;if x< v_minv_min=x;end;enddisp('最大数为:', num2str(v_max);disp('最小数为:', num2str(v_min);(2) 用max函数、min函数实现:for i=1:5a(i)=input('请输入第'
14、;, num2str(i), '数:');enddisp('最大数为:', num2str(max(a);disp('最小数为:', num2str(min(a);5. 已知:,分别用循环结构和调用matlab的sum函数求s的值。答:(1) 用循环结构实现:s=0;for i=0:63 s=s+2i;ends(2) 调用sum函数实现:s=0:63;s=2.s;sum(s)6. 当n分别取100、1000、10000时,求下列各式的值。(1) (2) (3) (4) 要求分别用循环结构和向量运算(使用sum或prod函数)来实现。答:(1) 用
15、循环结构实现:sum=0;for k=1:100sum=sum+(-1)(k+1)/k;endsum使用sum函数:x=;for k=1:10000x=x, (-1)(k+1)/k;endsum(x)(2) 用循环结构实现:sum=0;for k=1:100sum=sum+(-1)(k+1)/(2*k-1);endsum使用sum函数:x=;for k=1:100x=x, (-1)(k+1)/(2*k-1);endsum(x)(3) 用循环结构实现:sum=0;for k=1:100sum=sum+1/(4k);endsum使用sum函数实现:x=;for k=1:100x=x, 1/(4k)
16、;endsum(x)(4) 用循环结构实现:t=1;for k=1:100t=t*(2*k)*(2*k)/(2*k-1)*(2*k+1);endt使用prod函数实现:x=;for k=1:100x=x, (2*k)*(2*k)/(2*k-1)*(2*k+1);endprod(x)7. 编写一个函数文件,求小于任意自然数n的斐波那契(fibnacci)数列各项。斐波那契数列定义如下:答:function x=fibnacci(n)for i=1:n if i<=2 x(i)=1; else x(i)=x(i-1)+x(i-2); endend8. 编写一个函数文件,用于求两个矩阵的乘积和
17、点乘,然后在命令文件中调用该函数。答:函数文件myfnc.m:function x, y= myfnc(a, b)tryx=a*b;catchx=;endy=a.*b;命令文件myexe.m:a=input('请输入矩阵a:');b=input('请输入矩阵b:');x, y=myfnc(a, b);if length(x)=0 display('两矩阵的维数不匹配,无法进行乘积运算!');else disp('矩阵a和矩阵b的乘积为:'); xenddisp('矩阵a和矩阵b的点乘为:');y9. 先用函数的递归调用定义一个函数文件求,然后调用该函数文件求。答:函数文件myfnc.m:function sum=myfnc(n,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沪科版高中信息技术必修教材《信息技术基础》说课稿:第3章 信息的加工与获取 第1节 信息的加工
- 如何做好管理者的角色
- 互联网企业新员工培训方案
- 2024年软件开发合同:功能需求与开发周期
- 培训毕业汇报
- 2025年湘教新版高二语文下册月考试卷
- 产后的护理查房
- 《杭州酒店》课件
- 党校培训自我介绍
- 单位管理制度收录选集人员管理篇
- 潍柴天然气发动机结构及工作原理
- 国家开放大学《理工英语2》形考任务1-8参考答案
- 建筑公司证书津贴支付管理办法
- 2024年电大劳动与社会保障法期末考试题库及答案
- 人教版九年级数学上册21.1《一元二次方程》教学设计
- 从古至今话廉洁-大学生廉洁素养教育智慧树知到期末考试答案章节答案2024年吉林大学
- 高中英语外刊-小猫钓鱼50篇
- 开展医院安全应急演练工作计划三篇
- 宜宾市叙州区2021-2022学年七年级上学期期末数学试题
- 【打油诗】72则创意期末评语模板-每页8张
- 重庆市2023-2024学年七年级上学期期末考试语文试题(解析版)
评论
0/150
提交评论