没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB学习资料,帮助你深入运用MATLAB进行各类的科学计算及数据分处理析
资源推荐
资源详情
资源评论
科学计算
------MATLAB的使用简介
1.一维插值..............................................................................................................................2
2.二维插值..............................................................................................................................3
3.曲线拟合..............................................................................................................................4
4.数值积分..............................................................................................................................4
5.数值微分..............................................................................................................................6
6.微分方程数值解..................................................................................................................7
7.解优化问题..........................................................................................................................7
8.回归分析............................................................................................................................11
1
1.一维插值
对表格给出的函数,求出没有给出的函数值。
在实际工作中,经常会遇到插值问题。
例1:表1是待加工零件下轮廓线的一组数据,现需要得到x坐标每改变0.1时所对应的
y的坐标.
x 0 3 5 7 9 11 12 13 14 15
y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6
下面是关于插值的两条命令(专门用来解决这类问题):
y=interp1(x0,y0,x) 分段线性插值
y=spline(x0,y0,x) 三次样条插值
其中x0,y0是已知的节点坐标,是同维向量。y对应于x处的插值。y与x是同维向量。
解决上述问题,我们可分两步:
一 用原始数据绘图作为选用插值方法的参考.
二 确定插值方法进行插值计算
对于上述问题,可键入以下的命令:
x0=[0,3,5,7,9,11,12,13,14,15]';
y0=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6]'
plot(x0,y0) %完成第一步工作
x=0:0.1:15;
y=interp1(x0,y0,x'); %用分段线性插值完成第二步工作
plot(x,y)
y=spline(x0,y0,x');
plot(x,y) %用三次样条插值完成第二步工作
练习:对y=1/(1+x
2
),-5≤x≤5,用n(=11)个节点(等分)作上述两种插值,用m(=21)个
插值点(等分)作图,比较结果。
解:键入并运行如下命令
n=11;m=21;x=-5:10/(m-1):5;y=1./(1+x.^2);
xo=-5:10/(n-1):5;yo=1./(1+xo.^2);
y1=interp1(xo,yo,x);
y2=spline(xo,yo,x);
plot(x,y,'r',x,y1,'b',x,y2,'k')
练习:在某处测得海洋不同深度处水温如下:
深度 446 714 950 1422 1634
水温
7.04 4.28 3.40 2.54 2.13
求深度为500、1000、1500米处的水温。
2
解:输入程序:
D=[446,714,950,1422,1634];
T=[7.04,4.28,3.40,2.54,2.13];
Di=[500,1000,1500];
Ti=interp1(D,T,Di)
M AT L A B的 命 令 i n t e r p 1 ( X , Y, X i , ’ m e t h o d ’ )用 于 一 元 插 值 . 其 中 M e t h o d可 选 ’
nearest’(最近邻插值),’linear’(线性插值),’spline’(三次样条插值),’cubic’(三次多项式插
值)
2.二维插值
MATLAB中二维插值的命令是:
z=interp2(x0,y0,z0,x,y,'meth')
例2:在一个长为5个单位,宽为3个单位的金属薄片上测得15个点的温度值,试求出此薄
片的温度分布,并绘出等温线图。(数据如下表)
y x
1 2 3 4 5
1 82 81 80 82 84
2 79 63 61 65 87
3 84 84 82 85 86
程序:temps=[82,81,80,82,84;79,63,61,65,87;84,84,82,85,86];
mesh(temps) %根据原始数据绘出温度分布图,可看到此图的粗造度。
1
2
3
4
5
1
1.5
2
2.5
3
60
65
70
75
80
85
90
%下面开始进行二维函数的三阶插值。
width=1:5; depth=1:3; di=1:0.2:3; wi=1:0.2:5;
[WI,DI]=meshgrid(wi,di);%增加了节点数目
ZI=interp2(width,depth,temps,WI,DI,'cubic');% 对数据(width,depth,temps)进
% 行三阶插值拟合。
surfc(WI,DI,ZI)
contour(WI,DI,ZI)
3
剩余15页未读,继续阅读
资源评论
lengthc
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功