椭圆形方程用超松弛迭代法matlab程序实验报告

合集下载

迭代法解线性方程组数值分析实验报告

迭代法解线性方程组数值分析实验报告

迭代法解线性方程组数值分析实验报告一、实验目的本次实验旨在深入研究和掌握迭代法求解线性方程组的基本原理和方法,并通过数值实验分析其性能和特点。

具体目标包括:1、理解迭代法的基本思想和迭代公式的推导过程。

2、掌握雅克比(Jacobi)迭代法、高斯赛德尔(GaussSeidel)迭代法和超松弛(SOR)迭代法的算法实现。

3、通过实验比较不同迭代法在求解不同类型线性方程组时的收敛速度和精度。

4、分析迭代法的收敛性条件和影响收敛速度的因素。

二、实验原理1、线性方程组的一般形式对于线性方程组$Ax = b$,其中$A$ 是$n×n$ 的系数矩阵,$x$ 是$n$ 维未知向量,$b$ 是$n$ 维常向量。

2、迭代法的基本思想迭代法是从一个初始向量$x^{(0)}$出发,按照某种迭代公式逐步生成近似解序列$\{x^{(k)}\}$,当迭代次数$k$ 足够大时,$x^{(k)}$逼近方程组的精确解。

3、雅克比迭代法将系数矩阵$A$ 分解为$A = D L U$,其中$D$ 是对角矩阵,$L$ 和$U$ 分别是下三角矩阵和上三角矩阵。

雅克比迭代公式为:$x^{(k+1)}= D^{-1}(b +(L + U)x^{(k)})$。

4、高斯赛德尔迭代法在雅克比迭代法的基础上,每次计算新的分量时立即使用刚得到的最新值,迭代公式为:$x_i^{(k+1)}=(b_i \sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})/a_{ii}$。

5、超松弛迭代法在高斯赛德尔迭代法的基础上引入松弛因子$\omega$,迭代公式为:$x_i^{(k+1)}= x_i^{(k)}+\omega((b_i \sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}\sum_{j=i}^{n}a_{ij}x_j^{(k)})/ a_{ii} x_i^{(k)})$。

matlab实验报告

matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告实验一班级:软件131姓名:陈万全学号:132852一、实验目的1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。

2、掌握MATLAB常用命令的使用。

3、掌握MATLAB帮助系统的使用。

4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。

二、实验内容1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。

图1 MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。

例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。

lookfor:用来寻找未知的命令。

例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。

找到所需的命令後,即可用help进一步找出其用法。

(2)数据显示格式:常用命令:说明format short 显示小数点后4位(缺省值)format long 显示15位format bank 显示小数点后2位format + 显示+,-,0format short e 5位科学记数法format long e 15位科学记数法format rat 最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。

具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x) -----显示变量X的内容clear -----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据三、源程序和实验结果1、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

三种迭代法matlab程序 数值分析

三种迭代法matlab程序 数值分析

• for k=1:max1
• for j=1:N

if j==1

X(1)=(b(1)-A(1,2:N)*P(2:N))/A(1,1);

elseif j==N

