|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
这个是代码,希望大家看看,不知道小弟还有什么改进的地方,小弟刚学MATLAB滴~
PS:这里有一个问题就是,Y坐标,我想在画线的地方标上40%60%这些概率,而不是等距的坐标值。
先谢谢各位大侠了,呵呵~~- clc;clf;clear %清楚原始数据干扰
- a=0;
- b=15; %初始变量
- for k=1:1:15
- i=[0.0001 0.001 0.01 0.05 0.1 0.2 0.4 0.5 0.6 0.8 0.9 0.95 0.99 0.999 0.9999];
- y1=norminv(i(k));
- x1=[a,b];
- plot(x1,[y1,y1])
- hold on
- end
- title('正态坐标纸'); %绘制坐标图
- load test1.dat %数据导入
- m=size(test1);n=m(2); %求数据输入的数目
- for k=1:1:n
- l(k)=(k-0.3)/(n+0.4); %求失效概率中位秩
- end
- for i=1:1:n
- plot(test1(2,i),norminv(l(i)),'o') %描点
- hold on
- end
- x=test1(2,:); %赋值给x
- y=norminv(l(:)'); %赋值给y
- avgx=sum(x)/n; %x平均数
- avgy=sum(y)/n; %y平均数
- B=(sum(x.*y)-n*avgx*avgy)/(sum(x.*x)-n*avgx*avgx);A=avgy-B*avgx; %最小二乘法求线性直线
- for p=0:0.01:15
- plot(p,A+B*p)
- end %绘制直线
- rol=(sum(x.*y)-n*avgx*avgy)/(sqrt((sum(x.*x)-n*avgx*avgx)*(sum(y.*y)-n*avgy*avgy))); %求相关系数
- rola=2.576/sqrt(n+1); %求标准相关系数
- if rol>=rola %判断是否线性相关
- disp('两者线性相关')
- cu='期望等于 ';cr='标准差等于 ';cum='Kh';
- cuu=(0.5-A)/B;crr=(-A+0.841)/B-(-A+0.5)/B;
- disp([cu,num2str(cuu),cum])
- disp([cr,num2str(crr)]) %参数估计
- else
- disp('两者线性不相关') %非线性相关,quit
- end
复制代码
[ 本帖最后由 lcczx 于 2007-9-1 14:59 编辑 ] |
|