?3?
5对矩阵 a?4 ???7 228 3? ?
6进行下述操作。 ?1?? (1)求秩。答案:rank(a) (2)求转置。答案:a
(3) 对矩阵求逆,求伪逆。答案:inv(a) ,pinv(a) (4) 左右反转,上下反转。答案:fliplr(a),flipud(a) (5) 求矩阵的特征值. 答案:
[u,v]=eig(a) (6) 取出上三角和下三角. 答案:triu(a) tril(a) (7)以a为分块作一个3行2列的分块矩阵。答案:repmat(a) ?5?
计算矩阵?3 ??7 379 5?
?4?8???2 ?与?6 ??8 473 2?
?9?6?? 6 之和。
a=[5 3 5;3 7 4;7 9 8]; b=[2 4 2;6 7 9;8 3 6]; a+b 7 计算a ?6 ???2 97
3??5? ?2???4 46
1??8?
与b的数组乘积。
a=[6 9 3;2 7 5]; b=[2 4 1;4 6 8]; ans =
12 36 38 42 40 8 ?1
已知:a??4 253?
?6,分别计算a的数组平方和矩阵平方,并观察其结果。 ????7 8 9??
a=[1 2 3;4 5 6;7 8 9]; a.^2 ans =
1 4 9 16 25 36 49 64 81 a^2 ans = 30 36 42 66 81 96 102126150 上机练习题二班级:姓名: ?492? ?37?
1 对于ax?b,如果 a???7
64??,b???26??,求解x。 ??3 5 7??
??28??
a=[4 9 2;7 6 4;3 5 7];
b=[37 26 28]’; x=a\\b x = -0.5118 4.0427 1.3318 2 角度x??30 45
60?,求
x的正弦、余弦、正切和余切。
x=[30 45 60]; x1=x/180*pi; sin(x1) ans = 0.5000 0.7071 0.8660 cos(x1) ans = 0.8660 0.7071 0.5000 tan(x1) 学号:
0.5774 1.0000 1.7321 cot(x1) ans =
1.7321 1.0000 0.5774 ?4
3 将矩阵a?? ?5 2??7
b?、??7??8 1?
?3? 和c
?5???69??2?
组合成两个新矩阵:
(1)组合成一个4?3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即 ?475?? ? 5
86???219? ??7 3 2??
(2)按照a、b、c的列顺序组合成一个行矢量,即?452778135692?
答案:a=[4 2;5 7]; b=[7 1;8 3]; c=[5 9;6 2]; % (1) d=[a(:) b(:) c(:)] d =
4 7 5 5 8 6 2 1 9 7 3 2 % (2) e=[a(:);b(:);c(:)]e =
4527781356 或利用(1)中产生的d e=reshape(d,1,12) ans = 4527781356 4求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。 p=poly([1 2 3 4]);
polyvalm(p,8)% polyval(p,8) ans = 840 5求方程3x4 ?7x3 ?9x2
?23?0的全部根。 p=[3,7,9,0,-23]; %建立多项式系数向量 x=roots(p)%求根 92 92
上机练习题三
班级:姓名: 学号:
1、 设x是数组,求均值和方差 解:函数文件如下: function [xx,s]=func1(x) n=length(x); xx=sum(x)/n; s=sqrt((sum(x.^2)-n*xx^2)/(n-1)); 命令窗口: x=[1 2 3 4 5];[xx,s]=func1(x) m
2、求满足?ln(1?n)?100的最小m值 n?0
s=0; n=0;
while(s=100) s=s+log(1+n); n=n+1; end n,s
3、用循环语句形成fibonacci数列
ffk1?f2?1,fk?fk?1?fk?2,k?3,4,....。并验证极限f?1?5 k?1
2示:计算至两边误差小于精度1e-8为止) 解:求fibonacci数列的函数文件:
function fibo(k) clc; f(1)=1; f(2)=1; for n=3:k f(n)=f(n-1)+f(n-2) end f(k) 验证极限的函数文件:
function [k,a]=funtest(e) a=abs(1-(1+sqrt(5))/2); k=2; while(ae) (提 k=k+1;
a=abs(fun(k)/fun(k-1)-(1+sqrt(5))/2); end 命令行:
[k,a]=funtest(10^-8) k = 21 a = 9.7719e-009
或者m文件如下:
clear; f(1)=1;f(2)=1;k=2;x=0;e=1e-8; a=(1+sqrt(5))/2; while abs(x-a)e
k=k+1; f(k)=f(k-1)+f(k-2); x=f(k)/f(k-1);end a,x,k 10 6
4、分别用for和while循环结构编写程序,求出k?种算法的运行时间。
解:for循环结构:m文件loop.m k=0; for i=1:10^6
k=k+sqrt(3)*2^-i; end k
while循环结构:m文件loop1.m k=0;i=1; while i=10^6
k=k+sqrt(3)*2^(-i); i=i+1; end k 非循环结构:m文件nonloop.m
i=1:10^6; x=sqrt(3)*(2.^-i); k=sum(x) ? i?1 32 i
,并考虑一种避免循环语句的程序设计,比较各 速度比较:tic;loop;toc%循环结构的执行时间 k = 1.7321
elapsed time is 1.813000 seconds.
tic;nonloop;toc %非循环结构的执行时间 k =
【篇三:《数学模型》习题解答】
t>1. 学校共1000名学生,235人住在a宿舍,333人住在b宿舍,432人住在c宿舍.学生们要
组织一个10人的委员会,试用下列办法分配各宿舍的委员数:
(1). 按比例分配取整数的名额后,剩下的名额按惯例分给小数部分较大者; (2). 1中的q值方法;
(3).d’hondt方法:将a、b、c各宿舍的人数用正整数n=1,2,3,??相除,其商数如下表:
将所得商数从大到小取前10个(10为席位数),在数字下标以横线,表中a、b、c行有横线的数分别为2,3,5,这就是3个宿舍分配的席位.你能解释这种方法的道理吗?
如果委员会从10个人增至15人,用以上3种方法再分配名额,将3种方法两次分配的结果列表比较. 解:先考虑n=10的分配方案,
p1?235,p2?333,p3?432,方法一(按比例分配) 第二章(1)(2008年9月16日) ?p i?1 3 i
?1000. q1? p1n ?p i?1 3
?2.35,q2? p2n i ?p i?1 3