X(N)=(b(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N);

else

X(j)=(b(j)-A(j,1:j-1)*X(1:j-1)-A(j,j+1:N)*P(j+1:N))/A(j,j);

end
• end
• err=abs(norm(X'-P));
• P=X';
• if(err<delta)

break
• end
• end
• X=X';
• err,k
雅可比迭代法的Matlab程序
给 定 初 始 值 X P0 , 用 雅 克 比 迭 代 法 求 解 线 性 方 程 组
AX b,并生成序列Pk ,求不超过误差界的近似解。
• for k=1:max1
• for j=1:N

if j==1

X(1)=(b(1)-A(1,2:N)*P(2:N))/A(1,1);

elseif j==N

X(N)=(b(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N);

else

X(j)=(b(j)-A(j,1:j-1)*X(1:j-1)-A(j,j+1:N)*P(j+1:N))/A(j,j);
function X=jacobi(A,b,P,delta,max1) %A是n维非奇异阵。%b是n维向量。%P是初值。%delta是误差界。 %max1是给定的迭代最高次数。%X为所求的方程组AX=b的近似解。 N=length(b); for k=1:max1 for j=1:N

(完整版)6.4超松弛迭代法

(完整版)6.4超松弛迭代法

0.75 x2( ( k 1)
6 0.25x3(k
)
7.5
x (k 1) 3
0.25x2(k1)
6
②取ω=1.25 ,即SOR迭代法:
xx21((kk11))
0.25x1(k) 0.9375x2(k) 7.5 0.9375x1(k1) 0.25x2(k) 0.3125x3(k)
-5.0183105
3.1333027
4.0402646
-5.0966863
4
3.0549316
3.9542236
-5.0114410
2.9570512
4.0074838
-4.9734897
5
3.0343323
3.9713898
-5.0071526
3.0037211
4.0029250
-5.0057135
6
3.0214577
3.9821186
-5.0044703
2.9963276
4.0009262
-4.9982822
7 3.0134110
3.9888241
-5.0027940
3.0000498
4.0002586
-5.0003486
迭代法若要精确到七位小数, Gauss-Seidel迭代法需要34次迭代; 而用SOR迭代法(ω=1.25),只需要14次迭代。
因子ω。
返回引用
opt
(1
2
1 [(BJ )]2 )
(4)
这时,有ρ(Bopt
)=
ω
opt
-
1。
SOR法分类与现状
通常,
(1)当ω>1 时,称为超松弛算法; (2)当ω<1 时,称为亚松弛算法。

线性方程组求解的迭代法及Matlab的应用

线性方程组求解的迭代法及Matlab的应用

线性方程组求解的迭代法及Matlab的应用2 定常迭代法 32.1 雅可比迭代法 42.2 高斯-赛德尔迭代法 42.3 超松弛迭代法 52.4 迭代的收敛性分析 62.5 实例 73 不定常迭代 93.1 最速下降法 93.2 共轭梯度法 103.3 实例 114 Matlab在定常迭代与不定常迭代中的应用 124.1 雅可比迭代法的程序 124.2 高斯-赛德尔迭代的程序 134.3 超松弛迭代的程序 134.4 最速下降法的程序 144.5 共轭梯度法的程序 144.6 Matlab实现的实例 154.6.1 定常迭代的收敛速度的比较 154.6.2 超松弛迭代法松弛因子的选择 164.6.3 不定常迭代的收敛速度的比较 18参考文献 20致谢 211 引言1.1 课题的目的和意义数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。

为计算数学的主体部分。

它的主要内容有插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。

数值分析这门学科有如下特点:面向计算机;有可靠的理论分析;要有好的计算复杂性;要有数值实验;要对算法进行误差分析。

:在许多工程实际应用中,超大规模的线性方程组的数值解法是时常要遇到的问题。

由于线性方程组的维数巨大,给具体的计算带来很大的问题——算法对计算机的内存需求大,算法的收敛速度慢以及计算舍人误差的累积扩张。

这些往往使理论上较好的算法无法真正的应用到工程实际中,因此寻求一种真正能实际应用的数值算法一直是人们关注的问题。

通常求解线性方程组一般可以分为直接解法和迭代解法。

现在流行的算法一般采用迭代的算法来求解线性方程组,这主要是为了加快求解的速度。

另外由于计算机的发展,在许多领域里涌现了一些新型的算法如神经网络,遗传算法,粒子群算法,模拟退火算法以及蚁群算法等。

超松弛迭代法课程设计

超松弛迭代法课程设计

超松弛迭代法课程设计一、课程目标知识目标:1. 学生能理解超松弛迭代法的概念,掌握其基本原理和应用场景。

2. 学生能够运用超松弛迭代法解决线性方程组问题,并理解其收敛性。

3. 学生能了解超松弛迭代法在工程和科学计算中的重要性。

技能目标:1. 学生能够独立进行超松弛迭代法的计算步骤,包括设定松弛因子、构造迭代矩阵等。

2. 学生能够运用数学软件(如MATLAB)实现超松弛迭代法的算法,并进行简单的程序调试。

3. 学生通过实际案例分析,培养运用超松弛迭代法解决实际问题的能力。

情感态度价值观目标:1. 学生通过学习超松弛迭代法,培养对科学计算和数学建模的兴趣,增强对数学学科的学习信心。

2. 学生在小组讨论和合作中,学会尊重他人意见,培养团队协作精神。

3. 学生能够认识到超松弛迭代法在科技发展中的重要作用,增强科技创新意识和社会责任感。

课程性质:本课程为高中数学选修课,以培养学生解决实际问题能力和数学思维能力为目标。

学生特点:学生具备一定的线性代数基础,具有较强的逻辑思维能力和动手操作能力。

教学要求:教师应注重理论与实践相结合,引导学生通过实际案例掌握超松弛迭代法的应用。

同时,注重培养学生的团队协作能力和创新意识。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过课堂讲解、上机实践和小组讨论等多种教学方式,提高学生的学习效果。

二、教学内容1. 引言:介绍超松弛迭代法的背景和在实际问题中的应用,激发学生学习兴趣。

相关教材章节:第二章第四节“迭代法及其应用”。

2. 基本概念:讲解超松弛迭代法的基本原理,包括迭代格式、松弛因子选取等。

相关教材章节:第二章第四节“超松弛迭代法”。

3. 算法实现:详细讲解超松弛迭代法的计算步骤,并通过实例进行演示。

相关教材章节:第二章第四节“超松弛迭代法的计算步骤”。

4. 实践应用:分析实际案例,让学生动手实践,运用超松弛迭代法解决线性方程组问题。

相关教材章节:第二章第五节“迭代法解决实际问题”。

SOR迭代法超松弛因子选取

《计算方法》实验报告(二)实验名称:SOR迭代法松弛因子的选取班级:数学1402班姓名:高艺萌学号:14404210一、实验目的通过本实验学习线性方程组的SOR迭代解法以及SOR迭代法的编程与应用。

对比分析不同条件下的超松弛因子的取值大小会对方程组的解造成影响,通过这个实验我们可以了解的不同取值会对方程组的解产生的影响。

培养编程与上机调试能力。

二、实验题目用逐次超松弛(SOR)迭代法求解方程组,其中(1)给定迭代误差,选取不同的超松弛因子进行计算,观察得到的近似解向量并分析计算结果,给出你的结论;(2)给定迭代误差,选取不同的超松弛因子进行计算,观察得到的近似解向量并分析计算结果,给出你的结论;三、实验原理1.逐次超松弛迭代法可以看作Gauss-Seidel迭代法的加速,2.SOR迭代计算格式其中,w叫松弛因子,当w>1时叫超松弛,0<w<1时叫低松弛,w=1时就是Gauss-Seidel迭代法。

3.利用SOR迭代算法进行求解。

4.算法原理:SOR迭代法%masor.mfunction x=masor(A,b,omega,x0,ep,N)n=length(b);if nargin<6,N=500;endif nargin<5,ep=1e-6;endif nargin<4,x0=zeros(n,1);endif nargin<3,omega=1.5;endx=zeros(n,1);k=0;while k<Nfor i=1:nif i==1 x1(1)=(b(1)-A(1,2:n)*x0(2:n))/A(1,1);else if i==n x1(n)=(b(n)-A(n,1:n-1)*x(n:n-1)/A(n,n);else x1(i)=(b(i)-A(i,1;i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n))/A(i,i); endendx(i)=(1-omega)*x0(i)+omega*x1(i); endif norm(x0-x,inf)<ep,break;endk=k+1;x0=x; endif k==N Warning; enddisp([’k=’,num2str(k)])运行程序四、实验内容根据实验题目,分别对问题一,问题二进行求解。

超松弛迭代法

超松弛迭代法
超松弛迭代法是一种回归模型的最优化算法,主要用于减少损失函数。

如果损失函数是凸函数,则可以使用自动对准算法来使目标函数最小,以备测试目标模型。

超松弛迭代法的技术流程如下:
1. 定义初始参数:设置参数的初始值x0。

2. 迭代:通过迭代公式X[i + 1] = (1 –λ) X[i] + λF(X[i])来更新X[i],得到新的迭代值。

3. 收敛:检查超参数δ和终止准则,查看目标函数值是否趋于收敛。

4. 调整超参数:如果目标函数值没有收敛,则可以尝试调整超参数X0和λ来降低目标函数值。

5. 返回最优化结果:将参数X[i]返回到最终收敛状态,即最优化结果。

matlab 拟合 椭圆

matlab 拟合椭圆拟合椭圆是指通过给定的数据点,利用数学模型来确定一个最佳的椭圆曲线,使得这个曲线能够最好地拟合这些数据点。

在Matlab中,可以使用最小二乘法来拟合椭圆,通过最小化数据点与拟合曲线之间的误差来确定椭圆的参数。

拟合椭圆在很多领域中都有着广泛的应用,比如图像处理、计算机视觉、遥感等。

在这些领域中,往往需要对椭圆进行精确的描述和拟合,以便进行进一步的分析和处理。

我们需要了解椭圆的数学模型。

椭圆可以由以下方程表示:(x-h)^2/a^2 + (y-k)^2/b^2 = 1其中,(h,k)表示椭圆的中心坐标,a和b分别表示椭圆在x轴和y 轴上的半轴长度。

在Matlab中,可以使用非线性最小二乘法来拟合椭圆。

首先,我们需要准备一组数据点,这些数据点应该尽可能地分布在椭圆上。

然后,通过调用Matlab的拟合函数,传入数据点和椭圆模型,即可得到拟合后的椭圆参数。

具体操作如下:1. 导入数据:首先,我们需要将准备好的数据点导入Matlab中。

可以使用csvread函数或者直接将数据点赋值给一个矩阵。

2. 定义拟合函数:在Matlab中,可以使用自定义函数来描述椭圆模型。

定义一个函数,输入为椭圆参数和数据点,输出为拟合误差。

3. 调用拟合函数:通过调用Matlab的拟合函数,传入数据点和自定义的椭圆模型函数,即可得到拟合后的椭圆参数。

4. 绘制拟合结果:最后,可以使用Matlab的绘图函数将拟合结果显示出来,以便观察拟合效果。

需要注意的是,在拟合椭圆的过程中,可能会遇到一些问题。

比如,数据点不够或者分布不均匀,可能会导致拟合结果不准确。

此时,可以尝试增加数据点或者调整数据分布,以获得更好的拟合效果。

总结起来,拟合椭圆是一种常用的数学建模方法,它可以通过最小二乘法来确定椭圆的参数,使得拟合曲线与给定的数据点最为接近。

在Matlab中,可以使用自定义函数和拟合函数来实现椭圆的拟合,并通过绘图函数将拟合结果可视化。

matlab数学实验报告

MATLAB数学实验报告指导老师:班级:小组成员:时间:201_/_/_Matlab第二次实验报告小组成员:1题目:实验四;MATLAB选择结构与应用实验目的:掌握if选择结构与程序流程控制;重点掌握break;return;pause语句的应用..问题:问题1:验证“哥德巴赫猜想”;即:任何一个正偶数n>=6均可表示为两个质数的和..要求编制一个函数程序;输入一个正偶数;返回两个质数的和..问题分析:由用户输入一个大于6的偶数;由input语句实现..由if判断语句判断是否输入的数据符合条件..再引用质数判断函数来找出两个质数;再向屏幕输出两个质数即可..编程:function z1;z2=geden;n=input'please input n'if n<6disp'data error';returnendif modn;2==0for i=2:n/2k=0;for j=2:sqrtiif modi;j==0k=k+1;endendfor j=2:sqrtn-iif modn-i;j==0k=k+1;endendif k==0fprintf'two numbers are'fprintf'%.0f;%.0f';i;n-ibreakendendend结果分析:如上图;用户输入了大于6的偶数返回两个质数5和31;通过不断试验;即可验证哥德巴赫猜想..纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰;更快的解决问题..2题目:实验四;MATLAB选择结构与应用实验目的:用matlab联系生活实际;解决一些生活中常见的实际问题..问题:问题四:在一边长为1的四个顶点上各站有一个人;他们同时开始以等速顺时针沿跑道追逐下一人;在追击过程中;每个人时刻对准目标;试模拟追击路线;并讨论.. (1)四个人能否追到一起(2)若能追到一起;每个人跑过多少路程(3)追到一起所需要的时间设速率为1问题分析:由正方形的几何对称性和四个人运动的对称性可知;只需研究2个人的运动即可解决此问题..编程:hold onaxis0 1 0 1;a=0;0;b=0;1;k=0;dt=0.001;v=1;while k<10000d=norma-b;k=k+1;plota1;a2;'r.';'markersize';15;plotb1;b2;'b.';'markersize';15;fprintf'k=%.0f b%.3f;%.3f a%.3f;%.3f d=%.3f\n';k;b1;b2;a1;a2;da=a+b1-a1/d*dt;b2-a2/d*dt;b=b+b2-a2/d*dt;-b1-a1/d*dt;if d<=0.001breakendendfprintf'每个人所走的路程为:%.3f';k*v*dtfprintf'追到一起所需要的时间为%.3f';k*dt结果分析:上图为2人的模拟运动路线;有对称性可解决所提问题..-上图为运算过程和运算结果..四个人可以追到一起;走过的路程为1.003;时间也为1.003.纪录:此题利用正方形和运动的对称性可以简便运算..3题目:实验八;河流流量估计与数据插值目的:由一些测量数据经过计算处理;解决一些生活实际问题..问题:实验八上机练习题第三题:瑞士地图如图所示;为了算出他的国土面积;做以下测量;由西向东为x轴;由南向北为y轴;从西边界点到东边界点划分为若干区域;测出每个分点的南北边界点y1和y2;得到以下数据mm..已知比例尺1:2222;计算瑞士国土面积;精确值为41288平方公里..测量数据如下:x=7.0 10.5 13.0 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106 111.5 118 123.5 136.5 142 146 150 157 158 ;y1=44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68;y2=44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68;问题分析:先由题目给定的数据作出瑞士地图的草图;再根据梯形法;使用trapz语句;来估算瑞士国土的面积..编程:x=7.0 10.5 13.0 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106 111.5 118 123.5 136.5 142 146 150 157 158;y1=44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68;y2=44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68;plotx;y1;'r.';'markersize';15;plotx;y2;'r.';'markersize';15;axis0 160 0 135grid;hold ont=7:158;u1=splinex;y1;t;u2=splinex;y2;t;plott;u1plott;u2s1=trapzt;u1;s2=trapzt;u2;s=s2-s1*2222*22222/10000000;fprintf'S=%.0f';s结果分析:上图为由所给数据绘制出的瑞士地图..上图为运算结果;计算出瑞士的国土面积为42472平方公里;与准确值41288较为接近..纪录:使用梯形分割的方法;trapz语句可以方便计算不规则图形面积;但存在一定误差..4题目:实验七:圆周率的计算与数值积分目的:将数值积分最基本的原理应用于matlab之中;解决一些与积分有关的问题..问题:实验七上机练习题第一题:排洪量某河床的横断面如图7.3所示;为了计算最大排洪量;需要计算其断面积;试根据所给数据m用梯形法计算其断面积..问题分析:河床断面可近似分割成若干曲边梯形;近似处理把它们当做梯形来计算面积可使问题得到简化..编程:clc;clear;x=0 4 10 12 15 22 28 34 40;y=0 1 3 6 8 9 5 3 0;y1=10-y;plotx;y1;'k.';'markersize';15;axis0 40 0 10;grid;hold ont=0:40;u=splinex;y1;t;plott;u;s=40*10-trapzt;u;fprintf's=%.2f\n';s结果分析:上图为河床的断面图..上图为计算结果面积约为180.70平方米..纪录:使用梯形法计算不规则图形面积十分简便易行..5题目:实验七:圆周率的计算与数值积分目的:使用matlab计算解决一些有关积分的问题..问题:实验七上机练习题第三题:从地面发射一枚火箭;在最初100秒内记录其加速度如下;试求火箭在100秒时的速度..Ts=0 10 20 30 40 50 60 70 80 90 100;Am/s*s=30.00 31.63 33.44 35.47 37.75 40.33 43.29 46.69 50.67 54.01 57.23;问题分析:加速度为速度的微分;已知微分求积分;类似于面积问题;可使用梯形法来计算..编程:clc;clear;x=0 10 20 30 40 50 60 70 80 90 100;y=30.00 31.63 33.44 35.47 37.75 40.33 43.29 46.69 50.6754.01 57.23;plotx;y;'k.';'markersize';15;axis0 100 20 60;grid;hold ons=0:10:100;z=splinex;y;s;plots;y;v=trapzx;y;fprintf'v=%.2f\n';v结果分析:上图为加速度变化图..上图为计算结果;求得火箭在100秒时速度约为4168.95m/s..纪录:梯形法可以推广解决许多已知微分求积分的其他问题..6题目:实验七:圆周率的计算与数值积分目的:计算曲线弧长闭曲线周长可使用微元法;ds=sqrtdx^2+dy^2;在转化微积分问题;累加即可得到结果..问题:实验七上机练习题第三题:计算椭圆想x^2/4+y^2=1的周长;使结果具有五位有效数字..问题分析:编程:s=0;dx=0.001;for x=0:0.001:1.999dy=1.-x+0.001.^2/4-1.-x.^2/4;ds=sqrtdx.^2+dy.^2;s=s+ds;ends=4*s;fprintf'the length is'fprintf'%.4f';s结果分析:上图为计算结果;给定椭圆的周长约为9.1823五位有效数字纪录:计算不规则曲线弧长;可使用微元法;划分为若干小的看做直角三角形;利用勾股定理解决..7题目:实验九人口预测与数据拟合目的:掌握一些曲线拟合的方法;了解曲线拟合常用函数..问题:用电压U=10v的电池给电容器充电;t时刻的电压Vt=U-U-V0exp-t/τ;其中V0是电容器的初始电压;τ是充电常数;由所给数据确定V0和τ..t=0.5 1 2 3 4 5 7 9;V=3.64 3.52 2.74 1.78 1.34 1.01 0.57 0.37;问题分析:题中已给出函数关系式;为指数函数曲线拟合;将所给函数式整理可得标准的exp形函数曲线;从而便于解决..编程:t=0.5 1 2 3 4 5 7 9;V=3.64 3.52 2.74 1.78 1.34 1.01 0.57 0.37;plott;V;'k.';'markersize';20;axis0 10 0 4;grid;hold onpause0.5n=8;a=sumt1:n;b=sumt1:n.*t1:n;c=sumlogV1:n;d=sumt1:n.*logV1:n;A=n a;a b;B=c;d;p=invA*Bx=0:10;y=expp1+p2*x;plotx;y;'r-';'linewidth';2结果分析:上图为电压与时间关系图..上图为计算结果;即U-V0=1.4766;所以V0=8.5234;-1/τ=-0.2835;所以τ=3.5273纪录:曲线拟合的一个重难点是选择合适的曲线函数;才能提高拟合度..8题目:实验七圆周率的计算与数值积分目的:拓展圆周率的各种计算方法;掌握其他数值的近似计算方法..问题:实验七练习2:计算ln2的近似值精确到10的-5次方(1)利用级数展开的方法来计算(2)利用梯形法计算(3)利用抛物线法问题分析:级数展开;梯形法;抛物线法是常见的近似运算方法..编程:1级数展开的方法clc;clear;n=0;r=1;p=0;k=-1;while r>=0.1e-5n=n+1;k=k*-1;p1=p+k/n;r=absp1-p;fprintf'n=%.0f;p=%.10f\n';n;p1;p=p1;end2梯形法clc;clear;f=inline'1./x';x=1:0.1:2;y=fx;p=trapzx;y;fprintf'p=%.6f\n';p3抛物线法clc;clear;f=inline'1./x';a=1;b=2;n=1;z=quadf;a;b;fprintf'z=%.10f\n';z结果分析:(1)级数展开的方法(2)梯形法3抛物线法纪录:级数展开法;梯形法;抛物线法;计算近似值时应合理利用..梯形法和抛物线法不易提高精确度;级数展开法可以提高精确度..9题目:实验八河流流量估计与数据插值目的:掌握求插值多项式的方法;并利用此计算近似值..问题:已知y=fx的函数表如下x=0.40 0.55 0.65 0.80 0.90 1.05;y=0.41075 0.57815 0.69675 0.88811 1.02652 1.25382;求四次拉格朗日插值多项式;并由此求f0.596问题分析:利用所给函数表可计算拉格朗日插值多项式..编程:function p=lagrangex;yL=lengthx;a=onesL;for j=2:La:;j=a:;j-1.*x';endx=inva*y';for i=1:Lpi=xL-i+1;endx=0.40 0.55 0.65 0.80 0.90 1.05;y=0.41075 0.57815 0.69675 0.88811 1.02652 1.25382; plotx;y;'k.';'markersize';15axis0 2 0 2grid;hold on;p=lagrangex;y;t=0:0.1:1.5;u=polyvalp;t;plott;u;'r-'a=polyvalp;0.596结果分析:上图为所求结果;估算值和插值多项式..纪录:插值多项式是一项十分实用的方法..10题目:求正整数n的阶乘:p=1*2*3*…*n=n;并求出n=20时的结果目的:练习使用循环变量解决数学问题问题:对程序:Clear;clc;n=20;p=1;for i=1:np=p*i;fprintf’i=%.0f;p=%.0f\n’;i;pend进行修改使它:利用input命令对n惊醒赋值问题分析:题中给出程序中“n=20”修改;使用input命令;讲题中的输出命令放出循环之外..编程:clear;clc;n=input'n=';p=1;for i=1:np=p*i;endfprintf'i=%.0f;p=%.0f\n';i;p结果:n=20i=20;p=2432902008176640000>>结果分析:使用input命令可以实现人机对话;使用户自由赋值;输出语句在程序中的位置对输出的结果有很大的影响;在循环内部可以在计算过城中不断输出结果;在循环之外则可以控制只输出最后结果..11题目:对于数列{√2};n=1;2;…;求当其前n项和不超过1000时的n的值及合的大小..目的:运用条件循环解决文帝个项数的循环程序求解;问题:对程序:clear;clc;n=0;s=0;while s<=1000n=n+1;s=s+sqrtn;fprintf’n=%.0f;s=%.4f\n’;n;send问题分析:题中所给程序中的限制变量为上次循环之后的s;导致s超过上限后仍有一次的循环;若把循环变量改为这次的s;则可以避免这种情况的发生..编程:clear;clc;n=0;s=0;while s+sqrtn<=1000n=n+1;s=s+sqrtnfprintf'n=%.0f;s=%.4f\n';n;send结果:……s =970.8891n=128;s=970.8891s =982.2469n=129;s=982.2469s =993.6487n=130;s=993.6487>>结果分析:从结果中可以看出;最后一步为我们需要的答案;从这道题我们可以得出循环变量对一道编程的重要性..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

椭圆形方程用超松弛迭代法matlab程序实验报告
首先建立了两个初始点,将点代入方程并对初值求导得到一个近似解。

然后通过调用 init 函数来获取方程的一组超松弛迭代法的超松弛迭代算子,最终使得此近似解收敛于初始值。

接着设计一个初值,对方程求导,获取一个近似解。

然后再调用 init 函数,这次是将上述近似解作为一个超松弛迭代器来运行。

第二步,调用 beginmethod 与 dodgef t 函数开始超松弛迭代,并将其运行时间长度设置为任意值。

此外,在 next 和endwith 等函数中还会给出一些控制信息以指明下一步要运行的算子是否需要计算。

第三步,对每个新算子的执行过程都进行有效性检查,一旦发现有无法继续运行或结果不正确则立即停止。

由于本实验只涉及了用超松弛迭代法求解初值问题,因而并没有考虑后面可能遇到的其他问题,比如求解对称方程、求解微分方程或是运行带有随机数生成功能的程序等。

再给椭圆拟合直线,使其在空间中与另一条曲线相切,该问题也可看做是求非定常问题的一种形式,且更容易加以处理。

根据数学基础知识,可知曲线切点处,曲率为零,这里仍采用平均半径公式。

于是便将曲线切点处圆心到直线交点的距离代入到切线斜率中,从而得到非线性方程:,此方程可看做非线性抛物线的特征方程,当取平均半径公式时即可求得斜率与截距,这样就解决了此类问题。

最后,我们利用具体例子研究了奇异值分解算法。

由于存在大
量的奇异值分解算法,所以它对数据分析工作者很有吸引力。

经典的分解算法大多是由某些特殊函数构造而成的,这种算法不仅结构复杂,计算量巨大,而且往往在处理边界较多的问题时十分困难。

总之,对于初值的求解方法,最重要的便是将一般问题转化为简单的非线性问题,但同时又必须保证这些非线性问题可解。

本文从初值问题的性质出发,通过对算法、超松弛迭代法、奇异值分解算法等几方面的讨论,最终探索了这类问题的处理方法,希望对读者有帮助!。

相关文档
最新文档