没有合适的资源?快使用搜索试试~ 我知道了~
Matlab与Simulink仿真学习心得.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 65 浏览量
2021-10-30
04:46:21
上传
评论
收藏 2.03MB PDF 举报
温馨提示
试读
18页
MATLAB
资源推荐
资源详情
资源评论
Matlab 与 Simulink 仿真学习心得
班级: 07610 学号: 072016 姓名:吕天雄
一 Matlab 学习心得体会与编程实践
<1> 学习 Matlab 的心得体会
真正开始接触 Matlab 是大二上就开始了,到现在已经一年多了,在此之间, Matlab 的确
为我提供了很多便利。 Matlab 的确不愧成为是草稿纸上的语言。我们不必去为很简单的显
示效果图形去找一些什么其他软件或者研究比较复杂的计算机图形学,一个 plot 或者别的
函数往往就可以得到很满意的效果。
其实最初开始学习 matlab 的时候感觉这个东西和 C没什么两样,但是后来具体到一些
东西,比如信号处理和数学建模上以后才感觉到使用 matlab 编写程序去验证结果比 C要节
省很多时间,而且 matlab 写东西基本都是按照自己的思路平铺直叙很少去考虑什么函数的
嵌套调用或者指针等等很头疼的东西。
关于 matlab 的学习,我感觉其实百度和 matlab 自带的 help 基本能够解决绝大数问题,
而且一些比较好的论坛比如 www.ilovematlab.cn 都会为你产生很大的帮助,关键是在于多
动手实践,多思考。但是 matlab 毕竟只是一个工具,原理和一些基本的编程素质还是必须
有的,否则 matlab 最多也只能是验证一些别人的东西而已,根本帮不上什么忙的。
<2> 遇到的一些问题的思考方式与解决办法
最开始用 matlab 的时候是在大物实验,实验要求去根据测量得到的数据作出图。但是
手动用铅笔去画确实很麻烦,所以用 matlab 确实可以省去很大的麻烦。但是第一次遇到问
的时候是有关极化坐标下的曲线拟合。
首先是一个物理实验的问题; 在做一个关于光的偏振的实验的时候, 最后的结果要在一
个极化坐标下显示出来; 因为数据是离散的, 所以显示出来的图像是一个折来折去的一个东
东; 然后很自然的想法是对这个曲线进行插值处理。
但是极化坐标下 MATLAB 并未提供插值处理的函数, interp1 这个函数只能在笛卡尔坐
标系,也就是直角坐标系下使用。
然后就想到把极坐标的数据转换的直角坐标系下, pol2cart 可以实现这个想法,但是随
后而来,也就是最后导致整个问题失败的关键也在这里。
pol2cart 以后产生的一串数据中出现了重复的数据,那么 interp1 这个东西也就无能为力
了,因为 interp1 不能处理一串数据中有重复出现的情况。 最后的处理办法是把这些数据 c
os,sin 这些东西变换一下后,使其大致规则,然后再用 polar 画出极坐标下的图形。
接下来这个问题就有点超过我的范围了,可能会有点叙述不清楚。问题可以概要为:人
脸网格插值。
这是一个用三角形网格表示的一个人脸模型。 需要通过插值使其变得光滑, 当然问题的复杂
之处在于,插值会改变原本的网格结构。
对于这个问题许多人都给出了解决的办法, 当然是一些关于人脸识别技术和运动图像处
理的范畴之内的。
主要有两种,第一种是 face—ls 算法。这种算法是基于 RBF(径向插值函数)和 loop 细分
原则的一种算法,当然其精确程度比较差点。但是速度挺好。原理是:基于网格上的点,产
生出顶点的迭代函数,从而产生出新的定点, 进行细化。 然后进行插值。也就是引进新的顶
点。分为两个过程内部插值和边缘插值。具体可以去看兰州大学信息工程学院的学报。
第二种也就是基本的老办法 RBF。首先解释一下什么叫做径向插值
径向基函数
主要是考虑多维空间的数据插值问题, 径向基函数在三维图形的变形中常常被采用, 用其来
变分三维人脸的时候还应结合人脸的固有特征。确定该方法来实现三维人脸变形是可行的,
但要构造好的基函数,以及解这些高维方程的解仍是难点。
插值方法:
假设大多数人脸的形状都可以由一个拓扑原型变化得来, 那么,通过调整一个一般模型的构
造参数可以建立不同的面部模型。 但是,这种参数模型仅仅局限于那些构造参数已知的情况,
并且对特定人脸参数的调整非常困难。在离散数据的多变量插值问题方面,径向基函数
(radial basis function ,RBF)插值方法是一个行之有效的工具, 所以也适用于类似人脸这样
高维曲面的近似或平滑插值。现有的许多方法使用了基于 RBF 的插值技术,将一般人脸网
格变化到特定人脸的形状。这种方法的优点在于:( 1)通过插值可以得到丢失的数据点,
所以源网格和目标网格不需要相同数目的结点;( 2)如果选择了合适的匹配点,数学上可
以保证能够将源网格变形到目标网格。
当然我也不是很懂,只是理解了部分。这种方法的关键是找到一个很好的核函数来计
算出新的顶点。
最后问题解决的方式是查着了一些图书馆的学报。 然后而且在网上找到了部分代码。 然
后做出来的。这是我校大四一个同学毕设中的一个东西。
其实这个事件最好的解决办法是在 3D-MAX 中,不过因为没能找到 MATLAB 与
3D-MAX 是怎么接口的,所以作罢了。
第三次遇到的问题是我在数学建模课上遇到的一个关于矩阵 LU 分解的问题:
Matlab 作出的结果和手算的结果竟然不一样。
一个矩阵 A=
11
1
经过三角分解为 L=
1
01
1
U=
1
10
1
因为 1/ 为一个极大数 则 1— 1/ 可以看成— 1/ ;
设 =0.000000000000000000000001%10 的负 24 次方
从而 L*U=
则最后一位 1 没有了 变成了 0
其中 L=
U=
Matlab 程序为
epusino=0.000000000000000000000001;
U=[epusino 1;0 -1/epusino];
L=[1 0;1/epusino 1];
L*U
ans =
0.000000000000000 1.000000000000000
1.000000000000000 0
而直接用 lu 函数对矩阵 A 分解的结果为
A=[epusino 1;1 1]
A =
0.0000 1.0000
1.0000 1.0000
>> [L,U]=lu(A)
L =
0.0000 1.0000
1.0000 0
U =
1 1
0 1
我们老师当时的解释是这是由于我们所用 matlab 是破解版的缘故,破解版的计算精度
没正版的高所以导致运算结果的错误,后来我看了一些 LU 这个函数的 help 文档
psychologically lower triangular matrix" (i.e. a product of lower triangular
and permutation matrices) in L 。翻译过来是 L 是一个心理上的下三角矩阵,其实是下三
角矩阵和置换矩阵也就是最后的结论。 P*A = L*U. 。由此可见这并不是什么精度的问题导
致的结果只是 LU 分解的矩阵意义和书本上的不同而已。
以下是我自己写的一些程序的代码
1:网络随机拓扑图
目的是 要生成一个度数随机、 权值随机的拓扑图 。 首先的理解是利用邻接矩阵, 先随
机生成一个矩阵,该矩阵为一个对称矩阵。然后画出这个矩阵就行了。
剩余17页未读,继续阅读
资源评论
jishuyh
- 粉丝: 0
- 资源: 7万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功