MATLAB作业1参考答案
1 、启动MATLAB 环境,并给出语句tic, A=rand(500); B=inv(A); norm(A*B-eye(500)),toc,试运行该语句,观察得出的结果,并利用help 命令对你不熟悉的语句进行帮助信息查询,逐条给出上述程序段与结果的解释。
【求解】在MATLAB 环境中感触如下语句,则可以看出,求解500?500随机矩阵的逆,并求出得出的逆矩阵与原矩阵的乘积,得出和单位矩阵的差,得出范数。一般来说,这样得出的逆矩阵精度可以达到10?12。
>> tic, A=rand(500); B=inv(A); norm(A*B-eye(500)), toc ans = 1.2333e-012
Elapsed time is 1. seconds.
2、试用符号元素工具箱支持的方式表达多项式f(x)?x5?3x4?4x3?2x2?3x?6,并令
x?s?1,将f(x) 替换成s 的函数。 s?1【求解】可以先定义出f 函数,则由subs() 函数将x 替换成s 的函数 >> syms s x;f=x^5+3*x^4+4*x^3+2*x^2+3*x+6;F=subs(f,x,(s-1)/(s+1)) F =
(s-1)^5/(s+1)^5+3*(s-1)^4/(s+1)^4+4*(s-1)^3/(s+1)^3+ 2*(s-1)^2/(s+1)^2+3*(s-1)/(s+1)+6
3、用MATLAB 语句输入矩阵A 和B
?1?4A???2??3233232444?1??,1??1??1?4j?4?1jB???2?3j??3?2j2?3j3?2j3?2j2?3j3?2j4?1j2?3j4?1j4?1j?1?4j?? 1?4j??1?4j?前面给出的是4 ×4 矩阵,如果给出A(5,6) = 5 命令,矩阵A将得出什么结果? 【求解】用课程介绍的方法可以直接输入这两个矩阵
>> A=[1 2 3 4; 4 3 2 1; 2 3 4 1; 3 2 4 1] A = 1 2 3 4 4 3 2 1 2 3 4 1 3 2 4 1
若给出A(5,6)=5 命令,虽然这时的行和列数均大于A矩阵当前的维数,但仍然可以执行该语句,得出 >> A(5,6)=5 A = 1 2 3 4 0 0 4 3 2 1 0 0 2 3 4 1 0 0 3 2 4 1 0 0 0 0 0 0 0 5
复数矩阵也可以用直观的语句输入
>> B=[1+4i 2+3i 3+2i 4+1i; 4+1i 3+2i 2+3i 1+4i; 2+3i 3+2i 4+1i 1+4i; 3+2i 2+3i 4+1i 1+4i]; B =
1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i
3.0000 + 2.0000i 2.0000 + 3.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i
4、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。 【求解】魔方矩阵可以采用magic() 生成,子矩阵也可以提取出来 >> A=magic(8), B=A(2:2:end,:) A =
64 2 3 61 60 6 7 57 9 55 54 12 13 51 50 16 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 23 22 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 59 5 4 62 63 1 B =
9 55 54 12 13 51 50 16 40 26 27 37 36 30 31 33 41 23 22 44 45 19 18 48 8 58 59 5 4 62 63 1
x?D?h,?5、用MATLAB 语言实现下面的分段函数y?f(x)??h/Dx,x?D。
??h,x??D?【求解】两种方法,其一,巧用比较表达式解决