Matlab实验作业及答案
作业1:建立函数M文件
2.建立下面函数的M文件,并求f(x)值. (1)f(x)=log(x1+x22),x=(1,2) (2)f(x)=sin(x2)+exp(2x3),x=2 (1)
function f = fun1(x1,x2) f = log(x1 +x2^2); end (2)
function f = fun2( x) f = sin(x^2) + exp(2*x^3); end
3.试编写同时求sin(x),cos(x),exp(x),abs(x)的M函数文件.
function f = fun3(x)
f = [sin(x) cos(x) exp(x) abs(x)]; end
4.建立符号函数的M文件:当输入的变量为负数时,返回值-1;当输入的变量为正数时,返回
值1;而输入0时,返回值0.
function f = fun4(x) if x>0
f = 1; else if x == 0 f = 0; else f = -1; end end
x?1??e,x?0f??5.建立函数 的M文件。
2??x,x?0end
function f = fun5(x)
if x>0
f = exp(x-1); else
f = x^2; end end
6.通过帮助系统查询roots,poly,polyval,poly2str的用法,用这些命令解下面的问题:
已知一多项式的零点为{-1,1,2,3},写出该多项式,并且计算多项式在点x=2.5处的值。
root = [-1 1 2 3]; p = poly(root); x = 2.5; a = polyval(p,x); eig(a)
计算多项式y=x3-3x+2的零点
P = [1 0 -3 2];a = company(p); eig(a)
7.查询sum,length的用法,建立一个求向量的平均值的M文件
a = [1 2 3 4]; b = sum(a);
c = length(a); d = b/c; eig(d)
8.查询input,disp的用法,建立M文件:输入x,y的值将其互换后输出
x = input('x='); y = input('y='); disp ([x,y]); t=x; x=y; y=t; disp ([x,y]);
作业题2:MATLAB矩阵的处理
1. 创建矩阵
A = [1 2 -1 3 5;1 -2 9 0 -6;-3 3 -4 7 1;9 8 0 7 6]; disp(A);
2.取A的1,2行与2,3列的交叉元素作子矩阵A1.
A([1,2],[2,3])
3.取A的1,3行,然后按行形成矩阵A2
A2 = A([1,3],:);
4.逆序提取A的1,2,3行,形成列矩阵A3.
A3 = [A(3,:) A(2,:) A(1,:)]’;(“’”为转置符号) 5.取A2的绝对值大于3的元素构成向量A4.
A4 = find(A>3);
6.求出A的最大值a及其所处的位置.
?1?1?A???3??92?238?19?4030775???6?1??6?a = max(max(A)); [row col v] = find(a); disp([row col v]); 7、设
?10?7?A??8??77565861097??5?9??10??32???23??b??33????31?用三种方法(克拉姆法则、矩阵的除法、逆矩阵)解方程组AX=b
A = [10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10]; b = [32;23;33;31];
逆矩阵法:
x = inv(A)*b; disp(x);
矩阵的除法
x =A\\b;
克拉姆法则
for n=1:4 B = A; B(:,n) = b;
x(n) = det(B)/det(A); end disp(x);
作业题3:Matlab语法控制结构的使用
(1) 用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头.
a = [0 9 7 8 6 5 4 3 2 1];
相关推荐: