大学数值计算A结课作业
数值计算A考核标准
十道大题,类似于实验报告,word文档打印出来
封面:数值计算实验
学院、班级、学号、姓名、指导老师高秉建
目录:实验一…,实验二…,…,实验十…
正文每个实验包括,1.问题,2.算法的Matlab源程序,
3.两个算例、Matlab窗口命令、answer。
如:数值计算实验一:非线性方程求解
- 问题
非线性方程f(x)=0 - 算法的Matlab源程序
不动点迭代法
3.两个算例(指习题),窗口执行程序,答案
书后习题,且为本学期所学内容的习题,学生任选20题。
评分标准:
1.典型算法,
2.算例的代表性及较高难度,
3.排版布局美观,
4.正文5号字,小标题小4号加粗,大标题3号加粗
说明,封面左上角手写同学在班上的排序号
实验一:不动点迭代法求解非线性方程
1、 问题:对于形如或者可以转化为 的形式的方程,可以将其离散化为数列 的极限收敛值 ,并且传统的算法只适用于单根,迭代的次数由自己给定或者程序达到满足的容错时停止迭代。
function [x_star,k]=iterate_my(fun,x0,ep,Nmax)
if nargin<4
Nmax=10000;
end
if nargin<3
ep=1e-5;
end
x=x0;x0=x+2*ep;k=0;
while abs(x0-x)>ep&&k<Nmax
x0=x;x=fun(x0);
k=k+1;
end
x_star = x;
if k==Nmax
warning('已达到迭代上限')
end
end
改进欧拉法
{
y
′
=
x
−
y
,
y
(
0
)
=
0
,
x
∈
[
0
,
1
]
\left\{ \begin{array}{l} y^{'}=x-y,\\ y(0)=0,\quad\\ \end{array} \right. x\in [0,1]
{y′=x−y,y(0)=0,x∈[0,1]
其通解为:
y
=
e
x
−
x
−
1
y=e^x-x-1
y=ex−x−1
算法为:
clear;clc;
dyfun=inline('x+y','x','y');
xspan=0:1;
y0=0;h=0.1;
[x,y]=eulerg3(dyfun, xspan,y0,h);
figure
scatter(x,y,30)
hold on
yy=-x-1+exp(x);
plot(x,yy,'linewidth',1.5)
legend('orlur','thesis')
function [x,y]=eulerg3(dyfun, xspan,y0,h)
%改进的Buler格式解常微分方程y' =f(x,y) ,y(x0)=yO
% [x,y]=eulerg3(dyfun ,xspan,yO,h)
% dyfun为函数f(x,y) ,xspan,为求解区间[x0,xN] ,y0为初值
% h为步长,x返回节点,y返回数值解
x=xspan(1):h:xspan(2);
y(1)=y0;
for n=1 :length(x)-1.
k1=feval(dyfun,x(n) ,y(n));
y(n+1)=y(n)+h*k1;
k2=feval(dyfun,x(n+1) ,y(n+1));
y(n+1)=y(n)+h* (k1+k2)/2;
end
x=x' ;y=y' ;
end
结果:
更多作业案例见:
一个是理工大数值分析A的题:
https://download.csdn.net/download/abcwsp/20034006?spm=1001.2014.3001.5501