Matlab程序设计实验5数据分析和多项式计算
- 格式:doc
- 大小:137.50 KB
- 文档页数:9
课程名称:Matlab语言程序设计实验题目:Matlab的多项式运算和数据分析一、实验目的1. 掌握Matlab 中多项式函数的使用;2. 掌握利用Matlab 实现数据拟合的方法;3. 掌握Matlab 中的数据分析函数的使用。
二、实验内容和结果1.求多项式函数432)(23++=x x x p 的根,求以得到的根向量为根的多项式;求)(x p 的导函数系数向量1q 和以5为常数项的原函数系数向量2q ;在同一绘图窗口中用plot 绘制)(x p ,)(1x q ,)(2x q 的图像,并加图例。
clcp=[2 3 0 4]; x=0:0.01:2; p1=roots(p); yy=poly2sym(p1) y=polyval(p,x); plot(x,y,'g') hold onq1=polyder(p) y1=polyval(q1,x); plot(x,y1,'b') hold onq2=[2 3 0 5]; y2=polyval(q2,x); plot(x,y2,'r') hold onlegend('p(x)','q1(x)','q2(x)') xlabel('x') ylabel('y')0.20.40.60.81 1.2 1.4 1.6 1.820510152025303540xy2.用电压10=V 伏的电池给电容器充电,电容器上t 时刻的电压为}exp{)()(0τtV V V t v ---=,其中0V 是电容器的初始电压,τ是充电常数。
试由下面一组t ,V 数据确定0V 和τ。
t=[.5 1 2 3 4 5 7 9];v=[6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63]; u1=10-v; u3=log(u1); u4=exp(u3); plot(t,u3,'*r'); hold onq=polyfit(t,u3,1) y=polyval(q,t); plot(t,y); tt=1/-.2835 v0=10-exp(1.4766)v0 =5.6220τ=-3.52730V =5.6220 拟合图0123456789-1.5-1-0.50.511.53.利用多项式函数和eig 求3阶Pascal 矩阵的特征值,并比较二者的结果。
MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。
5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。
实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。
实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。
实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
MATLAB程序设计教程总结MATLAB程序设计教程总结MATLAB程序设计教程总结一、MATLAB操作基础1、MATLAB的主要功能:(1)数值计算和符号计算功能(2)绘图功能(3)编辑语言功能(4)拓展功能2、MATLAB的安装为执行安装盘上的setp.exe文件来启动安装过程,然后按照系统提示进行操作即可。
3、MATLAB的六种操作界面:主窗口、命令窗口、工作空间窗口、当前目录窗口、命令历史窗口、start按钮。
4、MATLAB可通过path命令或对话框设置搜索路径。
5、进入MATLAB帮助界面的3种方法:(1)单击MATLAB主窗口工具栏中的help按钮(2)选择help菜单中前4项的任意一项(3)在命令窗口中输入helpwith、helpdesk或doc命令6、Help、lookfor及模糊查询为MATLAB帮助命令二、MATLAB矩阵及计算1、在MATLAB中变量名是以字母开头,后接字母、下划线的字符序列,最多允许有63个字符,且变量区分大小写,关键字和函数名不能作为变量名。
2、预定义变量:ans、eps、pi、i、j、inf、Inf、NaN、nan、nargin、nargout、realmax、realmin、lasterr、lastwarn。
3、Clear命令删除工作空间中的变量,who和whos用于显示在工作空间中一直驻留的变量名清单。
4、数据输出格式有:formatshort、formatshorte、formatlong、formatlonge、formatbank、formathex、formatt。
5、矩阵的拆分:(1)利用冒号表达式获得子矩阵(2)利用空矩阵删除矩阵的元素(3)利用reshpe(A,m,n)函数可以改变矩阵形状.6、特殊矩阵:zeros,ones,eye,rand.randn,magic(n),vander(n),hilb(n)7、算术运算包括基本算数运算、点运算和关系运算符。
MATLAB程序设计实验5 数据分析和多项式计算
班级:电信1105
姓名:
学号:*********
一.实验目的
1.掌握数据统计和分析的方法。
2.掌握数值插值与曲线拟合的方法和应用。
3.掌握快速傅立叶变换的应用方法。
4.掌握多项式的常用运算
二.实验内容
1.利用randn函数生成符合正态分布的10x5随机矩阵,进行以下操作:
a)矩阵中各列元素的均值和标准方差。
b)矩阵的最大元素和最小元素。
c)求矩阵每行元素的和以及全部元素之和。
d)分别对矩阵的每列元素按照升序、每列元素按照降序排列。
X=randn(10,5);
%a
X_mean=mean(X)%求随机矩阵X各列的平均值
X_std=std(X,0,1)%求随机矩阵X各列的标准方差
%b
X_max=max(X)%求每列最大值
X_min=min(X)%求每列最小值
%c
X_sum=sum(X,2)%按行求和
X_sumall=sum(sum(X))%全部值求和
%d
X_sort=sort(X)%按列升序
X_sort1=sort(X,2,'descend')%按行降序
2.
a)对表1使用3次样条插值计算0~90度内整数点的正弦值,0~75度内整数点的正
切值。
b)对表1使用5次多项式拟合方法计算0~90度内整数点的正弦值,0~75度内整数
点的正切值。
c)对a)和b)的相应计算结果进行比较,绘出两种方法的误差曲线。
表1
%a 3次样条插值
disp('3次样条插值')
x1=0:0.1:pi/2;
y1=sin(x1);
y1_0=interp1(x1,y1,0,'spline')
y1_15=interp1(x1,y1,pi/12,'spline')
y1_30=interp1(x1,y1,pi/6,'spline')
y1_45=interp1(x1,y1,pi/4,'spline')
y1_60=interp1(x1,y1,pi/3,'spline')
y1_75=interp1(x1,y1,5*pi/12,'spline')
y1_90=interp1(x1,y1,pi/2,'spline')
y2=tan(x1);
y2_0=interp1(x1,y2,0,'spline')
y2_15=interp1(x1,y2,pi/12,'spline')
y2_30=interp1(x1,y2,pi/6,'spline')
y2_45=interp1(x1,y2,pi/4,'spline')
y2_60=interp1(x1,y2,pi/3,'spline')
y2_75=interp1(x1,y2,5*pi/12,'spline')
%b 5次多项式拟合
disp('5次多项式拟合')
x2=0:pi/12:pi/2;
y=[0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000]; y1=polyfit(x2,y,5)
x3=0:pi/12:5*pi/12;
ya=[0 0.2679 0.5774 1.0000 1.7320 3.7320];
y2=polyfit(x3,ya,5)
%c 误差曲线
a_sin=[y1_0 y1_15 y1_30 y1_45 y1_60 y1_75 y1_90]-y a_tan=[y2_0 y2_15 y2_30 y2_45 y2_60 y2_75]-ya; subplot(2,1,1);
plot(x2,a_sin,'-*');
title('a_sin');
axis([0,pi/2,-0.39* 1.0e-004,0.28* 1.0e-004]); subplot(2,1,2);
plot(x3,a_tan,'-o');
title('a_tan');
axis([0,5*pi/12,-0.026,0.003]);
xc=0:0.1:pi/2;
yc_sin=polyval(y1,xc)-sin(xc);
xc1=0:0.1:5*pi/12;
yc_tan=polyval(y2,xc1)-tan(xc1);
subplot(2,1,1);
plot(xc,yc_sin,'-*');
title('yc_sin');
axis([0,pi/2,-0.33* 1.0e-004,0.04* 1.0e-004]); subplot(2,1,2); plot(xc1,yc_tan,'-o'); title('yc_tan');
axis([0,5*pi/12,-0.01,0.062]);
3. 已知(),0t
h t e t -=≥,取点数N=64,对t 从0~5秒进行采样,用FFT 做快速傅立叶
变换,并绘制相应的振幅-频率图。
N=64; T=5;
t=linspace(0,T,N); x=exp(-t); dt=t(2)-t(1); f=1/dt; X=fft(x); F=X(1:N/2+1); f=f*(0:N/2)/N; plot(f,abs(F),'-*') xlabel('Frequency');
ylabel('|F(k)|')
4. 有两个多项式()4
3
23513P x x x x =-++,()2
58Q x x x =++,求()P x 、
()()P x Q x 、()()/P x Q x 的导数。
disp('p(x)的导数系数为:') p=[2 -3 0 5 13]; yp=polyder(p)
disp('p(x)q(x)的导数系数为:') q=[1 5 8]; pq=polyder(p,q)
disp('p(x)/q(x)的导数求解') [a,b]=polyder(p,q)
5. 有三个多项式()4321245p x x x x =+++,()22p x x =+,()2323p x x x =++,求
()()()()123p x p x p x p x =+以及()0p x =的根。
p1=[1 2 4 0 5]; p2=[1 2]; p3=[0 1 2 3]; p4=conv(p2,p3); p=p1+p4 x=roots(p)
三.实验感想
通过本次试验,使我进一步的了解了matlab 在数据分析和多项式计算中的强大优越点,
非常好用,而且使我更有兴趣继续学习matlab 这门课程。