matlab四合一(dream)(4)

2019-04-22 19:42

x=xlsread('noisyData.xls'); width=11;

smoothed=rectFilt(x,width); figure; plot(x,'--'); hold on;

plot(smoothed,'r'); hold off;

xlabel('Index');

ylabel('Data value');

title('Smoothing Demonstration'); legend('Original Data','Smoothed'); 7.绘制圆的函数

我想绘制一个圆,matlab没有这个函数,没关系我们可以自己来写。编辑一个函数,[x,y]=getCircle(center,r),其中x,y返回的是一个圆的x,y一一对应的值,圆心为center,center应该是一个2个元素的向量,第一个值为x坐标,第二个为y坐标,r为圆半径。最终我们利用返回的x和y只需使用plot函数就可以绘制一个圆。 提示:假如圆心为(0,0),那么半径为1的圆可以按照以下方程求解x,y坐标x(t)=cos(t), y(t)=sin(t)。其中t为[-2*pi:2*pi]。因此,我们可以在以上坐标基础上做任意的尺度变化(半径)和坐标移动(圆心坐标)。 完成以上函数后,我们可以用这个函数来做一些有意思的事情,请利用上面写出的函数完成下面两个练习:

A. 编写一个脚本,名为concentric.m,利用前面的圆函数,结合plot和hold on命令绘制5

个同心圆,结果参考下图:

1050-5-10-15-10-5051015

B. 编写一个脚本,名为olympic.m,利用上面的圆函数,绘制olympic的logo,结果如下

图:

0.80.60.40.20-0.2-0.4-0.6-0.8-1-1.2-1-0.500.511.5

程序(1)function [x,y]=getCircle(center,r) t=-2*pi:0.01:2*pi for i=1:length(t) a=t(i);

x(i)=r*cos(a)+center(1); y(i)=r*sin(a)+center(2); end

程序(2)r=0.5; center=[1,0];

[x,y]=getCircle(center,r) plot(x,y,'r','linewidth',3) hold on; r=0.5;

center=[-0.5,-0.5]; [x,y]=getCircle(center,r) plot(x,y,'y','linewidth',3) hold on; r=0.5;

center=[0.5,-0.5];

[x,y]=getCircle(center,r) plot(x,y,'g','linewidth',3) hold on; r=0.5;

center=[0,0];

[x,y]=getCircle(center,r) plot(x,y,'k','linewidth',3) hold on; r=0.5;

center=[-1,0];

[x,y]=getCircle(center,r) plot(x,y,'linewidth',3) xlim([-1.5 1.5]); ylim([-1.4 1]); hold off;

第三题

目的:

5) 通过自己写函数解决一些常见问题。

题目说明:所有的题目代码写入相应的脚本中,如果题目没有要求特定的脚本文件名,自行定义一个即可。

1.线性方程求解:

使用“\\”,求解下面的线性系统,计算并显示误差向量。

3a?6b?4c?1a?5b?27b?7c?3

clear all;

A=[3,6,4;1,5,0;0,7,7]; B=[1;2;3]; x=A\\B a=x(1) b=x(2)

c=x(3) 2.数值积分:

5使用trapz或者quad计算积分xe?x/3dx,我们知道根据分部积分法可以计算这个积分

?0得到?3xe?x/350?5/3那么请比较实用trapz计算得到的结果和直接使用|?9e?x/3|5??24e?9,0积分后数值计算的结果差异,并显示在命令行窗口中。

clear all; x=0:0.01:5; y=x.*exp(-x/3); z=trapz(x,y)

%%%%%%%%%%%%%%%%% syms a

int(a.*exp(-a/3),0,5)

3.矩阵求逆:

计算矩阵??12??的逆,使用inv函数。然后将结果乘以原始矩阵,检查结果是否为单34??位阵。

clear all; a=[1 2;3 4] b=a*inv(a)

4.多项式拟合:

使用xlsread函数分别载入数据randomDatax.xls和randomDatay.xls,使用ployfit函数对该两对变量分别做1,2,3,4,5阶拟合,为了得到比较好的拟合效果,使用polyfit的中心与标尺模式,具体使用方法为[p,S,mu] = polyfit(x,y,n),它会返回三个参数,

接下来使用对应的[y,delta] = polyval(p,x,S,mu)来根据x对y进行拟合。最后绘制为图,原始数据为黑色圆点,其他5个拟合为不同颜色,对x,y轴做label,对整个图做title,另外加入legend以注明不同曲线的含义。

运行结果可参考下例:

Plynomial fits to random data0.20.150.10.050-0.05-0.1-0.15-0.2 100OriginalOrder 1Order 2Order 3Order 4Order 5110120130140150x160170180190200 y

clear all;

x=xlsread('randomDatax.xls'); y=xlsread('randomDatay.xls'); plot(x,y,'k.') hold on;

[p S mu]=polyfit(x,y,1);

[m delta]=polyval(p,x,S,mu); plot(x,m,'linewidth',2); hold on;

[p S mu]=polyfit(x,y,2);

[m delta]=polyval(p,x,S,mu); plot(x,m,'g','linewidth',2); hold on;

[p S mu]=polyfit(x,y,3);

[m delta]=polyval(p,x,S,mu); plot(x,m,'r','linewidth',2); hold on;

[p S mu]=polyfit(x,y,4);

[m delta]=polyval(p,x,S,mu); plot(x,m,'y','linewidth',2); hold on;


matlab四合一(dream)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年郑州市初中毕业年级适应性测试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: