MATLAB 程序范例

合集下载

ekf标准matlab代码

ekf标准matlab代码

ekf标准matlab代码以下是一个简单的EKF(Extended Kalman Filter)标准Matlab代码示例:matlab.% 初始化状态向量和协方差矩阵。

x = [0; 0]; % 初始状态向量 [位置; 速度]P = eye(2); % 初始协方差矩阵。

% 系统参数。

dt = 0.1; % 时间步长。

A = [1 dt; 0 1]; % 状态转移矩阵。

H = [1 0]; % 观测矩阵。

Q = [0.1 0; 0 0.1]; % 系统噪声协方差矩阵。

R = 1; % 观测噪声方差。

% 模拟观测数据。

t = 0:dt:10;N = length(t);true_pos = sin(t); % 真实位置。

measured_pos = true_pos + sqrt(R) randn(size(t)); % 加入观测噪声的测量位置。

% 执行EKF算法。

filtered_pos = zeros(size(t)); % 保存滤波后的位置。

for k = 1:N.% 预测步骤。

x = A x;P = A P A' + Q;% 更新步骤。

K = P H' / (H P H' + R);x = x + K (measured_pos(k) H x); P = (eye(2) K H) P;% 保存滤波结果。

filtered_pos(k) = x(1);end.% 绘制结果。

figure;plot(t, true_pos, 'b', t, measured_pos, 'r.', t, filtered_pos, 'g');legend('真实位置', '测量位置', '滤波位置');xlabel('时间');ylabel('位置');这段代码实现了一个简单的一维位置估计问题的EKF算法。

matlab中lof算法案列

matlab中lof算法案列

matlab中lof算法案列在MATLAB中,LOF(局部离群因子)算法是用于检测数据集中的离群点的一种常用方法。

下面我将给出一个简单的MATLAB示例来演示如何使用LOF算法。

首先,让我们假设我们有一个包含二维数据点的数据集。

我们可以使用以下代码生成一个示例数据集:matlab.rng(1); % 设置随机数种子以确保结果的可重复性。

X = [randn(100,2)0.4+2; randn(100,2)0.4-2]; % 生成具有两个簇的示例数据。

scatter(X(:,1),X(:,2)); % 绘制数据集的散点图。

接下来,我们可以使用MATLAB中的`fitcknn`函数来计算每个数据点的局部离群因子(LOF)值。

以下是一个示例代码:matlab.k = 5; % 设置k值(邻居的数量)。

mdl = fitcknn(X,X,'NumNeighbors',k); % 使用KNN模型拟合数据集。

[~,D] = knnsearch(mdl,X,'K',k+1); % 计算每个数据点到其k个最近邻居的距离。

D = D(:,2:end); % 去除每个点到其自身的距离。

LRD = 1./(mean(D,2)+eps); % 计算局部可达密度(LRD)。

[N,~] = size(X);LOF = zeros(N,1);for i = 1:N.kdist = D(i, :);idx = knnsearch(X,X(i,:),'K',k);lrd_ratio = LRD(idx)./LRD(i);LOF(i) = mean(lrd_ratio)./mean(kdist);end.在上面的代码中,我们首先使用`fitcknn`函数拟合数据集,然后计算每个数据点到其k个最近邻居的距离,并利用这些距离计算局部可达密度(LRD)。

最后,我们计算每个数据点的局部离群因子(LOF)值。

(整理)matlab实例教程-比较实用.

(整理)matlab实例教程-比较实用.

实验一特殊函数与图形一、问题背景与实验目的二、相关函数(命令)及简介三、实验内容四、自己动手一、问题背景与实验目的著名的Riemann函数大家都很熟悉了,但是关于它的图像你是否清楚呢除了最上面那几点,其他都很难画吧你想不想看看下面那些“挤在一起”的点是怎样分布的呢还有几何中的马鞍面、单叶双曲面等是怎样由直线生成的,是不是也想目睹一下呢这些,都离不开绘图.实际上绘图一直是数学中的一种重要手段,借助图形,往往可以化繁为简,使抽象的对象得到明白直观的体现.比如函数的基本性质,一个图形常可以使之一目了然,非常有效.它虽不能代替严格的分析与证明,但在问题的研究过程中,可以帮助研究人员节约相当一部分精力.此外,它还可以使计算、证明、建模等的结果得到更明白易懂的表现,有时,这比科学论证更有说服力.同时,数学的教学与学习过程也离不开绘图.借助直观的图形,常可以使初学者更容易接受新知识.如数学分析中有不少函数,其解析式着实让人望而生畏,即使对其性质作了详尽的分析,还是感到难明就里;但如果能看到它的图形,再配合理论分析,则问题可以迎刃而解.又如在几何的学习中,会遇到大量的曲线与曲面,也离不开图形的配合.传统的手工作图,往往费力耗时,效果也不尽理想.计算机恰恰弥补了这个不足,使你可以方便地指定各种视角、比例、明暗,从各个角度进行观察.本实验通过对函数的图形表示和几个曲面(线)图形的介绍,一方面展示它们的特点,另一方面,也将就Matlab软件的作图功能作一个简单介绍.大家将会看到,Matlab 的作图功能非常强大.二、相关函数(命令)及简介1.平面作图函数:plot,其基本调用形式:plot(x,y,s)以x作为横坐标,y作为纵坐标.s是图形显示属性的设置选项.例如:x=-pi:pi/10:pi;y=sin(x);plot(x,y,'--rh','linewidth',2,'markeredgecolor','b','markerfacecolor','g')图1在使用函数plot时,应当注意到当两个输入量同为向量时,向量x与y必须维数相同,而且必须同是行向量或者同是列向量.绘图时,可以制定标记的颜色和大小,也可以用图形属性制定其他线条特征,这些属性包括:linewidth 指定线条的粗细.markeredgecolor 指定标记的边缘色markerfacecolor 指定标记表面的颜色.markersize 指定标记的大小.若在一个坐标系中画几个函数,则plot的调用格式如下:plot(x1,y1,s1,x2,y2,s2,……)2.空间曲线作图函数:plot3,它与plot相比,只是多了一个维数而已.其调用格式如下:plot3(x,y,z,s).例如:x=0:pi/30:20*pi;y=sin(x);z=cos(x);plot3(x,y,z)得到三维螺旋线:图23.空间曲面作图函数:(1)mesh函数.绘制彩色网格面图形.调用格式:mesh(z),mesh(x,y,z)和mesh(x,y,z,c).其中,mesh(x,y,z,c)画出颜色由c指定的三维网格图.若x、y均为向量,则length(x)=n,length(y)=m,[m,n]=size(z).(2)surf在矩形区域内显示三维带阴影曲面图.调用格式与mesh类似.(3)ezmesh用符号函数作三维曲面网格图.调用格式:ezmesh(x,y,z)其中x = x(s,t), y = y(s,t),z = z(s,t).画图区域默认为: -2*pi < s < 2*pi 且-2*pi < t < 2*pi.或者用格式:ezmesh(x,y,z,[smin,smax,tmin,tmax])(4)ezsurf用符号函数作三维曲面图.调用格式与ezmesh类似.(5)sphere画球体命令.4.meshgrid,调用格式:[x,y]=meshgrid(m,n),这里的m,n为给定的向量,可以定义网格划分区域和划分方法.矩阵x和矩阵y是网格划分后的数据矩阵.5.图像的修饰与其他函数:(1)axis equal 控制各个坐标轴的分度,使其相等;(2)colormap设置绘图颜色.调用格式:colormap([r g b])其中r,g,b都是0-1之间的数.或者用格式:colormap(s)s颜色映像相应的颜色系颜色映像相应的颜色系autumn红黄色系hsv色调饱和色系gray线性灰色系hot黑红黄白色系cool青和洋红色系pink柔和色系(3(4)find找出符合条件的元素在数组中的位置.调用格式:y=find(条件)例如:输入:a=[4 5 78 121 4 665 225 4 1];b=find(a>7)输出: b =3 4 6 7三、实验内容数学分析中,特别是积分部分,我们接触了不少有趣的函数,由于其中有的不是一一对应的,用上面的方法无法画出它们的图像,这时就只能用参数了.此外还有些图形只能用参数来画,比如空间曲线,在计算机上不接受“两个曲面的交线”这种表示,所以也只能用参数来实现.用参数方式作图的关键在于找出合适的参数表示,尤其是不能有奇点,最好也不要用到开方.所以要找的参数最好是有几何意义的.当然这也不可一概而论,需要多积累经验.1.利用函数plot在一个坐标系中画以下几个函数图像,要求采用不同颜色、不同线形、不同的符号标记.函数为:.程序如下:t=0:pi/20:2*pi;x=sin(t);y=cos(t);z=sin(2*t);plot(t, x, '--k*', t, y, '-rs', t, z, ':bo')图像如下:图32.绘制类似田螺线的一条三维螺线(方程自己设计).程序如下:t=0:.1:30;x=2*(cos(t)+t.*sin(t));y=2*(sin(t)-t.*cos(t));z=*t;plot3(x,y,-z) %取–z 主要是为了画图看起来更清楚axis equal图像如下:图43.利用函数,绘制一个墨西哥帽子的图形.程序如下:[a,b]=meshgrid(-8:.5:8); %先生成一个网格c=sqrt(a.^2+b.^2)+eps;z=sin(c)./c;mesh(a,b,z)axis square图像如下:图5思考:这里的 eps 是什么其作用是什么4.利用surf绘制马鞍面图形(函数为:).程序如下:[x,y]=meshgrid(-25:1:25,-25:1:25);z=x.^2/9-y.^2/4;surf(x,y,z)title('马鞍面')grid off图像如下:图65.分别用ezmesh和ezsurf各绘制一个圆环面,尝试将两个圆环面放在一个图形界面内,观察它们有什么不同之处.提示:圆环面的方程为:,而圆环面的参数方程为:程序参见附录1.图像如下:图76.绘制黎曼函数图形,加深对黎曼函数的理解.说明:黎曼函数的定义为程序参见附录2.图像如下:图8四、自己动手1.作出下图所示的三维图形:图9提示:图形为圆环面和球面的组合.2.作出下图所示的墨西哥帽子及其剪裁图形:图103.画出球面、椭球面、双叶双曲面、单叶双曲面.4.若要求田螺线的一条轴截面的曲边是一条抛物线:时.试重新设计田螺线的参数方程,并画出该田螺线.5.作出下图所示的马鞍面(颜色为灰色,并有一个标题:“马鞍面”):图116.绘制图8所示的黎曼函数图形,要求分母的最大值的数值由键盘输入(提示:使用input语句).回目录下一页实验二定积分的近似计算一、问题背景与实验目的二、相关函数(命令)及简介三、实验内容1.矩形法2.梯形法3.抛物线法4. 直接应用Matlab命令计算结果四、自己动手一、问题背景与实验目的利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用.二、相关函数(命令)及简介1.sum(a):求数组a的和.2.format long:长格式,即屏幕显示15位有效数字.(注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值.4.quad():抛物线法求数值积分.格式: quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即 .*、./、.^等.例:Q = quad('1./(x.^3-2*x-5)',0,2);5.trapz():梯形法求数值积分.格式:trapz(x,y)其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun)例:计算x=0:pi/100:pi;y=sin(x);trapz(x,y)6.dblquad():抛物线法求二重数值积分.格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递.例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法.Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi)这时必须存在一个函数文件:function z = integrnd(x, y)z = y*sin(x);7.fprintf(文件地址,格式,写入的变量):把数据写入指定文件.例:x = 0:.1:1;y = [x; exp(x)];fid = fopen('','w'); %打开文件fprintf(fid,'% %\n',y); %写入fclose(fid) %关闭文件8.syms 变量1 变量2 …:定义变量为符号.9.sym('表达式'):将表达式定义为符号.解释:Matlab中的符号运算事实上是借用了Maple的软件包,所以当在Matlab中要对符号进行运算时,必须先把要用到的变量定义为符号.10.int(f,v,a,b):求f关于v积分,积分区间由a到b.11.subs(f,'x',a):将 a 的值赋给符号表达式 f 中的 x,并计算出值.若简单地使用subs(f),则将f的所有符号变量用可能的数值代入,并计算出值.三、实验内容1.矩形法根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.针对不同的取法,计算结果会有不同,我们以为例(取),(1)左点法:对等分区间,在区间上取左端点,即取,,理论值,此时计算的相对误差(2)右点法:同(1)中划分区间,在区间上取右端点,即取,,理论值,此时计算的相对误差(3)中点法:同(1)中划分区间,在区间上取中点,即取,,理论值,此时计算的相对误差如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式.下面介绍的梯形法和抛物线法就是这一指导思想的产物.2.梯形法等分区间,相应函数值为().曲线上相应的点为()将曲线的每一段弧用过点,的弦(线性函数)来代替,这使得每个上的曲边梯形成为真正的梯形,其面积为,.于是各个小梯形面积之和就是曲边梯形面积的近似值,,即,称此式为梯形公式.仍用的近似计算为例,取,,理论值,此时计算的相对误差很显然,这个误差要比简单的矩形左点法和右点法的计算误差小得多.3.抛物线法由梯形法求近似值,当为凹曲线时,它就偏小;当为凸曲线时,它就偏大.若每段改用与它凸性相接近的抛物线来近似时,就可减少上述缺点,这就是抛物线法.将积分区间作等分,分点依次为,,对应函数值为(),曲线上相应点为().现把区间上的曲线段用通过三点,,的抛物线来近似代替,然后求函数从到的定积分:由于,代入上式整理后得同样也有……将这个积分相加即得原来所要计算的定积分的近似值:,即这就是抛物线法公式,也称为辛卜生(Simpson)公式.仍用的近似计算为例,取,=,理论值,此时计算的相对误差4. 直接应用Matlab命令计算结果(1)数值计算方法1:int('1/(1+x^2)','x',0,1) (符号求积分)方法2:quad('1./(1+x.^2)',0,1) (抛物线法求数值积分)方法3:x=0::1;y=1./(1+x.^2);trapz(x,y) (梯形法求数值积分)(2)数值计算方法1:int(int('x+y^2','y',-1,1),'x',0,2) (符号求积分)方法2:dblquad(inline('x+y^2'),0,2,-1,1) (抛物线法二重数值积分)四、自己动手1.实现实验内容中的例子,即分别采用矩形法、梯形法、抛物线法计算,取,并比较三种方法的精确程度.2.分别用梯形法与抛物线法,计算,取.并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异.3.试计算定积分.(注意:可以运用trapz()、quad()或附录程序求解吗为什么)4.将的近似计算结果与Matlab中各命令的计算结果相比较,试猜测Matlab中的数值积分命令最可能采用了哪一种近似计算方法并找出其他例子支持你的观点.5.通过整个实验内容及练习,你能否作出一些理论上的小结,即针对什么类型的函数(具有某种单调特性或凹凸特性),用某种近似计算方法所得结果更接近于实际值6.学习的程序设计方法,尝试用函数 sum 改写附录1和附录3的程序,避免for 循环.上一页回目录下一页实验三求代数方程的近似根(解)一、问题背景和实验目的二、相关函数(命令)及简介三、实验内容四、自己动手一、问题背景和实验目的求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称为线性方程,否则称之为非线性方程.当是非线性方程时,由于的多样性,尚无一般的解析解法可使用,但如果对任意的精度要求,能求出方程的近似根,则可以认为求根的计算问题已经解决,至少能满足实际要求.本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间,或给出某根的近似值.在实际问题抽象出的数学模型中,可以根据物理背景确定;也可根据的草图等方法确定,还可用对分法、迭代法以及牛顿切线法大致确定根的分布情况.通过本实验希望你能:1. 了解对分法、迭代法、牛顿切线法求方程近似根的基本过程;2. 求代数方程(组)的解.二、相关函数(命令)及简介1.abs( ):求绝对值函数.2.diff(f):对独立变量求微分,f 为符号表达式.diff(f, 'a'):对变量a求微分,f 为符号表达式.diff(f, 'a', n):对变量 a 求 n 次微分,f 为符号表达式.例如:syms x tdiff(sin(x^2)*t^6, 't', 6)ans=720*sin(x^2)3.roots([c(1), c(2), …, c(n+1)]):求解多项式的所有根.例如:求解:.p = [1 -6 -72 -27];r = roots(p)r =4.solve('表达式'):求表达式的解.solve('2*sin(x)=1')ans =1/6*pi5.linsolve(A, b):求线性方程组 A*x=b 的解.例如:A= [9 0; -1 8]; b=[1; 2];linsolve(A, b)ans=[ 1/9][19/72]6.fzero(fun, x0):在x0附近求fun 的解.其中fun为一个定义的函数,用“@函数名”方式进行调用.例如:fzero(@sin, 3)ans=7.subs(f, 'x ', a):将 a 的值赋给符号表达式 f 中的 x,并计算出值.例如:subs('x^2 ', 'x ', 2)ans = 4三、实验内容首先,我们介绍几种与求根有关的方法:1.对分法对分法思想:将区域不断对分,判断根在某个分段内,再对该段对分,依此类推,直到满足精度为止.对分法适用于求有根区间内的单实根或奇重实根.设在上连续,,即,或,.则根据连续函数的介值定理,在内至少存在一点,使.下面的方法可以求出该根:(1)令,计算;(2)若,则是的根,停止计算,输出结果.若,则令,,若,则令,;.……,有、以及相应的.(3) 若 (为预先给定的精度要求),退出计算,输出结果;反之,返回(1),重复(1),(2),(3).以上方法可得到每次缩小一半的区间序列,在中含有方程的根.当区间长很小时,取其中点为根的近似值,显然有以上公式可用于估计对分次数.分析以上过程不难知道,对分法的收敛速度与公比为的等比级数相同.由于,可知大约对分10次,近似根的精度可提高三位小数.对分法的收敛速度较慢,它常用来试探实根的分布区间,或求根的近似值.2. 迭代法1)迭代法的基本思想:由方程构造一个等价方程从某个近似根出发,令,可得序列,这种方法称为迭代法.若收敛,即,只要连续,有即可知,的极限是的根,也就是的根.当然,若发散,迭代法就失败.以下给出迭代过程收敛的一些判别方法:定义:如果根的某个邻域中,使对任意的,迭代过程,收敛,则称迭代过程在附近局部收敛.定理1:设,在的某个邻域内连续,并且,,则对任何,由迭代决定的序列收敛于.定理2:条件同定理 1,则定理3:已知方程,且(1) 对任意的,有.(2) 对任意的,有,则对任意的,迭代生成的序列收敛于的根,且.以上给出的收敛定理中的条件要严格验证都较困难,实用时常用以下不严格的标准:当根区间较小,且对某一,明显小于1时,则迭代收敛(参见附录3).2) 迭代法的加速:a) 松弛法:若与同是的近似值,则是两个近似值的加权平均,其中称为权重,现通过确定看能否得到加速.迭代方程是:其中,令,试确定:当时,有,即当,时,可望获得较好的加速效果,于是有松弛法:,松弛法的加速效果是明显的 (见附录4),甚至不收敛的迭代函数经加速后也能获得收敛.b) Altken方法:松弛法要先计算,在使用中有时不方便,为此发展出以下的 Altken 公式:,是它的根,是其近似根.设,,因为,用差商近似代替,有,解出,得由此得出公式;;,这就是Altken 公式,它的加速效果也是十分明显的,它同样可使不收敛的迭代格式获得收敛(见附录5).3. 牛顿(Newton)法(牛顿切线法)1) 牛顿法的基本思想:是非线性方程,一般较难解决,多采用线性化方法.记:是一次多项式,用作为的近似方程.的解为记为,一般地,记即为牛顿法公式.2) 牛顿法的收敛速度:对牛顿法,迭代形式为:注意分子上的,所以当时,,牛顿法至少是二阶收敛的,而在重根附近,牛顿法是线性收敛的.牛顿法的缺点是:(1)对重根收敛很慢;(2)对初值要求较严,要求相当接近真值.因此,常用其他方法确定初值,再用牛顿法提高精度.4. 求方程根(解)的其它方法(1) solve('x^3-3*x+1=0')(2) roots([1 0 -3 1])(3) fzero('x^3-3*x+1', -2)(4) fzero('x^3-3*x+1',(5) fzero('x^3-3*x+1',(6) linsolve([1, 2, 3; 4, 5, 6; 7, 8, 0], [1, 2, 3]')体会一下,(2)(5) 用了上述 1 3 中的哪一种方法以下是本实验中的几个具体的实验,详细的程序清单参见附录.具体实验1:对分法先作图观察方程:的实根的分布区间,再利用对分法在这些区间上分别求出根的近似值.输入以下命令,可得的图象:f='x^3-3*x+1';g='0';ezplot(f, [-4, 4]);hold on;ezplot(g, [-4, 4]); %目的是画出直线 y=0,即 x 轴grid on;axis([-4 4 -5 5]);hold off请填写下表:实根的分布区间该区间上根的近似值在某区间上求根的近似值的对分法程序参见附录1.具体实验2:普通迭代法采用迭代过程:求方程在附近的根,精确到第 4 位小数.构造等价方程:用迭代公式:,用 Matlab 编写的程序参见附录2.请利用上述程序填写下表:分析:将附录2第4行中的分别改为以及,问运行的结果是什么你能分析得到其中的原因吗看看下面的“具体实验3”是想向你表达一个什么意思.用 Matlab 编写的程序参见附录3.具体实验3:收敛/发散判断设方程的三个根近似地取,和,这些近似值可以用上面的对分法求得.迭代形式一:收敛 (很可能收敛,下同)不收敛 (很可能不收敛,下同)不收敛迭代形式二:收敛不收敛不收敛迭代形式三:不收敛收敛收敛具体实验4:迭代法的加速1——松弛迭代法,,迭代公式为程序参见附录4.具体实验5:迭代法的加速2——Altken迭代法迭代公式为:,,程序参见附录5.具体实验6:牛顿法用牛顿法计算方程在-2到2之间的三个根.提示:,迭代公式:程序参见附录6 (牛顿法程序).具体实验7:其他方法求下列代数方程(组)的解:(1)命令:solve('x^5-x+1=0')(2)命令:[x, y]=solve('2*x+3*y=0', '4*x^2+3*y=1')(3) 求线性方程组的解,已知,命令:for i=1:5for j=1:5m(i, j)=i+j-1;endendm(5, 5)=0;b=[1:5]'linsolve(m, b)思考:若,或是类似的但阶数更大的稀疏方阵,则应如何得到四、自己动手1.对分法可以用来求偶重根附近的近似解吗为什么2.对照具体实验2、4、5,你可以得出什么结论3.选择适当的迭代过程,分别使用:(1)普通迭代法;(2)与之相应的松弛迭代法和 Altken 迭代法.求解方程在附近的根,精确到4位小数,请注意迭代次数的变化.4.分别用对分法、普通迭代法、松弛迭代法、Altken 迭代法、牛顿切法线等5种方法,求方程的正的近似根,.(建议取.时间许可的话,可进一步考虑的情况.)上一页回目录下一页。

matlab练习程序(傅里叶拟合)

matlab练习程序(傅里叶拟合)

matlab练习程序(傅⾥叶拟合)对于⼀组数据,通常可以⽤多项式来拟合,当然对于有周期规律的数据,我们也可以⽤傅⾥叶级数来拟合。

傅⾥叶级数公式形式如下:当我们确定好n之后,关键就是求出A0、an、bn和w即可。

由于有待求系数在⾮线性函数cos和sin中,我们⽤⾮线性最优化⽅法来求解。

matlab代码如下:clear all;close all;clc;n=7; %傅⾥叶级数的阶数x = (0:0.1:5)';y = x - x.^2+ 10*cos(2*x).*sin(x)+5*cos(2*x); %构造⼀个模型% y = [zeros(25,1);ones(26,1)]; %试试阶跃plot(x,y,'ro')epsilon = 1e-6;epsilon_inv = 1/epsilon;pre=rand(2*n+2,1);for i=1:500 %⾮线性迭代优化f0 = func(pre,x,n);g = y - f0;%数值计算雅克⽐for k = 1:length(pre)x_ = pre;x_(k) = pre(k) + epsilon;jac(:, k) = (func(x_,x,n) - f0) .* epsilon_inv;endJ = jac;delta = inv(J'*J + eye(2*n+2))*J'* g;pcur = pre+delta;if norm(delta) <1e-16break;endpre = pcur;endhold on;x=0:0.01:5;plot(x,func(pre,x,n),'g.');legend('待拟合数据','傅⾥叶拟合结果')function y=func(a,x,n) %傅⾥叶级数函数y=a(1);for i=1:ny= y + a(i*2)*cos(i*x*a(end)) + a(i*2+1)*sin(i*x*a(end));endend结果如下:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~感兴趣的朋友还可以和多项式拟合⽐较⼀下,下⾯是和6阶做的对⽐,代码我就不贴了,明显傅⾥叶拟合效果更好些(当然,如果多项式堆阶数效果应该也还可以)。

matlab编程经典例题

matlab编程经典例题

例3-3 求一元二次方程ax2 +bx+c=0的根。 程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
(2) 双分支if语句: if 条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语 句组2,语句组1或语句组2执行后,再执行 if语句的后继语句。
例3-4 计算分段函数的值。 程序如下: x=input('请输入x的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end Y
(3) 多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end 语句用于实现多分支选择结构。
例3-5 输入一个字符,若为大写字母,则输出其 对应的小写字母;若为小写字母,则输出其对应 的大写字母;若为数字字符则输出其对应的数值, 若为其他字符则原样输出。 c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+abs('a')-abs('A'))); elseif c>='a'& c<='z' disp(setstr(abs(c)- abs('a')+abs('A'))); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end

matlab调用lsdyna进行反演的程序

matlab调用lsdyna进行反演的程序

调用LS-DYNA进行反演的程序通常包括以下步骤:1. 准备输入文件:编写LS-DYNA输入文件,包括模型描述、材料属性、边界条件、载荷等。

2. 运行LS-DYNA:使用LS-DYNA求解器进行模拟计算。

3. 读取输出文件:读取LS-DYNA输出文件,包括节点位移、应力、应变等信息。

4. 进行反演计算:根据模拟结果和实际观测数据进行反演计算,求解模型参数。

5. 验证模型:使用验证模型的方法来检验模型的准确性和可靠性。

以下是一个示例程序,用于调用LS-DYNA进行反演:```matlab准备输入文件lsdyna_input = 'model.input';material_properties = [1.0 0.5 0.25]; 材料属性,例如密度、弹性模量和泊松比boundary_conditions = [0 0 0 0 0 0]; 边界条件,例如位移约束loads = [1000 0 0]; 载荷,例如集中力write_input_file(lsdyna_input, material_properties, boundary_conditions, loads);运行LS-DYNAlsdyna_output = run_lsdyna(lsdyna_input);读取输出文件node_id = 1; 节点编号displacement = read_output_file(lsdyna_output, node_id, 'disp'); 节点位移force = read_output_file(lsdyna_output, node_id, 'force'); 节点力进行反演计算actual_displacement = [0.1 0.2 0.3]; 实际观测位移inversion_result = inverse_analysis(displacement, force, actual_displacement); 反演计算结果验证模型validation_result = validate_model(inversion_result); 验证模型结果```在上述示例程序中,`write_input_file`函数用于编写LS-DYNA输入文件,`run_lsdyna`函数用于运行LS-DYNA求解器,`read_output_file`函数用于读取输出文件中的节点位移和力信息,`inverse_analysis`函数用于进行反演计算,`validate_model`函数用于验证模型。

matlab三次样条曲线拟合代码

在MATLAB中,你可以使用`polyfit` 和`polyval` 函数来进行三次样条曲线拟合。

以下是一个简单的样例代码:
```matlab
样本数据
x = [1, 2, 3, 4, 5]; x 数据
y = [1, 4, 9, 16, 25]; y 数据
计算差分,得到差分数据
dx = diff(x);
dy = diff(y);
拟合样条曲线,得到系数
p = polyfit(x(1:end-1), y(1:end-1), 3);
计算三次样条曲线
xx = x(1:end-1);
yy = polyval(p, xx);
画图
figure;
plot(x, y, 'o', xx, yy, '-');
legend('原始数据', '三次样条曲线');
xlabel('x');
ylabel('y');
```
在这个例子中,我们首先定义了一组x 和y 数据。

然后,我们计算了差分,得到了连续的x 和y 值。

使用`polyfit` 函数,我们得到了描述三次样条曲线的系数。

使用这些系数和`polyval` 函数,我们可以在任何x 值上计算出对应的y 值。

最后,我们画出了原始数据和三次样条曲线。

注意,这个例子假设你的数据是等间隔的。

如果你的数据不是等间隔的,你可能需要更复杂的方法来计算差分和拟合样条曲线。

Matlab 具体操作实例

y1 y Y 2 yn f y1 f y2 f Y f yn
输入为列数组,则 输出也为列数组
,
10、一维数组的转置运算
x.’ x做转置(行→列,列→行)即xT † x’ x做共轭转置 即x
length(x) numel(x)
返回x中的元素按升序排序的向量 返回数组的长度(行数或列数种的较大 值)
返回数组元素的个数
四、一维数组与二维绘图
1、plot(a,b,string)
a, b 都是一维数组,以 a 中元素为横坐标, b 中元素 为纵坐标作平面曲线。 a, b 必须具有相同长度。string 是用 单引号 括起来的字符串,用来指定图形的属性(点、线的形 状和颜色) 属性可以全部指定,也 可以只指定其中某几个。 x=[0:0.2:2*pi]; 排列顺序任意
b = x(end:-1:1)
c = x(1:2:end) d = x(2:2:end)
x = linspace(1,5) x([1,4]) = [2,7]
x = linspace(1,5) s = [1,4] a = [2,7] x(s) = a
将2、7分别赋值给x的第1、4个元素
2、内存变量查阅、删除的指令
• who • whos • clear 查阅matlab内存变量的简单信息 查阅matlab内存变量的详细信息
清除matlab工作空间中保存的所有变量
• clear a 清除变量a • clear x y 清除变量x和y(x和y之间不能用逗号) • clear all 清除matlab工作空间中所有的变量、函数和mex文件
3、脚本文件中的注释语句
% 以一个%开头的行是注释行,不被解释和执行

matlab数学建模pdf

matlab数学建模pdfMATLAB是一种高级编程语言和交互式环境,主要用于数值计算、数据分析和可视化。

它在数学建模方面具有广泛的应用,因为它提供了一个方便的编程环境,支持矩阵和数组操作、函数和方程求解、数据分析和可视化等功能。

以下是一些使用MATLAB进行数学建模的示例:1.线性回归模型:MATLAB提供了一个名为`fitlm`的函数,用于拟合线性回归模型。

以下是一个简单的示例:```matlab%创建自变量和因变量数据x=[1,2,3,4,5];y=[2.2,2.8,3.6,4.5,5.1];%拟合线性回归模型lm=fitlm(x,y);%显示模型摘要summary(lm)```2.非线性最小二乘法拟合:MATLAB提供了一个名为`fitnlm`的函数,用于拟合非线性最小二乘法模型。

以下是一个简单的示例:```matlab%创建自变量和因变量数据x=[1,2,3,4,5];y=[1.2,2.5,3.7,4.6,5.3];%定义非线性模型函数modelfun=@(params,xdata) params(1)*exp(-params(2)*xdata)+params(3); %拟合非线性最小二乘法模型startPoint=[1,1,1];%初始参数值options=optimset('Display','off');%不显示优化过程信息lm=fitnlm(x,y,modelfun,startPoint,options); %显示模型摘要summary(lm)```3.微分方程求解:MATLAB提供了一个名为`ode45`的函数,用于求解常微分方程。

以下是一个简单的示例:```matlab%定义微分方程dy/dx=f(x,y)f=@(x,y)-0.5*y;%初始条件和时间跨度y0=1;tspan=[0,10];%使用ode45进行求解[t,y]=ode45(f,tspan,y0);%可视化结果plot(t,y(:,1))%y是解的矩阵,(:,1)表示取第一列数据作为纵坐标进行绘图xlabel('Time(s)')ylabel('Solution')```。

matlab sde 使用范例

matlab sde 使用范例Matlab是一种强大的数值计算和数据可视化工具,它提供了各种不同的工具箱和函数,可以用于解决各种数学和科学问题。

其中,Stochastic Differential Equations(SDE,随机微分方程)是一类在金融学、物理学和其他领域中广泛使用的数学模型。

在本文中,我们将使用Matlab来演示如何使用SDE工具箱来解决和模拟SDE问题。

在Matlab中使用SDE工具箱,首先需要安装并加载该工具箱。

安装SDE工具箱非常简单,只需在Matlab命令窗口中输入以下命令即可:```matlabinstallSDE```加载SDE工具箱的命令为:```matlabaddpath('path_to_sde_toolbox')```在加载完SDE工具箱之后,我们可以使用其中的函数来定义和解决SDE问题。

首先,我们需要定义随机微分方程的形式。

对于一个一维的SDE,可以使用以下形式来表示:```matlabdX = a(X,t)*dt + b(X,t)*dW```其中,X是随机过程,a(X,t)是漂移项,b(X,t)是扩散项,dW是一个随机增量。

在Matlab中,我们可以使用sde函数来定义SDE:```matlabSDE = sde(drift, diffusion)```在定义SDE之后,我们可以使用sdeEuler函数来求解SDE的数值解。

sdeEuler函数的基本语法如下:```matlab[X, T] = sdeEuler(SDE, X0, T)```其中,SDE是之前定义的SDE对象,X0是初始条件,T是时间区间。

sdeEuler函数将返回SDE的数值解X和对应的时间点T。

除了使用sdeEuler函数求解SDE的数值解之外,Matlab的SDE工具箱还提供了其他一些函数来进行SDE的模拟和分析。

例如,我们可以使用sdeplot函数来绘制SDE的模拟路径:```matlabsdeplot(SDE, X0, T)```我们还可以使用sdepaths函数来生成多条SDE的模拟路径:```matlabPaths = sdepaths(SDE, X0, T, N)```其中,N是路径的数量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一题x=-3:0.1:3; %x取-3到3y=1:0.1:5; %y取1到5[x,y]=meshgrid(x,y); %创建网格数据a=3.*(1-x).*exp(-x.^2-(y+1).^2);b=10.*(x./5-x.^3-y.^5).*exp(-x.^2-y.^2);c=(1./3).*exp(-(x+1).^2-y.^2);z=a-b-c; %输入函数式subplot(2,2,1);mesh(x,y,z); %画出立体网状图hidden off %显示被遮盖的网线axis tighttitle('图形的隐含部分表现出来')subplot(2,2,2)mesh(x,y,z)shading flattitle('带阴影的三维图形')z=peaks(x,y); %计算函数值subplot(2,2,3);meshc(x,y,z); %绘制带等高线的三维图形title('带等高线的三维图形')subplot(2,2,4)contour3(x,y,z,20); %绘制三维图形的等高线xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis')title(‘三维图形的等高线’)sum=0;for i=0:63,part=1;for j=1:i,part=2.^j;endfprintf('part(%d)=%d.\n',i,part); sum=sum+part;endsumsum=0;i=0;k=0;while i<63i=i+1;k=2.^i;sum=sum+kend>> part(0)=1.part(1)=2.part(2)=4.part(3)=8.part(4)=16.part(5)=32.part(6)=64.part(7)=128.part(8)=256.part(9)=512.part(10)=1024.part(11)=2048.part(12)=4096.part(13)=8192.part(14)=16384.part(15)=32768.part(16)=65536.part(17)=131072.part(18)=262144.part(19)=524288.part(20)=1048576.part(21)=2097152.part(22)=4194304.part(23)=8388608.part(24)=16777216.part(25)=33554432.part(26)=67108864.part(27)=134217728.part(28)=268435456.part(29)=536870912.part(30)=1073741824.part(34)=1.717987e+010. part(35)=3.435974e+010. part(36)=6.871948e+010. part(37)=1.374390e+011. part(38)=2.748779e+011. part(39)=5.497558e+011. part(40)=1.099512e+012. part(41)=2.199023e+012. part(42)=4.398047e+012. part(43)=8.796093e+012. part(44)=1.759219e+013. part(45)=3.518437e+013. part(46)=7.036874e+013. part(47)=1.407375e+014. part(48)=2.814750e+014. part(49)=5.629500e+014. part(50)=1.125900e+015. part(51)=2.251800e+015. part(52)=4.503600e+015. part(53)=9.007199e+015. part(54)=1.801440e+016. part(55)=3.602880e+016. part(56)=7.205759e+016. part(57)=1.441152e+017. part(58)=2.882304e+017. part(59)=5.764608e+017. part(60)=1.152922e+018. part(61)=2.305843e+018. part(62)=4.611686e+018. part(63)=9.223372e+018. sum =1.8447e+019sum =2sum =6sum =14sum =30sum =62sum =126sum =254sum =5102046 sum =4094 sum =8190 sum =16382 sum =32766 sum =65534 sum =131070 sum =262142 sum =524286 sum =1048574 sum =2097150 sum =4194302 sum =8388606 sum =16777214 sum =33554430 sum =67108862 sum =134217726 sum =268435454 sum =536870910 sum =1.0737e+009 sum =2.1475e+009 sum =4.2950e+009 sum =8.5899e+009 sum =1.7180e+010 sum =3.4360e+0105.4976e+011 sum =1.0995e+012 sum =2.1990e+012 sum =4.3980e+012 sum =8.7961e+012 sum =1.7592e+013 sum =3.5184e+013 sum =7.0369e+013 sum =1.4074e+014 sum =2.8147e+014 sum =5.6295e+014 sum =1.1259e+015 sum =2.2518e+015 sum =4.5036e+015 sum =9.0072e+015 sum =1.8014e+016 sum =3.6029e+016 sum =7.2058e+016 sum =1.4412e+017 sum =2.8823e+017 sum =5.7646e+017 sum =1.1529e+018 sum =2.3058e+018A=[4,12,20;12,45,78;20,78,136] %输入矩阵A入B=[1,2,3;4,5,6;7,8,9] %输入矩阵BI=eye(3) %输入单位矩阵IA+5*BA-B*IA.*B %矩阵A、B内元素对元素的相乘运算A*B %进行矩阵相乘运算A.^B %矩阵A、B中元素对元素进行指数运算A/B %矩阵A右除矩阵BA\B %矩阵A左除矩阵BA =4 12 2012 45 7820 78 136B =1 2 34 5 67 8 9I =1 0 00 1 00 0 1ans =9 22 3532 70 10855 118 181ans =3 10 178 40 7213 70 127ans =4 24 6048 225 468140 624 1224ans =192 228 264738 873 10081284 1518 1752ans =1.0e+019 *0.0000 0.0000 0.00000.0000 0.0000 0.00000.0000 0.0001 1.5917Warning: Matrix is singular to working precision.> In C:\Documents and Settings\Administrator\桌面\c.m at line 9Inf Inf InfWarning: Matrix is singular to working precision.> In C:\Documents and Settings\Administrator\桌面\c.m at line 10ans =Inf Inf InfInf Inf InfInf Inf Inf第四题t=-1:0.025:1 %对t的取值,步长为0.025x=sin(t.^-1) %输入函数plot(x,'-m')t =Columns 1 through 15-1.0000 -0.9750 -0.9500 -0.9250 -0.9000 -0.8750 -0.8500 -0.8250 -0.8000 -0.7750 -0.7500 -0.7250 -0.7000 -0.6750 -0.6500Columns 16 through 30-0.6250 -0.6000 -0.5750 -0.5500 -0.5250 -0.5000 -0.4750 -0.4500 -0.4250 -0.4000 -0.3750 -0.3500 -0.3250 -0.3000 -0.2750Columns 31 through 45-0.2500 -0.2250 -0.2000 -0.1750 -0.1500 -0.1250 -0.1000 -0.0750 -0.0500 -0.0250 0 0.0250 0.0500 0.0750 0.1000Columns 46 through 600.1250 0.1500 0.1750 0.2000 0.2250 0.2500 0.2750 0.3000 0.3250 0.3500 0.3750 0.4000 0.4250 0.4500 0.4750Columns 61 through 750.5000 0.5250 0.5500 0.5750 0.6000 0.6250 0.6500 0.6750 0.7000 0.7250 0.7500 0.7750 0.8000 0.8250 0.8500Columns 76 through 810.8750 0.9000 0.9250 0.9500 0.9750 1.0000x =Columns 1 through 15-0.8415 -0.8550 -0.8687 -0.8825 -0.8962 -0.9098 -0.9233 -0.9364 -0.9490 -0.9609 -0.9719 -0.9817 -0.9899 -0.9960 -0.9995Columns 16 through 30-0.9996 -0.9954 -0.9859 -0.9696 -0.9447 -0.9093 -0.8605 -0.7952 -0.7094 -0.5985 -0.4573 -0.2806 -0.0646 0.1906 0.4748Columns 31 through 450.7568 0.9643 0.9589 0.5387 -0.3742 -0.9894 0.5440 -0.6940 -0.9129 -0.7451 NaN 0.7451 0.9129 0.6940 -0.5440Columns 46 through 600.9894 0.3742 -0.5387 -0.9589 -0.9643 -0.7568 -0.4748 -0.1906 0.0646 0.2806 0.4573 0.5985 0.7094 0.7952 0.8605Columns 61 through 750.9093 0.9447 0.9696 0.9859 0.9954 0.9996 0.9995 0.9960 0.9899 0.9817 0.9719 0.9609 0.9490 0.9364 0.9233Columns 76 through 810.9098 0.8962 0.8825 0.8687 0.8550 0.8415t=-pi:pi/100:pi %给出t的取值范围,步长为pi/100t =-2.6704 -2.6389 -2.6075 -2.5761 -2.5447 -2.5133 -2.4819 -2.4504 -2.4190 -2.3876 -2.3562 -2.3248 -2.2934 -2.2619 -2.2305Columns 31 through 45-2.1991 -2.1677 -2.1363 -2.1049 -2.0735 -2.0420 -2.0106 -1.9792 -1.9478 -1.9164 -1.8850 -1.8535 -1.8221 -1.7907 -1.7593Columns 46 through 60-1.7279 -1.6965 -1.6650 -1.6336 -1.6022 -1.5708 -1.5394 -1.5080 -1.4765 -1.4451 -1.4137 -1.3823 -1.3509 -1.3195 -1.2881Columns 61 through 75-1.2566 -1.2252 -1.1938 -1.1624 -1.1310 -1.0996 -1.0681 -1.0367 -1.0053 -0.9739 -0.9425 -0.9111 -0.8796 -0.8482 -0.8168Columns 76 through 90-0.7854 -0.7540 -0.7226 -0.6912 -0.6597 -0.6283 -0.5969 -0.5655 -0.5341 -0.5027 -0.4712 -0.4398 -0.4084 -0.3770 -0.3456Columns 91 through 105-0.3142 -0.2827 -0.2513 -0.2199 -0.1885 -0.1571 -0.1257 -0.0942 -0.0628 -0.0314 0 0.0314 0.0628 0.0942 0.1257Columns 106 through 1200.1571 0.1885 0.2199 0.2513 0.2827 0.3142 0.3456 0.3770 0.4084 0.4398 0.4712 0.5027 0.5341 0.5655 0.5969Columns 121 through 1350.6283 0.6597 0.6912 0.7226 0.7540 0.7854 0.8168 0.8482 0.8796 0.9111 0.9425 0.9739 1.0053 1.0367 1.0681Columns 136 through 1501.0996 1.1310 1.1624 1.1938 1.2252 1.2566 1.2881 1.3195 1.3509 1.3823 1.4137 1.4451 1.4765 1.5080 1.5394Columns 151 through 1651.5708 1.6022 1.6336 1.6650 1.6965 1.7279 1.7593 1.7907 1.8221 1.8535 1.8850 1.9164 1.9478 1.97922.0106Columns 166 through 1802.0420 2.0735 2.1049 2.1363 2.1677 2.1991 2.2305 2.2619 2.2934 2.3248 2.3562 2.3876 2.4190 2.4504 2.4819Columns 181 through 1952.5133 2.5447 2.5761 2.6075 2.6389 2.6704 2.7018 2.7332 2.7646 2.7960 2.8274 2.8588 2.8903 2.9217 2.9531Columns 196 through 2012.98453.0159 3.0473 3.0788 3.1102 3.1416>>(2)x=sin(tan(t))-tan(sin(t)) %输入函数x =Columns 1 through 150.0000 0.0628 0.1257 0.1888 0.2520 0.3154 0.3792 0.4433 0.5079 0.5729 0.6385 0.7046 0.7714 0.8388 0.9069Columns 16 through 300.9757 1.0453 1.1156 1.1866 1.2583 1.3306 1.4035 1.47661.5500 1.6232 1.6960 1.7678 1.8380 1.9059 1.9702Columns 31 through 452.0296 2.0821 2.1254 2.1561 2.1700 2.1614 2.1230 2.0456 1.9179 1.7278 1.4654 1.1333 0.7708 0.5062 0.63541.3376 1.0158 0.7626 0.5687 0.4225 0.3129 0.2312 0.1705 0.1254 0.0920 0.0672 0.0489 0.0355 0.0256 0.0183Columns 76 through 900.0130 0.0092 0.0064 0.0045 0.0031 0.0021 0.0014 0.0009 0.0006 0.0004 0.0002 0.0001 0.0001 0.0000 0.0000Columns 91 through 1050.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0 -0.0000 -0.0000 -0.0000 -0.0000Columns 106 through 120-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0001 -0.0001 -0.0002 -0.0004 -0.0006 -0.0009 -0.0014Columns 121 through 135-0.0021 -0.0031 -0.0045 -0.0064 -0.0092 -0.0130 -0.0183 -0.0256 -0.0355 -0.0489 -0.0672 -0.0920 -0.1254 -0.1705 -0.2312Columns 136 through 150-0.3129 -0.4225 -0.5687 -0.7626 -1.0158 -1.3376 -1.7252 -2.1387 -2.4495 -2.3613 -1.4855 -0.5326 -2.4567 -1.7362 -1.1621Columns 151 through 165-1.1510 -1.9494 -1.3652 -0.6279 -2.5288 -1.5466 -0.6354 -0.5062 -0.7708 -1.1333 -1.4654 -1.7278 -1.9179 -2.0456 -2.1230Columns 166 through 180-2.1614 -2.1700 -2.1561 -2.1254 -2.0821 -2.0296 -1.9702 -1.9059 -1.8380 -1.7678 -1.6960 -1.6232 -1.5500 -1.4766 -1.4035Columns 181 through 195-1.3306 -1.2583 -1.1866 -1.1156 -1.0453 -0.9757 -0.9069 -0.8388 -0.7714 -0.7046 -0.6385 -0.5729 -0.5079 -0.4433 -0.3792Columns 196 through 201-0.3154 -0.2520 -0.1888 -0.1257 -0.0628 -0.0000>> plot(x,'-y') %用黄色的细实线画出图形>>t =Columns 1 through 15-3.1416 -3.1102 -3.0788 -3.0473 -3.0159 -2.9845 -2.9531 -2.9217 -2.8903 -2.8588 -2.8274 -2.7960 -2.7646 -2.7332 -2.7018Columns 16 through 30-2.6704 -2.6389 -2.6075 -2.5761 -2.5447 -2.5133 -2.4819 -2.4504 -2.4190 -2.3876 -2.3562 -2.3248 -2.2934 -2.2619 -2.2305Columns 31 through 45-2.1991 -2.1677 -2.1363 -2.1049 -2.0735 -2.0420 -2.0106 -1.9792 -1.9478 -1.9164 -1.8850 -1.8535 -1.8221 -1.7907 -1.7593Columns 46 through 60-1.7279 -1.6965 -1.6650 -1.6336 -1.6022 -1.5708 -1.5394 -1.5080 -1.4765 -1.4451 -1.4137 -1.3823 -1.3509 -1.3195 -1.2881Columns 61 through 75-1.2566 -1.2252 -1.1938 -1.1624 -1.1310 -1.0996 -1.0681 -1.0367 -1.0053 -0.9739 -0.9425 -0.9111 -0.8796 -0.8482 -0.8168Columns 76 through 90-0.7854 -0.7540 -0.7226 -0.6912 -0.6597 -0.6283 -0.5969 -0.5655-0.0628 -0.0314 0 0.0314 0.0628 0.0942 0.1257Columns 106 through 1200.1571 0.1885 0.2199 0.2513 0.2827 0.3142 0.3456 0.3770 0.4084 0.4398 0.4712 0.5027 0.5341 0.5655 0.5969Columns 121 through 1350.6283 0.6597 0.6912 0.7226 0.7540 0.7854 0.8168 0.8482 0.8796 0.9111 0.9425 0.9739 1.0053 1.0367 1.0681Columns 136 through 1501.0996 1.1310 1.1624 1.1938 1.2252 1.2566 1.2881 1.3195 1.3509 1.3823 1.4137 1.4451 1.4765 1.5080 1.5394Columns 151 through 1651.5708 1.6022 1.6336 1.6650 1.6965 1.7279 1.7593 1.7907 1.8221 1.8535 1.8850 1.9164 1.9478 1.97922.0106Columns 166 through 1802.0420 2.0735 2.1049 2.1363 2.1677 2.1991 2.2305 2.2619 2.2934 2.3248 2.3562 2.3876 2.4190 2.4504 2.4819Columns 181 through 1952.5133 2.5447 2.5761 2.6075 2.6389 2.6704 2.7018 2.7332 2.7646 2.7960 2.8274 2.8588 2.8903 2.9217 2.9531Columns 196 through 2012.98453.0159 3.0473 3.0788 3.1102 3.1416x =Columns 1 through 150.0000 0.0628 0.1257 0.1888 0.2520 0.3154 0.3792 0.4433 0.5079 0.5729 0.6385 0.7046 0.7714 0.8388 0.9069Columns 16 through 300.9757 1.0453 1.1156 1.1866 1.2583 1.3306 1.4035 1.47661.5500 1.6232 1.6960 1.7678 1.8380 1.9059 1.9702Columns 31 through 452.0296 2.0821 2.1254 2.1561 2.1700 2.1614 2.1230 2.0456 1.9179 1.7278 1.4654 1.1333 0.7708 0.5062 0.6354Columns 46 through 601.54662.5288 0.6279 1.3652 1.9494 1.1510 1.1621 1.73622.4567 0.5326 1.4855 2.3613 2.4495 2.1387 1.7252Columns 61 through 751.3376 1.0158 0.7626 0.5687 0.4225 0.3129 0.2312 0.1705 0.1254 0.0920 0.0672 0.0489 0.0355 0.0256 0.0183Columns 76 through 900.0130 0.0092 0.0064 0.0045 0.0031 0.0021 0.0014 0.0009 0.0006 0.0004 0.0002 0.0001 0.0001 0.0000 0.0000Columns 91 through 1050.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0 -0.0000 -0.0000 -0.0000 -0.0000Columns 106 through 120-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0001 -0.0001 -0.0002 -0.0004 -0.0006 -0.0009 -0.0014Columns 121 through 135-0.0021 -0.0031 -0.0045 -0.0064 -0.0092 -0.0130 -0.0183 -0.0256 -0.0355 -0.0489 -0.0672 -0.0920 -0.1254 -0.1705 -0.2312Columns 151 through 165-1.1510 -1.9494 -1.3652 -0.6279 -2.5288 -1.5466 -0.6354 -0.5062 -0.7708 -1.1333 -1.4654 -1.7278 -1.9179 -2.0456 -2.1230Columns 166 through 180-2.1614 -2.1700 -2.1561 -2.1254 -2.0821 -2.0296 -1.9702 -1.9059 -1.8380 -1.7678 -1.6960 -1.6232 -1.5500 -1.4766 -1.4035Columns 181 through 195-1.3306 -1.2583 -1.1866 -1.1156 -1.0453 -0.9757 -0.9069 -0.8388 -0.7714 -0.7046 -0.6385 -0.5729 -0.5079 -0.4433 -0.3792Columns 196 through 201-0.3154 -0.2520 -0.1888 -0.1257 -0.0628 -0.0000第五题A=[7.5,3.5,0,0;8,22,4.1,0;0,9,103,-1.5;0,0,3.7,19.3]B=[5,7,6,5;7,10,8,7;6,8,10,9;5,7,9,10]DA=det(A) %求解矩阵A的值DB=det(B) %求解矩阵B的值tA=trace(A) %求解矩阵A的迹tB=trace(B) %求解矩阵B的迹rA=rank(A) %求解矩阵A的秩rB=rank(B) %求解矩阵B的秩pA=poly(A) %求解矩阵A的特征多项式pB=poly(B) %求解矩阵B的特征多项式A =7.5000 3.5000 0 08.0000 22.0000 4.1000 00 9.0000 103.0000 -1.50000 0 3.7000 19.3000B =5 76 57 10 8 76 8 10 95 7 9 10DA =2.6776e+005DB =1tA=151.8000tB =35rA =4rB =4pA =1.0e+005 *0.0000 -0.0015 0.0570 -0.7457 2.6776pB =1.0000 -35.0000 146.0000 -100.0000 1.0000第六题A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13]A =7 2 1 -29 15 3 -2-2 -2 11 51 32 13>> b=[4,7,-1,0]'b =47-1>> x=A\bx =0.49790.14450.0629-0.0813>> ra=rank(A) %A的秩ra =4>> rab=rank([A,b]) %看b是否在A的列空间中rab =4xs=A\b; %求出特解xg=null(A); %求出奇次方程解c=rand(1); %随机数ba=A*(xs+c*xg); %计算A与“一个随机的全解”的乘积ba norm(ba-b) %检查ba与b的接近程度第七题syms x %生成符号变量f0=sym(sin(x)/x) %建立符号表达式int(f0,x,0,2) %计算表达式f0在变量x从0到2的定积分syms xa=1/((x-0.3).^2+0.01);b=1/((x-0.9).^2+0.04);f1=sym(a-b-6)int(f1,x,0,1) %计算表达式f1在变量x从0到1的定积分f2=sym(exp(x.^2))f3=sym(1/(4-sin(16*pi*x)))int(f2,x,0,2) %计算表达式f2从0到2的定积分int(f3,x,2,4) %计算表达式f3从2到4的定积分f=f2+f3f0 =sin(x)/xans =sinint(2)f1 =1/((x-3/10)^2+1/100)-1/((x-9/10)^2+1/25)-6ans =10*atan(7)-5*atan(1/2)-6+10*atan(3)-5*atan(9/2)f2 =exp(x^2)f3 =1/(4-sin(16*pi*x))ans =-1/2*i*erf(2*i)*pi^(1/2)ans =2/15*15^(1/2)f =exp(x^2)+1/(4-sin(16*pi*x))第八题x0=1:10;%创建横坐标向量y0=[-2.9414,-1.3807,-1.1918,-0.7284,-0.5484,-0.2656,-0.963,0.9794,0.9800,1.8860]; %创建纵坐标向量p=polyfit(x0,y0,3)%进行三阶多项式拟合x1=1:0.1:10y1=polyval(p,x1)%计算拟合曲线数据plot(x0,y0,'o',x1,y1,'m')%绘制原始数据和拟合曲线hold onx=1:0.25:10;%创建插值点y1=interp1(x0,y0,x,'cubic')%三次插值plot(x0,y0,'*',x,y1,'-g')%绘制图形legend('原始数据','拟合插值','三次插值') %图形标注p =0.0190 -0.3074 1.8106 -4.2733x1 =Columns 1 through 121.0000 1.50002.0000 2.50003.0000 3.50004.0000 4.50005.0000 5.50006.0000 6.5000Columns 13 through 197.0000 7.5000 8.0000 8.5000 9.0000 9.5000 10.0000y1 =Columns 1 through 12-2.7512 -2.1852 -1.7303 -1.3722 -1.0967 -0.8897 -0.7369 -0.6240 -0.5369 -0.4614 -0.3832 -0.2881Columns 13 through 19-0.1619 0.0096 0.2406 0.5454 0.9382 1.4332 2.0445y1 =Columns 1 through 12-2.9414 -2.3974 -1.9224 -1.5666 -1.3807 -1.3164 -1.2777 -1.2433 -1.1918 -1.0938 -0.9590 -0.8247Columns 13 through 24-0.7284 -0.6741 -0.6335 -0.5953 -0.5484 -0.4733 -0.3795 -0.2995 -0.2656 -0.3746 -0.6143 -0.8540Columns 25 through 36-0.9630 -0.6596 0.0081 0.6757 0.9794 0.9796 0.9797 0.9798 0.9800 1.0580 1.2633 1.5534Column 371.8860。

相关文档
最新文档