技术标签: 数学建模之Mathematica
你们的每个赞都能让我开心好几天✿✿ヽ(°▽°)ノ✿
详细资料见官方文档
插值与拟合在Mathematica中的操作也是相当方便(相对于Python而言),但是有个致命的缺点就是,当数据很大很多的时候,数据的导入、导出、使用令初学者并不是很舒服,一个很大的原因是因为对语言的不熟悉。我后面还会写的。
2、3是我在解决实际问题中的例子,同时还会对比插值阶数
目录
2.根据较少海底水深数据画出海底区域的地形和等高线图(二维散乱点插值)
(1)导入数据,插值,并选择内插阶数1,InterpolationOrder -> 1
(4)导入数据,插值,并选择内插阶数All,InterpolationOrder -> All
3.根据平面的高程数据表绘制三维表面图与等高线图(二维网格点插值)
基本用法:
二维、三维都可以插值,但是要注意格式
f = Interpolation[{1, 2, 3, 5, 8, 5}]
f[2.5]
结果:2.4375
Plot[f[x], {x, 1, 6}]
结果:
Plot[f[x], {x, 1, 6}]; Show[%, ListPlot[{1, 2, 3, 5, 8, 5}]]
结果:
Plot[f[x], {x, 1, 6}]; Show[%, ListPlot[{1, 2, 3, 5, 8, 5}]]
结果:2.4375
海底水深数据
x | 129 | 140 | 103.5 | 88 | 185.5 | 195 | 105 | 157.5 | 107.5 | 77 | 81 | 162 | 162 | 117.5 |
y | 7.5 | 141.5 | 23 | 147 | 22.5 | 137.5 | 85.5 | -6.5 | -81 | 3 | 56.5 | -66.5 | 84 | -33.5 |
z | 4 | 8 | 6 | 8 | 6 | 8 | 8 | 9 | 9 | 8 | 8 | 9 | 4 | 9 |
(注:我这里把z都改为了负号,是因为海底的话理解为往下的高度)
fa = Interpolation[{ { {129, 7.5}, -4}, { {140, 141.5}, -8}, { {103.5,
23}, -6}, { {88, 147}, -8}, { {185.5, 22.5}, -6}, { {195,
137.5}, -8}, { {105,
85.5}, -8}, { {157.5, -6.5}, -9}, { {107.5, -81}, -9}, { {77,
3}, -8}, { {81, 56.5}, -8}, { {162, -66.5}, -9}, { {162,
84}, -4}, { {117.5, -33.5}, -9}}, InterpolationOrder -> 1]
Plot3D[fa[x, y], {x, 80, 200}, {y, -70, 150}];
Show[%32, AxesStyle -> Black]
结果:
ContourPlot[fa[x, y], {x, 80, 200}, {y, -70, 150},
ContourLabels -> True, PlotLegends -> Automatic]
结果:
注意内插阶数不一定越高越好,只是在这里看上去效果比较平滑
fb = Interpolation[{ { {129, 7.5}, -4}, { {140, 141.5}, -8}, { {103.5,
23}, -6}, { {88, 147}, -8}, { {185.5, 22.5}, -6}, { {195,
137.5}, -8}, { {105,
85.5}, -8}, { {157.5, -6.5}, -9}, { {107.5, -81}, -9}, { {77,
3}, -8}, { {81, 56.5}, -8}, { {162, -66.5}, -9}, { {162,
84}, -4}, { {117.5, -33.5}, -9}}, InterpolationOrder -> All]
Plot3D[fb[x, y], {x, 80, 200}, {y, -70, 150}];
Show[%37, AxesStyle -> Black]
结果:
ContourPlot[fb[x, y], {x, 80, 200}, {y, -70, 150},
ContourLabels -> True, PlotLegends -> Automatic]
结果:
可以根据图像与数据分析:由于数据点过少,因此一阶插值看起来效果并不好;但是对于All插值,虽然看起来平滑,但是当插值阶数达到很高时误差会更大,z全是负的,但是插值出来的结果却有正的,因此只能选择一阶插值
高程数据表
y\x | 0 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 | 1100 | 1200 | 1300 | 1400 |
1200 | 1350 | 1370 | 1390 | 1400 | 1410 | 960 | 940 | 880 | 800 | 690 | 570 | 430 | 290 | 210 | 150 |
1100 | 1370 | 1390 | 1410 | 1430 | 1440 | 1140 | 1110 | 1050 | 950 | 820 | 690 | 540 | 380 | 300 | 210 |
1000 | 1380 | 1410 | 1430 | 1450 | 1470 | 1320 | 1280 | 1200 | 1080 | 940 | 780 | 620 | 460 | 370 | 350 |
900 | 1420 | 1430 | 1450 | 1480 | 1500 | 1550 | 1510 | 1430 | 1300 | 1200 | 980 | 850 | 750 | 550 | 500 |
800 | 1430 | 1450 | 1460 | 1500 | 1550 | 1600 | 1550 | 1600 | 1600 | 1600 | 1550 | 1500 | 1500 | 1550 | 1550 |
700 | 950 | 1190 | 1370 | 1500 | 1200 | 1100 | 1550 | 1600 | 1550 | 1380 | 1070 | 900 | 1050 | 1150 | 1200 |
600 | 910 | 1090 | 1270 | 1500 | 1200 | 1100 | 1350 | 1450 | 1200 | 1150 | 1010 | 880 | 1000 | 1050 | 1100 |
500 | 880 | 1060 | 1230 | 1390 | 1500 | 1500 | 1400 | 900 | 1100 | 1060 | 950 | 870 | 900 | 936 | 950 |
400 | 830 | 980 | 1180 | 1320 | 1450 | 1420 | 400 | 1300 | 700 | 900 | 850 | 810 | 380 | 780 | 750 |
300 | 740 | 880 | 1080 | 1130 | 1250 | 1280 | 1230 | 1040 | 900 | 500 | 700 | 780 | 750 | 650 | 550 |
200 | 650 | 760 | 880 | 970 | 1020 | 1050 | 1020 | 830 | 800 | 700 | 300 | 500 | 550 | 480 | 350 |
100 | 510 | 620 | 730 | 800 | 850 | 870 | 850 | 780 | 720 | 650 | 500 | 200 | 300 | 350 | 320 |
0 | 370 | 470 | 550 | 600 | 670 | 690 | 670 | 620 | 580 | 450 | 400 | 300 | 100 | 150 | 250 |
对于如此庞大数据,是不可能一个一个输入的,非常麻烦。关于数据的导入,我将在后几篇文章述说,这里就直接复制粘贴
dataInterp={ { {0, 1200}, 1350}, { {100, 1200}, 1370}, { {200, 1200},
1390}, { {300, 1200}, 1400}, { {400, 1200}, 1410}, { {500, 1200},
960}, { {600, 1200}, 940}, { {700, 1200}, 880}, { {800, 1200},
800}, { {900, 1200}, 690}, { {1000, 1200}, 570}, { {1100, 1200},
430}, { {1200, 1200}, 290}, { {1300, 1200}, 210}, { {1400, 1200},
150}, { {0, 1100}, 1370}, { {100, 1100}, 1390}, { {200, 1100},
1410}, { {300, 1100}, 1430}, { {400, 1100}, 1440}, { {500, 1100},
1140}, { {600, 1100}, 1110}, { {700, 1100}, 1050}, { {800, 1100},
950}, { {900, 1100}, 820}, { {1000, 1100}, 690}, { {1100, 1100},
540}, { {1200, 1100}, 380}, { {1300, 1100}, 300}, { {1400, 1100},
210}, { {0, 1000}, 1380}, { {100, 1000}, 1410}, { {200, 1000},
1430}, { {300, 1000}, 1450}, { {400, 1000}, 1470}, { {500, 1000},
1320}, { {600, 1000}, 1280}, { {700, 1000}, 1200}, { {800, 1000},
1080}, { {900, 1000}, 940}, { {1000, 1000}, 780}, { {1100, 1000},
620}, { {1200, 1000}, 460}, { {1300, 1000}, 370}, { {1400, 1000},
350}, { {0, 900}, 1420}, { {100, 900}, 1430}, { {200, 900},
1450}, { {300, 900}, 1480}, { {400, 900}, 1500}, { {500, 900},
1550}, { {600, 900}, 1510}, { {700, 900}, 1430}, { {800, 900},
1300}, { {900, 900}, 1200}, { {1000, 900}, 980}, { {1100, 900},
850}, { {1200, 900}, 750}, { {1300, 900}, 550}, { {1400, 900},
500}, { {0, 800}, 1430}, { {100, 800}, 1450}, { {200, 800},
1460}, { {300, 800}, 1500}, { {400, 800}, 1550}, { {500, 800},
1600}, { {600, 800}, 1550}, { {700, 800}, 1600}, { {800, 800},
1600}, { {900, 800}, 1600}, { {1000, 800}, 1550}, { {1100, 800},
1500}, { {1200, 800}, 1500}, { {1300, 800}, 1550}, { {1400, 800},
1550}, { {0, 700}, 950}, { {100, 700}, 1190}, { {200, 700},
1370}, { {300, 700}, 1500}, { {400, 700}, 1200}, { {500, 700},
1100}, { {600, 700}, 1550}, { {700, 700}, 1600}, { {800, 700},
1550}, { {900, 700}, 1380}, { {1000, 700}, 1070}, { {1100, 700},
900}, { {1200, 700}, 1050}, { {1300, 700}, 1150}, { {1400, 700},
1200}, { {0, 600}, 910}, { {100, 600}, 1090}, { {200, 600},
1270}, { {300, 600}, 1500}, { {400, 600}, 1200}, { {500, 600},
1100}, { {600, 600}, 1350}, { {700, 600}, 1450}, { {800, 600},
1200}, { {900, 600}, 1150}, { {1000, 600}, 1010}, { {1100, 600},
880}, { {1200, 600}, 1000}, { {1300, 600}, 1050}, { {1400, 600},
1100}, { {0, 500}, 880}, { {100, 500}, 1060}, { {200, 500},
1230}, { {300, 500}, 1390}, { {400, 500}, 1500}, { {500, 500},
1500}, { {600, 500}, 1400}, { {700, 500}, 900}, { {800, 500},
1100}, { {900, 500}, 1060}, { {1000, 500}, 950}, { {1100, 500},
870}, { {1200, 500}, 900}, { {1300, 500}, 936}, { {1400, 500},
950}, { {0, 400}, 830}, { {100, 400}, 980}, { {200, 400},
1180}, { {300, 400}, 1320}, { {400, 400}, 1450}, { {500, 400},
1420}, { {600, 400}, 400}, { {700, 400}, 1300}, { {800, 400},
700}, { {900, 400}, 900}, { {1000, 400}, 850}, { {1100, 400},
810}, { {1200, 400}, 380}, { {1300, 400}, 780}, { {1400, 400},
750}, { {0, 300}, 740}, { {100, 300}, 880}, { {200, 300},
1080}, { {300, 300}, 1130}, { {400, 300}, 1250}, { {500, 300},
1280}, { {600, 300}, 1230}, { {700, 300}, 1040}, { {800, 300},
900}, { {900, 300}, 500}, { {1000, 300}, 700}, { {1100, 300},
780}, { {1200, 300}, 750}, { {1300, 300}, 650}, { {1400, 300},
550}, { {0, 200}, 650}, { {100, 200}, 760}, { {200, 200},
880}, { {300, 200}, 970}, { {400, 200}, 1020}, { {500, 200},
1050}, { {600, 200}, 1020}, { {700, 200}, 830}, { {800, 200},
800}, { {900, 200}, 700}, { {1000, 200}, 300}, { {1100, 200},
500}, { {1200, 200}, 550}, { {1300, 200}, 480}, { {1400, 200},
350}, { {0, 100}, 510}, { {100, 100}, 620}, { {200, 100},
730}, { {300, 100}, 800}, { {400, 100}, 850}, { {500, 100},
870}, { {600, 100}, 850}, { {700, 100}, 780}, { {800, 100},
720}, { {900, 100}, 650}, { {1000, 100}, 500}, { {1100, 100},
200}, { {1200, 100}, 300}, { {1300, 100}, 350}, { {1400, 100},
320}, { {0, 0}, 370}, { {100, 0}, 470}, { {200, 0}, 550}, { {300, 0},
600}, { {400, 0}, 670}, { {500, 0}, 690}, { {600, 0}, 670}, { {700, 0},
620}, { {800, 0}, 580}, { {900, 0}, 450}, { {1000, 0},
400}, { {1100, 0}, 300}, { {1200, 0}, 100}, { {1300, 0},
150}, { {1400, 0}, 250}}
f = Interpolation[dataInterp, InterpolationOrder -> 3]
Plot3D[f[x, y], {x, 0, 1400}, {y, 0, 1200}, AxesStyle -> Bold]
结果:
ContourPlot[f[x, y], {x, 0, 1400}, {y, 0, 1200},
ContourLabels -> True, PlotLegends -> Automatic]
结果:
你们的每个赞都能让我开心好几天✿✿ヽ(°▽°)ノ✿
java.util.Date时区GMT(Greenwich Mean Time)代表格林尼治标准时间,这个大家都知道。而CST却同时可以代表如下 4 个不同的时区:Central Standard Time (USA) UT-6:00Central Standard Time (Australia) UT+9:30China Standard Time UT+8:00Cuba ...
<br />原文链接:http://blogs.msdn.com/b/ie/archive/2004/10/26/247912.aspx<br />I thought I’d take a couple minutes to talk about Script Debugging and Internet Explorer.<br /><br />Script debugging is turned off by default you can enable it by going to:<br /
1.导入。。。。。。。。。。。<java.version>1.8</java.version><thymeleaf.version>3.0.11.RELEASE</thymeleaf.version><thymeleaf-layout-dialect.version>2.4.1</thymeleaf-layout-dial...
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;
题目有很多小木棍需要机器处理。每个小木棍有重量和长度两个属性。不断把小木棍放入机器中,如果小木棍\(a\)放完后放入小木棍\(b\),那么如果\(a.weight<=b.weight\ and\ a.length<=b.length\),机器就可以以0的时间处理完这根木棍,否则需要花1的时间初始化。最开始也需要一次初始化。给出所有小木棍的信息,求一共需要多久处理完所有的小木...
背景:新导入了一个项目,发现在jsp中无法通过点击js路径跳转到js,很不方便解决方法:setting中WebContexts设置webapp路径为/即可
作者:emouse 思·睿转自:http://www.cnblogs.com/emouse/archive/2013/03/05/2944522.htmlV4L2摸索了两天还是一头雾水,今天调试一个程序发现两个头文件:#include "libv4l2.h" #include "libv4lconvert.h"没有找到,网上搜索了下,发现这是在一个库libv4l
8月30日,国家税务总局发布《征管改革不停步 科技强税提质效——党的十八大以来税务部门持续推进税收征管改革综述》,提到:以金税四期建设为主要内容的智慧税务建设正式启航,推动税收征管方式从“收税”到“报税”再到“算税”,税收征管流程从“上机”到“上网”再到“上云”,税收征管效能从“经验管税”到“以票控税”再到“以数治税”。
JAVA基础编程题汇总(PTA)
如有一个student 学生表student表中有字段 课程字段 分别用 1,2,3,4,5,6,7 表示不通的7门课程CREATE TABLE student(name varchar(255),course varchar(255))insert intostudent (name ,course)values (‘张三‘,‘1,2,5,7‘);问题一、判断 张三 是否选择了 课程 2sel...
SVN服务备份操作步骤1、准备源服务器和目标服务器源服务器:192.168.1.250目标服务器:192.168.1.251 root/rootroot 2、对目标服务器(251)装SVN服务器, 脚本如下:yum install subversion 3、创建一个新的仓库 (svnadmin create 路径),脚本如下:1svnadmin create ~/svn-storage-bak ...