理工大数值计算A结课作业解答

大学数值计算A结课作业

数值计算A考核标准

十道大题,类似于实验报告,word文档打印出来

封面:数值计算实验
学院、班级、学号、姓名、指导老师高秉建
目录:实验一…,实验二…,…,实验十…

正文每个实验包括,1.问题,2.算法的Matlab源程序,
3.两个算例、Matlab窗口命令、answer。

如:数值计算实验一:非线性方程求解

  1. 问题
    非线性方程f(x)=0
  2. 算法的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=xy,y(0)=0,x[0,1]
其通解为:
y = e x − x − 1 y=e^x-x-1 y=exx1
算法为:

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值