赞
踩
(实验报告中附上每题的主要程序和结果)
1、在命令行窗口中分别输入下列命令,对应输出结果是
A.命令x=[-2:2]
B.命令x=zeros(1,2);x>=0
C.命令y=diag(eye(3),1)
D.命令[-2:2]+30*eye(size([-2:2]))
>> x=[-2:2] x = -2 -1 0 1 2 >> x=zeros(1,2);x>=0 ans = 1 1 >> y=diag(eye(3),1) y = 0 0 >> [-2:2]+30*eye(size([-2:2])) ans = 28 -1 0 1 2
% D = diag(v,k) 将向量 v 的元素放置在第 k 条对角线上。k=0 表示主对角线,k>0 位于主对角线上方,k<0 位于主对角线下方。 >> a=eye(3) a = Diagonal Matrix 1 0 0 0 1 0 0 0 1 >> diag(a) ans = 1 1 1 >> diag(a,1) ans = 0 0 >> diag(a,2) ans = 0 >> diag(a,-1) ans = 0 0 >> diag(a,-2) ans = 0
2、
1)产生一个全0的10阶矩阵a,置a的3行4列元素为4,语句是 ______ 。
2)产生一个-1~1之间均匀分布的3阶随机矩阵a,并求它的逆矩阵b。语句是 _____ 。
% 产生一个全0的10阶矩阵a,置a的3行4列元素为4 >> a=zeros(10) a = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> a(3,4)=4 a = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 % 产生一个-1~1之间均匀分布的3阶随机矩阵a,并求它的逆矩阵b >> a=(rand(3,3)-rand(3,3)) a = -0.746305 0.090700 0.346483 -0.873974 0.516029 0.240872 -0.087227 0.495974 -0.083827 >> b=inv(a) b = 7.4979 -8.2686 7.2318 4.3439 -4.2752 5.6700 17.8991 -16.6909 14.0926
3、按要求编写fun函数
函数输入参数:一个向量
函数输出参数:该向量中所有大于0的奇数元素的和
功能:求该向量中所有大于0的奇数元素的和
函数调用示例:s=fun([-1, 0, 2, 3, -5, 4])
% 方法一
function y=fun(a)
y=sum(a(rem(a,2)==1));
end
>> s=fun([-1,0,2,3,-5,4])
s = 3
%方法二
function x=fun(X)
x=0;
for i=1:length(X)
if mod(X(i),2)!=0 && X(i)>0
x=x+X(i);
endif
endfor
end
>> s=fun([-1,0,2,3,-5,4])
s = 3
4、考虑如下一组实验数据:
X=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Y=[1.2, 3, 4, 4 ,5, 4.7, 5, 5.2, 6, 7.2]
请用最小二乘法对该数据分别拟合一个二次和三次多项式函数曲线
在同一窗口绘出拟合曲线,并计算拟合误差。(请给出解题步骤)
x=[1,2,3,4,5,6,7,8,9,10]; y=[1.2, 3, 4, 4 ,5, 4.7, 5, 5.2, 6, 7.2]; plot(x,y,'o') hold on %二次函数拟合 p1=polyfit(x,y,2); y1=p1(1)*x.*x+p1(2)*x+p1(3); plot(x,y1,'r-*') hold on %二次函数拟合误差 %SSE(和方差)计算拟合数据和原始数据对应点的误差的平方和,SSE越趋近于0, %说明模型选择和拟合更好,数据预测也越成功 SSE1=sum((y-y1).^2)/length(x) %三次函数拟合 p2=polyfit(x,y,3); y2=p2(1)*x.^3+p2(2)*x.*x+p2(3)*x+p2(4); plot(x,y2,'b-^') %三次函数拟合误差 SSE2=sum((y-y2).^2)/length(x)
运行结果:
>> polyfit1
SSE1 = 0.2642
SSE2 = 0.033763
5、
5.1、有如下数据:
x 1 1.1 1.2 1.3 1.4
y 1.00000 1.23368 1.55271 1.99372 2.61170
利用spline插值方法对其进行插值,得到每隔0.05的结果。
x=[1,1.1,1.2,1.3,1.4];
y=[1.00000,1.23368,1.55271,1.99372,2.61170];
plot(x,y,'*')
hold on;
x_spline=[1:0.05:1.4];
y_spline=interp1(x,y,x_spline,'spline');
plot(x_spline,y_spline,'-')
运行结果:
5.2、求函数 y=ex-x5,初始点为x=8的解,并绘制图形。
y=@(x)exp(x)-x^5;
x = fzero(y,8);
fplot(y,[x-1,x+1]);
hold on
plot(x,y(x),'r*');
输出结果为:
5.3、求下列函数的极值。
(1)z=x2-(y-1)2
z = @(x)x(1)^2-(x(2)-1)^2;
[x,fvalue,flag,output]=fminsearch(z,[0,0])
输出结果为:
(2)z=(x-y+1)2
>> z = @(x)(x(1)-x(2)+1)^2;
>> [x,fvalue,flag,output]=fminsearch(z,[0,0])
输出结果为:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。