MATLAB在数学建模中的应用.1

为了和Excel联动,可以在工具目录打开这个xlam的文件

接着在excel里面就会出现这个

https://www.mathworks.com/help/matlab/ref/load.html?s_tid=srchtitle_load_1

一般来说,第一个语法形式是要用的最基础的写法

可以看到是加载两种文件

加载文件时的名字

太离谱了,数据得自己输入

names types x y answerSally Typy1 3.1 45 YesTom Type1 2.5 20 NoJoy Type3 0.51 1 NoLily Type2 2.1 80 Uncertain

我们把这个文件放到Matlab的文件夹里面

写一个函数就开始提示了

这里说不推荐使用,先看看

[A,B,C,...] = textread(filename,format) 以指定的 format 将数据从文件filename 读入到 A、B、C 等变量中,直到整个文件读取完毕。将 filename 和 format输入指定为字符向量或字符串标量。textread 对于读取已知格式的文本文件非常有用。textread 可处理固定格式文件和任意格式文件。

textread 可对输入中的字符组进行匹配和转换。每个输入字段都定义为一组连续延伸的非空白字符,这些字符延伸到下一个空白字符或分隔符,或者到达最大字段宽度时停止。重复的分隔符为有效字符,而重复的空白字符视为一个字符。

format 输入,指定为字符向量或字符串向量,用于确定返回参数的数量和类型。返回参数的数量是 format 的内容所指示的项目数。format 支持部分转换设定符和 C 语言 fscanf例程约定。下表列出了 format 的值。format 中的空白字符将被忽略。

各种读取格式

读取时时对应的

也可以使用内置的导入器

支持的文件内容丰富

文本文件可以在右侧预览

在最上面可以看到数据的类型

生成的调用函数

老实讲,matlab太好用了。。。喂你吃饭

这是生成脚本

%% 根据格式读取数据列。% 该调用基于生成此代码所用的文件的结构。如果其他文件出现错误,请尝试通过导入工具重新生成代码。dataArray = textscan(fileID, formatSpec, endRow, 'Delimiter', delimiter, 'TextType', 'string', 'ReturnOnError', false, 'EndOfLine', '\r\n');

根据格式读取数据列,太贴心了

这个函数可以读取你在截切版中复制的数据

太牛了

>> x=[1 2 3 4 5 6 7 8 9];>> y=[9 7 6 3 -1 2 5 7 20];>> p=polyfit(x,y,3)p =
0.1481 -1.4030 1.8537 8.2698
>> xi=0:.2:10;>> yi=polyval(p,xi);>> plot(xi,yi,x,y,'r*');

数据拟合

多项式拟合,返回降幂排列的多项式系数

函数的第三个参数是拟合的最高次幂

一般拟合前先看看大致情况

用工具箱拟合

需要我们设置这些个参数

怎么说呢,这些参数的拟合是动态拟合的

我们这里提前看答案了,知道三次就拟合的比较好看

Linear model Poly3: f(x) = p1*x^3 + p2*x^2 + p3*x + p4Coefficients (with 95% confidence bounds): p1 = 0.1481 (0.03346, 0.2628) p2 = -1.403 (-3.141, 0.335) p3 = 1.854 (-5.824, 9.531) p4 = 8.27 (-1.093, 17.63)
Goodness of fit: SSE: 14.19 R-square: 0.9494 Adjusted R-square: 0.919 RMSE: 1.685

最终结果,95的信度

结果相当漂亮了

x=[0;0.4;1.2;2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02];

数学模型这种事情,肯定是拿人口模型开刀:

一开始就是长的这样

然后做对数变换,其实就是一种放缩我觉得

这个也是

几种常见的拟合方法

指数拟合

幂函数拟合

知乎一位朋友对对数这个东西的解释

https://www.zhihu.com/question/22012482
(0)

相关推荐