数学matlab实验格式及内容Word格式.docx

上传人:b****4 文档编号:8252485 上传时间:2023-05-10 格式:DOCX 页数:10 大小:113.05KB
下载 相关 举报
数学matlab实验格式及内容Word格式.docx_第1页
第1页 / 共10页
数学matlab实验格式及内容Word格式.docx_第2页
第2页 / 共10页
数学matlab实验格式及内容Word格式.docx_第3页
第3页 / 共10页
数学matlab实验格式及内容Word格式.docx_第4页
第4页 / 共10页
数学matlab实验格式及内容Word格式.docx_第5页
第5页 / 共10页
数学matlab实验格式及内容Word格式.docx_第6页
第6页 / 共10页
数学matlab实验格式及内容Word格式.docx_第7页
第7页 / 共10页
数学matlab实验格式及内容Word格式.docx_第8页
第8页 / 共10页
数学matlab实验格式及内容Word格式.docx_第9页
第9页 / 共10页
数学matlab实验格式及内容Word格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数学matlab实验格式及内容Word格式.docx

《数学matlab实验格式及内容Word格式.docx》由会员分享,可在线阅读,更多相关《数学matlab实验格式及内容Word格式.docx(10页珍藏版)》请在冰点文库上搜索。

数学matlab实验格式及内容Word格式.docx

对题中超定方程组

i=1,2,3,4(4>

2),J=

最小

可得正则方程组

正则方程组的解就是超定方程组的最小二乘解.

2、参数说明:

计算模型为:

最小二乘法求解超定方程组;

程序中所用符号:

A为系数矩阵;

b为数值列向量;

p、q为矩阵A的行数与列数;

i、j为循环控制变量;

B为A的转置与其本身的乘机产生的矩阵;

C为A的转置与b的乘机产生的矩阵;

D为B的逆矩阵;

x为D与C的乘机产生的矩阵及为所求结果;

s为残差的平方和;

ztd01(A,b)为求解超定方程解的函数;

ztd02(A,b)为求解残差平方和的函数;

三、算法设计:

(1)科学计算理论:

最小二乘法原理

在我们研究两个变量(x,y)之间的相互关系时,通常可以得到一系列成对的数据(x1,y1、x2,y2...xm,ym);

将这些数据描绘在x-y直角坐标系中(如图1),若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。

  Y计=a0+a1X(式1-1)

  其中:

a0、a1是任意实数

  为建立这直线方程就要确定a0和a1,应用《最小二乘法原理》,将实测值Yi与利用(式1-1)计算值(Y计=a0+a1X)的离差(Yi-Y计)的平方和〔∑(Yi-Y计)2〕最小为“优化判据”。

  令:

φ=∑(Yi-Y计)2(式1-2)

  把(式1-1)代入(式1-2)中得:

  φ=∑(Yi-a0-a1Xi)2(式1-3)

  当∑(Yi-Y计)平方最小时,可用函数φ对a0、a1求偏导数,令这两个偏导数等于零。

  (式1-4)

  (式1-5)

  亦即:

  ma0+(∑Xi)a1=∑Yi(式1-6)

  (∑Xi)a0+(∑Xi2)a1=∑(Xi,Yi)(式1-7)

  得到的两个关于a0、a1为未知数的两个方程组,解这两个方程组得出:

  a0=(∑Yi)/m-a1(∑Xi)/m(式1-8)

  a1=[n∑XiYi-(∑Xi∑Yi)]/[n∑Xi2-(∑Xi)2)](式1-9)

  这时把a0、a1代入(式1-1)中,此时的(式1-1)就是我们回归的元线性方程即:

数学模型。

  在回归过程中,回归的关联式是不可能全部通过每个回归数据点(x1,y1、x2,y2...xm,ym),为了判断关联式的好坏,可借助相关系数“R”,统计量“F”,剩余标准偏差“S”进行判断;

“R”越趋近于1越好;

“F”的绝对值越大越好;

“S”越趋近于0越好。

  R=[∑XiYi-m(∑Xi/m)(∑Yi/m)]/SQR{[∑Xi2-m(∑Xi/m)2][∑Yi2-m(∑Yi/m)2]}(式1-10)*

在(式1-1)中,m为样本容量,即实验次数;

Xi、Yi分别任意一组实验X、Y的数值。

(2)求解模型:

X的求解模型:

