matlab练习题及答案详解(附程序)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab练习题及答案详解
一、基础题
1、下表为
1)
2) 把任意两点距离的表中,自己到自己的距离,转变成无穷大
clc
clear
close all
data=xlsread('ti1.xls');%从excel里导入数据
x=data(1,:);%将data里第一行的所有列赋值给x
y=data(2,:);%将data里第二行的所有列赋值给x
n=length(x);%表x的长度
dis=zeros(n,n);%对距离表进行初始化
for i=1:n
for j=1:n
dis(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);%平面坐标距离公式
end
end
dis(dis==0)=inf;%将距离表中为0的数值,变成无穷大
redis=dis;
2、按要求步骤,操作下表
要求:
1) 对每列进行[0,1]区间化'(min())/(max min())
=--;
x x x x
2) 把区间化后的表的右边3列,连接在左边3列下边,构成16行3列的表;
3) 把16行3列进行转置,得到3行16列的表。然后对列进行操作,把3行
16列的表变成一列,后转置成一行,得到最终的结果。
clc
clear
close all
x=load('ti2.txt');%从txt里导入数据
big=max(x);small=min(x);%算出每列的最大最小值
[m,n]=size(x);%表x的行和列的大小
newx1=zeros(m,n);%对newx1进行初始化,大小和初始x一样大
for i=1:n
newx1(:,i)=(x(:,i)-small(i))./(big(i)-small(i));
end
newx2=zeros(2*m,n/2);%对最新的表进行初始化大小为,行为newx1的2倍,列为一半
newx2(1:m,1:n/2)=newx1(1:m,1:n/2);%把左边3列不操作的值,直接赋值给newx2上边
newx2(m+1:end,1:n/2)=newx1(1:m,n/2+1:end);%把右边的3列,赋值给newx2下边
[p,q]=size(newx2);%表newx2的行和列的大小 newx3=zeros(p*q,1);%对newx3进行初始化 for j=1:q
newx3((j-1)*p+1:j*p,1)=newx2(:,q);%对newx3进行操作 end
% newx3=reshape(newx2,[],1); renewx=newx3';%最终的结果
3、数值运算
1)用matlab 求下列式子极限
(a) lim x → (b) 0x →2)用matlab 求下列函数的导数
(a)
22sin (1)y x =+ (b) arccos()(,)x f x y ye =
3)用matlab 求下列式子的定积分
(a) 4
⎰
(b) 31
2
-⎰⎰
clc clear %===求极限 %====3.1.a=== syms x
y=(x^(1/2)-8)/(x^(1/3)-4);
re1a=limit(y,x,64)
%====3.1.b===
syms x
y=((x^2-2*x+4)^(1/2)-2)/x;
re1b=limit(y,x,0)
%===求导数
%====3.2.a===
syms x
f=(sin(x^2+1))^2;
re2a=diff(f,x)%对x求导
%====3.2.b===
syms x y
f=y*exp(acos(x));
re2bx=diff(f,x)%对x求偏导
re2by=diff(f,y)%对y求偏导
%===求定积分===
%====3.3.a===
syms x
re3a=int((x+2)/(2*x+1)^(1/2),x,0,4)%一重积分
%====3.3.b===
syms x y
re3b=int(int(y/(x^2-1),x,-2,-sqrt(2)),y,1,3)%二重积分
二、提高题
1、画一个正五边形,边长自定。
图1:示例一
clc
clear
close all
a=100;
b=a/(2*sin(36/180*pi));
x=b*[-cos(18/180*pi) 0 cos(18/180*pi)....
sin(36/180*pi) -sin(36/180*pi) -cos(18/180*pi)]; y=b*[sin(18/180*pi) 1 sin(18/180*pi)....
-cos(36/180*pi) -cos(36/180*pi) sin(18/180*pi) ]; plot(x,y,'linewidth',2)
text(-b/4,0,'正五边形','fontsize',20)
text(0,0,'y=','num2str(p(1))')
axis([-b-b/5 b+b/5 -b-b/5 b+b/5])
axis equal
box off