matlab数学建模作用,matlab数学建模基础

1.数据的导入和保存

1.1数据的导入

matlab中导入数据的函数通常为load

load matlab.mat

matlab中常用的导入数据的函数为importdata,用法如下:

imported_data = importdata('matlab.mat')

1.2 文件的打开

比较open与load的不同

clear all

a=rand(4);

b=magic(4);

save

Saving to: C:\Users\Administrator\Documents\MATLAB\mathematical modeling\2\matlab.mat

clear

load('matlab.mat')

a

b

clear

open('matlab.mat')

struc1=ans;

struc1.a

struc1.b

2.数据的统计与分析

2.1 常用统计量

算术平均数,中位数

mean(X) —— X为向量

mean(A) —— A为矩阵,返回各列元素的平均值

median(X)

标准差,方差,极差

clear all

clc

X=[15.60 13.41 17.20 14.42 16.61];

DX=var(X,1) %求解方差

sigma=std(X,1) %求解标准差

DX1=var(X) %求解样本方差

sigma1=std(X) %求解样本标准差

var(X,1) —— 返回样本的简单方差(前置因子为1/n)

std(X,1) —— 返回前置因子为1/n的标准差

偏度,峰度

在matlab中使用jbtest函数进行Jarque-Bera检验

调用格式为:

h = jbtest(X) —— h=0,可认为服从正态分布;h=1,说明在显著水平0.05下拒绝服从正态分布

[H,P,JBSTAT,CV] = jbtest(X,alpha) —— alpha为指定显著水平,P为检验的p值

clear all

clc

x1=[5200 5056 561 6016 635 669 686 692 704 7007 711];

x2=[7013 7104 719 727 735 740 744 745 750 7076 777];

x3=[7086 7806 791 7904 821 822 826 834 837 8051 862];

x4=[8703 879 889 9000 904 922 926 952 963 1056 10074];

x=[x1 x2 x3 x4];

[H,P,JBSTAT,CV]=jbtest(x)

>

H =

1

P =

0.0218

JBSTAT =

8.0226

CV =

4.8466

由于H=1,P<0.05,有理由认为不服从正态分布。

3. 随机数

3.1 二项分布随机数

可以使用binornd产生二项分布随机数

R = binornd(N,P) —— NP为二项分布的两个参数

R = binornd(N,P,m,n) —— m为行数n为列数

clear all

clc

x=binornd(10,0.45,100000,1);

histogram(x,11);

43216ce40c99?from=groupmessage

3.2 泊松分布随机数

泊松分布的表达式为:

math?formula=f(x%7C%5Clambda)%20%3D%20%5Cfrac%7B%5Clambda%5Ex%7D%7Bx!%7De%5E%7B-x%7D

调用格式:

y = poisspdf(x,Lambda)

clear all

clc

x=0:20;

y1=poisspdf(x,2.5);

y2=poisspdf(x,5);

y3=poisspdf(x,10);

hold on

plot(x,y1,':r*')

plot(x,y2,':b*')

plot(x,y3,':g*')

hold off

43216ce40c99?from=groupmessage

3.3 正态分布随机数

提供函数normrnd

R = normrnd(mu,sigma,m,n)

4.假设检验

4.1 方差已知时的均值假设检验

在给定方差的条件下可以使用ztest函数,来检验单样本数据是否服从给定均值的正态分布,调用格式

h = ztest(x,m,sigma,alpha) —— 其中sigma是标准差,alpha是显著水平的控制参数,m是判断样本的均值是否是m

clear all

clc

x1=[11.8 10.5 10.6 9.6 10.7 9.8 10.9 11.1 10.6 10.3];

x2=[10.2 10.6 9.8 12.2 10.6 9.8 10.6 10.1 9.5 9.9];

x=[x1 x2]';

m=10;sigma=0.4;a=0.05;

[h,sig,muci]=ztest(x,m,sigma,a,1)

h=1是可以认为在该显著水平上拒绝零假设

4.2 正态总体均值假设检验

用于方差未知时的正态总体的均值的假设检验,使用ttest函数

调用格式如下:

[h,sig,ci] = ttest(x,m,alpha,tail)