S的求解模型:

四、Matlab程序流程图:

求解x的流程图:

求解s的流程图:

五、源程序:

(1)求解x的程序:

functionx=ztd01(A,b)

[p,q]=size(A);

%求A的行数与列数

B=zeros(q);

%把B定义为零矩阵

for(i=1:

q)

for(j=1:

B(i,j)=sum(A(1:

p,i).*A(1:

p,j));

%求B=

*

end;

end;

C=zeros(q,1);

%把C定义为零矩阵

1)

C(i,1)=sum(A(1:

1:

p,i).*b(1:

p,1));

%求C=

*b

D=inv(B);

%求B的逆矩阵

x=zeros(q,1);

%把x定义为零矩阵

x(i,1)=sum(D(1:

q,i).*C(1:

q,1));

%求x=

*

(2)求解s的程序:

functions=ztd02(A,b)

x=ztd01(A,b);

%用ztd01函数求x

p)

b(i)=(A(i,:

)*x-b(i))^2;

%第i个方程残差的平方

s=sum(b);

%残差的平方和

运算结果:

x=

2.9185

1.1478

s=

1.8022

六、程序调试情况:

程序调试过程中出现的问题:

(1)、在运行矩阵的乘法时由于忽略了第一个矩阵的列与第二个矩阵的行不相等运用矩阵乘法是不行的,必须的运用矩阵的数乘才行;

(2)、在控制循环变量时没有注意它们之间的具体关系,盲目的定义了循环次数;

(3)、把函数名

错写为

(4)、matlab语言不能完全和C语言通用也是一个关键问题;

七、结论:

本方程组相对于

对超定方程组的求解,本程序稍微复杂了一些,总的来说在该程序中主要算法为对循环法的利用,所以本程序的算法相对比较简单;

对于超定方程组的解的误差,最小二乘法可以对方程组的解实现在最小平方误差意义下的最好拟和;

本程序能够解决n

n的任何矩阵,使其能够判断所输入超定方程组系数矩阵的维数,并调用对应的

存储预存矩阵

中的元素,从而使本程序对所有超定方程组都能以求解,使用起来更加方便,具有一般性和普遍实用性。

改进意见:

此程序虽然能解决超定方程组的问题,但是在编辑和函数运用上有一定的问题,B的逆矩阵可以编程程序,而对于B的行列式的值等于0的的情况,这种方法不能运行出结果,所以要加入判断程序,这样就能是该程序应用于更多的超定方程组的求解。

8、结束语:

一个星期的《MATLAB基础与数值计算方法》实习时间很快就过去了,看着我们调试好的程序,心情有了一份宁静也有了一份兴奋,看到即将打好的报告在敲打键盘下变得越来越近心里多了一丝久违的满足感和幸福感。

虽然只是短短的几天,但是我们经历了自己心中的酸甜苦辣,刚拿到题时的不知所措,编出的程序被老师一次又一次的说要重新编写,再到我们自己吧程序静静的思考写在纸上,再到把程序调试出来的喜悦,一点一点的我们经历了丰富自己的光阴。

很多苦与乐,但是我们得到了更多的实践。

通过这次学习我们初步的掌握了用MATLAB编写一些简单的程序,这是我们最大的收获。

一周的实习就这样在彼此忙碌的身影中宣告结束了,而一切还是那没的熟悉,就像刚刚打开《MATLAB实用教程》的那一刹那,一直都在这里。

而一页页的实习报告又将过去一周的努力清晰的展现在我们眼前。

在一周的实习时间里,我们尽力把程序编好,从拿到题到看到自己面对计算机的茫然;

从编制程序到制作报告;

从……有老师的帮助和同学的鼓励,我们在一起探讨程序的编制、word的应用、挤在一起看老师做出的程序…而最终我们终于把自己的程序完成,高兴之时我们也知道了自己对C语言、MATLAB和数值计算方法学习的程度,也会更加鞭策我们更加努力去学习科学文化知识。

紧张而忙碌实习就这样结束了,带着一丝欣慰、一丝满足,我们结束了这周的实习,但是我们对探讨的看法将会继续下去!

9、参考文献:

徐金明,张孟喜,丁涛.《MATLAB实用教程》.清华大学出版社,北京交通大学出版社,2008.11

马东升,雷勇军.《数值计算方法》第2版.机械工业出版社,2010.6

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2