学生实验报告实验课程名称
开课实验室
学院年级专业班
学生姓名学号
开课时间至学年学期
if(A(m,k)~=0)
if(m~=k)
A([k m],:)=A([m k],:); %换行
end
A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c); %消去end
end
x=zeros(length(b),1); %回代求解
x(n)=A(n,c)/A(n,n);
for k=n-1:-1:1
x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
y=x;
format short;%设置为默认格式显示,显示5位
(2)建立MATLAB界面
利用MA TLAB的GUI建立如下界面求解线性方程组:
详见程序。
五、计算实例、数据、结果、分析
下面我们对以上的结果进行测试,求解:
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------7251013914443211312433010
24321x x x x 输入数据后点击
和
,得到如下结果:
更改以上数据进行测试,求解如下方程组:
12344
321134321234311
2341x x x x ⎡⎤⎡⎤⎡⎤
⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥
-⎢⎥⎢⎥⎢⎥
-⎣⎦⎣⎦
⎣⎦
得到如下结果:
l=1;
a=y(1);
B=a;
s=1; %一次因子的乘积,预设为1
dx=y; %差商
for i=1:n-1
dx0=dx;
for j=1:n-i
dx(j)=(dx0(j+1)-dx0(j))/(x(i+j)-x(j));
end
df=dx(1);
s=s*(z-x(i)); %一次因子乘积
a=a+s*df; %计算各次Newton插值的值
l=l+1;
B=a;%结果保存在变量B中
end
j=B;
(2)建立界面
利用MATLAB中的GUI编程建立如下界面:
详见程序。
五、计算实例、数据、结果、分析
下面我们对以上的问题进行测试:
输入数据:
计算结果如下:
当x=2.101时,
x=4.234时,
同理可以测试(4)中的5的值。
六、实验中遇到的问题及解决办法
在本实验中,遇到的问题主要有两个:
(3)如何将上述的插值的算法在MA TLAB中实现
针对此问题我借鉴了网上以及课本上的算法的MATLAB实现的程序;
(4)如何将建立界面使得可以随意输入想要求解的相关矩阵后就可以直接求解
针对此问题,我通过网上的一些关于MA TLAB的GUI设计的相关资料,总结经验完
成了此项任务。
七、实验结论
通过以上的测试,我们发现以上算法和程序能够求出插值的比较精确解。
八、参考文献
[1]杨大地,王开荣.2006.数值分析.北京:科学出版社
详见程序。
五、计算实例、数据、结果、分析
下面我们对以上的问题进行测试:
输入数据:
计算结果如下:
六、实验中遇到的问题及解决办法
n=1000;
h=(b-a)/n;
X=a:h:b;
Y=zeros(1,n+1);
Y(1)=c;
for i=1:n
x=X(i);
y=Y(i);
K1=h*eval(f);
x=x+h/2;
y=y+K1/2;
K2=h*eval(f);
x=x;
y=Y(i)+K2/2;
K3=h*eval(f);
x=X(i)+h;
y=Y(i)+K3;
K4=h*eval(f);
Y(i+1)=Y(i)+(K1+2*K2+2*K3+K4)/6;
end
(2)建立界面
利用MATLAB中的GUI编程建立如下界面:
详见程序。
五、计算实例、数据、结果、分析
下面我们对以上的问题进行测试:
输入数据:
计算结果如下:
六、实验中遇到的问题及解决办法
在本实验中,遇到的问题主要有两个:
(7)如何将上述的求解微分方程的算法在MA TLAB中实现
针对此问题我借鉴了网上以及课本上的算法的MATLAB实现的程序;
(8)如何将建立界面使得可以随意输入想要求解的相关矩阵后就可以直接求解
针对此问题,我通过网上的一些关于MA TLAB的GUI设计的相关资料,总结经验完
成了此项任务。
七、实验结论
通过以上的测试,我们发现以上算法和程序能够求出微分方程组的比较精确解。
八、参考文献
[1]杨大地,王开荣.2006.数值分析.北京:科学出版社
[2]何光辉.2008.数值分析实验.数理学院数学实验教学中心
[3]百度文库,百度知道
教师签名
年月日
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
figure(5);
x1=[0 0.921 1.843 2.949 3.871 4.978 5.900 7.006 7.928 8.967];
y1=[9.677 9.479 9.308 9.125 8.982 8.814 8.686 8.525 8.388 8.220];
v1=pi.*17.4.^2.*y1./4;
dv1=-gradient(v1,x1);
x2=[10.594 12.032 12.954 13.875 14.985 15.903 16.826 17.931 19.037 19.959 20.839]; y2=[10.820 10.500 10.210 9.936 9.653 9.409 9.180 8.921 8.662 8.433 8.220];
v2=pi.*17.4.^2.*y2./4;
dv2=-gradient(v2,x2);
x3=[22.958 23.880 24.986 25.908];
y3=[10.820 10.591 10.354 10.180];
v3=pi.*17.4.^2.*y3./4;
dv3=-gradient(v3,x3);
x4=[x1 x2 x3];
v4=[dv1 dv2 dv3];
x=0:0.001:25.908;
v=interp1 (x4,v4,x,'spline');
plot (x4,v4,'+',x,v)
(2)建立界面
利用MATLAB中的GUI编程建立如下界面:
详见程序。
五、计算实例、数据、结果、分析
以上的结果分别如下图:
六、实验中遇到的问题及解决办法。