其中:

tail=0时表示制定备择假设均值不等于m,tail=1时表示指定备择假设均值大于m

clear all

clc

x=[169 180 131 182 234 274 188 254 232 172 165 249 249 180 465 192];

m=225;

a=0.05;

[h,sig,muci]=ttest(x,m,a,1)

方差未知时两个正态总体均值的假设检验

clear all

clc

x=[82.45 86.21 83.58 79.69 75.29 80.73 72.75 82.35]';

y=[83.56 64.27 73.34 74.37 79.77 67.12 77.27 78.07 72.62]';

a=0.05;

[h,sig,ci]=ttest2(x,y,a,1)

h =

1

sig =

0.019504179277914

ci =

1.325223048786295

Inf

在显著水平0.05下,可以判断合金的硬度有提高。

ci为均值差以真值的1-alpha置信区间

5.统计绘图

1.线性回归

clear all

clc

%做x和y的散点图%

x=1:10;

y=[2650,1942,1493,1086,766,539,485,291,224,202];

for i=1:10

plot(x(i),y(i),'ok');

hold on

end

xlabel('x');

ylabel('y');

43216ce40c99?from=groupmessage

看起来成指数关系故对y取对

%做x和z的散点图%

x=1:10;

y=[2650,1942,1493,1086,766,539,485,291,224,202];

z=zeros(size(y));

N=length(y);

for i=1:N

z(i)=log(y(i));

plot(x(i),z(i),'ok');

hold on

end

xlabel('x');

ylabel('y');

43216ce40c99?from=groupmessage

最后进行拟合:

x=1:10;

y=[2650,1942,1493,1086,766,539,485,291,224,202];

z=zeros(size(y));

N=length(y);

for i=1:N

z(i)=log(y(i));

end

[p,s]=polyfit(x,z,1)

p =

-0.298370334863784 8.167123993138752

s =

包含以下字段的 struct:

R: [2×2 double]

df: 8

normr: 0.231593652511713

因此有:

z = 8.1671-0.2984x

2.多元线性回归

使用regress(),调用格式如下:

[b,bint,r,rint,stats] = regress(y,x,alpha)

b :输出向量

bint :回归系数估计值和他们的置信区间

r :残差

stats:用于检验回归模型的统计量

clear all

clc

x1=[1.376, 1.375, 1.387, 1.401, 1.412, 1.428, 1.445, 1.477];

x2=[0.450,0.475,0.485,0.500,0.535,0.545,0.550,0.575];

x3=[2.170,2.554,2.676,2.713,2.823,3.088,3.122,3.262];

x4=[0.8922, 1.1610,0.5346,0.9589, 1.0239, 1.0499,1.1065, 1.1387];

y=[5.19, 5.30,5.60,5.82,6.00,6.06,6.45,6.95];

save data x1 x2 x3 x4 y

load data %取出数据

Y=[y'];

x=[ones(size(x1')),x1',x2',x3',x4'];

% x=[ones(size(x1')),x1',x2',x3',x4'];

[b,bint,r,rint,stats]=regress(Y,x)

b =

-13.984929738072131

13.192039484762253

2.422801334278647

0.075351705837265

-0.189698161343466

bint =

-26.001910540334851 -1.967948935809410

1.412992683865971 24.971086285658536

-14.280792465224541 19.126395133781834

-1.485927625219084 1.636631036893614

-0.963788998494748 0.584392675807817

r =

-0.061841695502344

0.022836121353063

0.012283797815437

0.088954141756640

0.043085353569731

-0.147251341381197

0.014544938640025

0.027388683748707

rint =

-0.131017806908374 0.007334415903686

-0.229918483557968 0.275590726264095

-0.146412843148935 0.170980438779809

-0.375028670817865 0.552936954331145

-0.054600368143406 0.140771075282869

-0.334820783638826 0.040318100876432

-0.475344602360936 0.504434479640986

-0.271723565503547 0.326500933000961

stats =

0.984604459779746 47.965406492414637 0.004731534869980 0.012303538411269

所以分析模型为:

y = -13.9849+13.1920x1+2.4228x2+0.0753x3-0.1896x4

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值