计算方法上机作业集合

合集下载

数值上机作业1

数值上机作业1

数值计算方法课程设计姓名高振翔学号201211011066班级信计12-2成绩:1编写秦九韶算法程序,并用该程序计算多项式623)(35+-+=x x x x f 在1.3 1.2, ,1.1=x 的值function value=qinjiushao(A,x)n=length(A);F=zeros(n);F(1)=A(1);for i=1:n-1F(i+1)=F(i)*x+A(i+1);endvalue=F(n)disp('真值')polyval(A,x)程序:function s=qinjiuzhao(a,x)n=length(a);s=a(1);for k=2:n;s=s*x+a(k);end3. 调试:a=[1 0 3 –2 6];s=qinjiuzhao(a,1,1)s=qinjiuzhao(a,1,2)s=qinjiuzhao(a,1,3)结果:s=9.4035 s=11.2723 s=13.70392. *用选列主元高斯消去法解线性方程组⎪⎪⎩⎪⎪⎨⎧=+-=-+-=-+-=--02 02 0 21 34343232121x x x x x x x x x x 计算的matlab 程序:tic%运行时间命令A=[-3 -1 0 0;-1 2 -1 0;0 -1 2 -1;0 0 -1 2]; b=[1 0 0 0]'; ];%A 系数矩阵,b 为n 维向量 y=inv(A)*b; %matlab 的计算结果y= -0.2667-0.2000-0.1333-0.0667n=length(b); x=zeros(n,1); %方程个数n;x 未知向量%——以下消为去过程——for k=1:n-1% if A(k,k)=0;% error('Error');% endfor i=k+1:n% A(i,k)=A(i,k)/A(k,k);Aik=A(i,k)/A(k,k)for j=k:nA(i,j)=A(i,j)-Aik*A(k,j);endAb(i)=b(i)-Aik*b(k)endend%——回代——Aik =0.3333A =-3.0000 -1.0000 0 00 2.3333 -1.0000 00 -1.0000 2.0000 -1.00000 0 -1.0000 2.0000b =1.0000-0.3333Aik =A =-3.0000 -1.0000 0 00 2.3333 -1.0000 00 -1.0000 2.0000 -1.00000 0 -1.0000 2.0000b =1.0000-0.3333Aik =A =-3.0000 -1.0000 0 00 2.3333 -1.0000 00 -1.0000 2.0000 -1.00000 0 -1.0000 2.0000b =1.0000-0.3333Aik =-0.4286A =-3.0000 -1.0000 0 00 2.3333 -1.0000 00 0 1.5714 -1.00000 0 -1.0000 2.0000b =1.0000-0.3333-0.1429Aik =A =-3.0000 -1.0000 0 00 2.3333 -1.0000 00 0 1.5714 -1.00000 0 -1.0000 2.0000b =1.0000-0.3333-0.1429Aik =-0.6364A =-3.0000 -1.0000 0 00 2.3333 -1.0000 00 0 1.5714 -1.00000 0 0 1.3636b =1.0000-0.3333-0.1429-0.0909>> x(n)=b(n)/A(n,n)x =-0.0667>> for k=n-1:-1:1S=b(k);for j=k+1:nS=S-A(k,j)*x(j);endx(k)=S/A(k,k)endx =-0.1333-0.0667x =-0.2000-0.1333-0.0667x =-0.2667-0.2000-0.1333-0.0667>> xx =-0.2667-0.2000-0.1333-0.0667>> error=abs(x-ones(n,1)) ))%误差error =1.26671.20001.13331.0667toc%运行时间命令运行时间:348.6710结构分析:在用高斯消去法求解方程组的解,化为阶梯型时,主元过小可能产生麻烦,会产生很大的误差,既小主元要在分母上,产生的误差变化很大,所以应避免采用绝对值最小的主元素,对于一般矩阵来说,最好每一步选取系数矩阵或消元后的低阶矩阵中绝对值最大的元素作为主元素,使高斯消去法具有较好的稳定性,主要使用列主元消去法!小结:在求解方程组时,使用列主元消去法,先判定方程组的系数矩阵非奇异,然后进行行变换,按列主元消去法化为阶梯型,当计算到系数行列式为0时计算停止,然后在回代求解最终求得原方程组的解。

计算方法上机作业——龙格库塔法

计算方法上机作业——龙格库塔法

计算方法上机作业——龙格库塔法龙格库塔法(Runge-Kutta method)是一种常用于求解常微分方程(Ordinary Differential Equation,ODE)的数值解法。

它是由德国数学家卡尔·龙格(Carl Runge)和马丁·威尔海姆·库塔(Martin Wilhelm Kutta)在20世纪初提出的。

龙格库塔法的基本思想是通过数值逼近来计算微分方程的近似解。

在讲解龙格库塔法之前,我们先来简单回顾一下ODE的一阶常微分方程的基本形式:y′(y)=y(y,y)其中,y(y,y)是已知函数。

龙格库塔法的核心是使用差分逼近计算函数的斜率。

假设我们要求解的方程为:y′(y)=y(y,y),y(y)=y₀所需计算的点为y₀,y₁,...,yy,对应的函数值为y₀,y₁,...,yy,其中y是步长的个数。

龙格库塔法通过递推关系式来计算估计值,并不断更新当前点的函数值。

接下来以龙格库塔法的经典四阶形式为例进行说明。

该方法的基本方程如下:yy+1=yy+(y₁+2y₂+2y₃+y₄)/6y₁=ℎy(yy,yy)y₂=ℎy(yy+ℎ/2,yy+y₁/2)y₃=ℎy(yy+ℎ/2,yy+y₂/2)y₄=ℎy(yy+ℎ,yy+y₃)其中y表示当前步骤,ℎ表示步长,yy表示当前点的函数值,y₁,y₂,y₃和y₄则表示对应的斜率。

使用龙格库塔法,我们可以通过不断递归计算来求得指定区间(例如[y,y])上的函数值。

具体步骤如下:1.确定求解区间[y,y]和初始点(y₀,y₀)以及步长ℎ。

2.初始化:设置yy=y₀,yy=y₀。

3.对所有y=0,...,y−1:计算y₁,y₂,y₃和y₄,根据上述递推关系式。

根据递推关系式计算yy+1更新当前点的函数值,即yy+1=y(yy+1)。

更新当前点的y值,即yy+1=yy+ℎ。

4.返回结果:最终求得的函数值。

需要注意的是,选择适当的步长对最终结果的精度和计算效率都有重要影响。

计算方法上机作业集合

计算方法上机作业集合

第一次&第二次上机作业上机作业:1.在Matlab上执行:>> 5.1-5-0.1和>> 1.5-1-0.5给出执行结果,并简要分析一下产生现象的原因。

解:执行结果如下:在Matlab中,小数值很难用二进制进行描述。

由于计算精度的影响,相近两数相减会出现误差。

2.(课本181页第一题)解:(1)n=0时,积分得I0=ln6-ln5,编写如下图代码从以上代码显示的结果可以看出,I 20的近似值为0.7465(2)I I =∫I I 5+I 10dx,可得∫I I 610dx ≤∫I I 5+I 10dx ≤∫I I 510dx,得 16(I +1)≤I I ≤15(I +1),则有1126≤I 20≤1105, 取I 20=1105,以此逆序估算I 0。

代码段及结果如下图所示(3)从I20估计的过程更为可靠。

首先根据积分得表达式是可知,被积函数随着n的增大,其所围面积应当是逐步减小的,即积分值应是随着n的递增二单调减小的,(1)中输出的值不满足这一条件,(2)满足。

设I I表示I I的近似值,I I-I I=(−5)I(I0−I0)(根据递推公式可以导出此式),可以看出,随着n的增大,误差也在增大,所以顺序估计时,算法不稳定性逐渐增大,逆序估计情况则刚好相反,误差不断减小,算法逐渐趋于稳定。

2.(课本181页第二题)(1)上机代码如图所示求得近似根为0.09058 (2)上机代码如图所示得近似根为0.09064;(3)牛顿法上机代码如下计算所得近似解为0.09091第三次上机作业上机作业181页第四题线性方程组为[1.13483.83260.53011.78751.16513.40172.53301.54353.41294.93171.23714.99988.76431.314210.67210.0147][I1I2I3I4]=[9.53426.394118.423116.9237](1)顺序消元法A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147]; b=[9.5342;6.3941;18.4231;16.9237];上机代码(函数部分)如下function [b] = gaus( A,b )%用b返回方程组的解B=[A,b];n=length(b);RA=rank(A);RB=rank(B);dif=RB-RA;if dif>0disp('此方程组无解');returnendif RA==RBif RA==nformat long;disp('此方程组有唯一解');for p=1:n-1for k=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endend %顺序消元形成上三角矩阵b=B(1:n,n+1);A=B(1:n,1:n);b(n)=b(n)/A(n,n);for q=n-1:-1:1b(q)=(b(q)-sum(A(q,q+1:n)*b(q+1:n)))/A(q,q);end %回代求解elsedisp('此方程组有无数组解');endend上机运行结果为>>A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147]; b=[9.5342;6.3941;18.4231;16.9237];>> X=gaus(A,b)此方程组有唯一解X =1.00001.00001.00001.0000>>(2)列主元消元法A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147]; b=[9.5342;6.3941;18.4231;16.9237];函数部分代码如下function [b] = lieZhu(A,b )%用b返回方程组的解B=[A,b];RA=rank(A);RB=rank(B);n=length(b);dif=RB-RA;format long;if dif>0disp('该方程组无解');returnendif dif==0if RA==ndisp('该方程组有唯一解');c=zeros(1,n);for i=1:n-1max=abs(A(i,i));m=i;for j=i+1:nif max<abs(A(j,i))max=abs(A(j,i));m=j;endend %求出每一次消元时绝对值最大的一行的行号 if m~=ifor k=i:nc(k)=A(i,k);A(i,k)=A(m,k);A(m,k)=c(k);endd1=b(i);b(i)=b(m);b(m)=d1;%函数值跟随方程一起换位置endfor k=i+1:nfor j=i+1:nA(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);endb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endend %完成消元操作,形成上三角矩阵b(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+A(i,j)*b(j);endb(i)=(b(i)-sum)/A(i,i) ;%回代求解其他未知数endendelsedisp('此方程组有无数组解');endend上机运行,结果为>>A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147]; b=[9.5342;6.3941;18.4231;16.9237];X=lieZhu(A,b)该方程组有唯一解X =1.00001.00020.99990.9999>>根据两种方法运算结果,顺序消元法得到结果比列主元消元法得到的结果精度更高。

应用计算方法

应用计算方法

结果分析:比较发现,经过两种改进迭代法,求重根时迭代速度明显加快。
3-4 试验目的体验 Steffensen’s method 加速技巧 试验内容:先用 Newton 法求解方程 x-tanx=0 再用 Steffensen 法求解,比较迭代步数。精确到 10-4。 迭代公式: P(k+1)=P(k)-(P(k)-tan(P(k)))/(1-(sec(P(k)))^2) 初值 P0=1 Newton 法: function [ p,k ]=fnewton( p0,max,tol ) for k=1:max p=p0-(p0-tan(p0))/(1-(sec(p0))^2); if abs(p-p0)<tol break; end p0=p; end disp(p); disp(k) % fnewton( 1,100,10^(-4) ) Steffensen 法: function [ p1,k ]=steffensen( p0,max,tol ) n=1; p(1)=p0; while n<=max for k=1:2 p(k+1)=p(k)-(p(k)-tan(p(k)))/(1-(sec(p(k)))^2); end p1=p(1)-(p(2)-p(1))^2/(p(3)-2*p(2)+p(1)); f0=p1-(p1-tan(p1))/(1-(sec(p1))^2); if abs(f0)<tol break; end n=n+1; p(1)=p1; end disp(p1); disp(n) % steffensen( 1,100,10^(-4) ) >> steffensen( 1,100,10^(-4) ) -1.3387e-07 3
3-2 试验目的:考察 Newton 法求单根的收敛速度 应用 Newton 迭代法求 3-1 中的方程,并与 3-1 中的迭代法相比较,考察收敛速度。精确到时 10-4 迭代公式: P(k+1)= P(k)-(2P(k)-eP(k)+3)/(2- eP(k)) 初值 P0=1 和-1。 Newton 法: function [ p,k ] = fnewton( p0,max,tol ) for k=1:max p=p0-(2*p0-exp(p0)+3)/(2-exp(p0)); if abs(p-p0)<tol break; end

计算方法作业集

计算方法作业集

计算方法作业集计算方法是一种对计算过程和计算方法的总称,它包括了许多不同的算法和技术,如数值计算、符号计算、分布式计算等等。

在数学和计算机科学中,计算方法被广泛应用于各种领域,如科学计算、工程设计、数据处理等等。

下面是一些常见的计算方法及其简要描述。

1.迭代法迭代法是一种通过不断重复计算来逼近解的算法。

它通常由一个初始值开始,然后使用一个迭代公式来计算新的值,并将新值作为下一次迭代的输入。

重复执行这个过程,直到新值与旧值之差小于某个预定的阈值。

在数值分析中,迭代法被广泛应用于求解线性方程组、最优化问题等等。

2.枚举法枚举法是一种通过列举所有可能的情况来求解问题的算法。

它通常适用于组合优化问题,如旅行商问题、0-1背包问题等等。

枚举法在求解这些问题时,会列举出所有可能的状态,并逐个检查每个状态是否符合问题的要求。

在某些情况下,枚举法可以通过暴力法实现,即列举出所有可能的状态并逐个比较。

3.分治法分治法是一种将问题分解成若干个子问题,然后分别求解子问题,并将子问题的解合并成原问题的解的算法。

它通常被应用于求解大规模、复杂的问题,如归并排序、快速排序等等。

在分治法中,问题被分成若干个子问题,每个子问题都可以独立求解,然后通过合并子问题的解得到原问题的解。

4.贪心算法贪心算法是一种在每一步选择中都选取当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。

这种算法在求解某些优化问题时具有良好的效果,如霍夫曼编码、最小生成树等等。

贪心算法的关键在于选取局部最优的选择,并希望能够得到全局最优解。

5.动态规划动态规划是一种通过将问题分解为相互重叠的子问题,并存储子问题的解,以避免重复计算的技术。

它通常被应用于求解最优化问题,如最长公共子序列、背包问题等等。

动态规划的关键在于将问题分解为相互重叠的子问题,并存储这些子问题的解以便后续使用。

通过这种方式,动态规划可以避免重复计算,从而提高算法的效率。

求解集合的交集与并集

求解集合的交集与并集

求解集合的交集与并集在数学中,集合是由一组互不相同的元素组成的。

通过集合的交集和并集运算,我们可以找到集合中共有的元素和包含的所有元素。

本文将详细介绍集合的交集和并集的概念、计算方法以及应用场景。

一、集合的交集1. 定义集合A和集合B的交集,表示为A ∩ B,包含同时属于A和B的所有元素。

2. 计算方法计算集合的交集可以通过以下步骤进行:a. 将集合A和集合B中的元素逐个对比;b. 如果某个元素同时存在于A和B中,则将其添加到交集中;c. 最后得到的交集即为A和B的交集。

3. 示例假设集合A={1, 2, 3, 4},集合B={3, 4, 5, 6},计算它们的交集:交集= A ∩ B = {3, 4}4. 应用场景交集运算可以用于实现数据的筛选和匹配。

例如,在数据库查询中,我们可以通过对不同字段进行交集操作,得到满足多个条件的数据。

二、集合的并集1. 定义集合A和集合B的并集,表示为A ∪ B,包含属于A或B的所有元素。

2. 计算方法计算集合的并集可以通过以下步骤进行:a. 将集合A和集合B中的元素逐个对比;b. 将A和B中所有不重复的元素都添加到并集中;c. 最后得到的并集即为A和B的并集。

3. 示例假设集合A={1, 2, 3, 4},集合B={3, 4, 5, 6},计算它们的并集:并集 = A ∪ B = {1, 2, 3, 4, 5, 6}4. 应用场景并集运算可以用于数据的合并和整合。

例如,在多个数据集合合并成一个大数据集时,我们可以使用并集操作将它们的数据整合在一起。

三、交集和并集的关系交集和并集是集合运算中常常遇到的两个概念,它们有一定的关系。

1. 关系表达式交集可以看作是并集的子集。

即如果A和B的交集为C,则C必定是A和B的并集。

表达式如下:C = A ∩ BC ⊆ A ∪ B2. 示例假设集合A={1, 2, 3, 4},集合B={3, 4, 5, 6},计算它们的交集和并集:交集= A ∩ B = {3, 4}并集 = A ∪ B = {1, 2, 3, 4, 5, 6}交集C={3, 4}是并集中的一部分。

集合的基本运算例题讲解

集合的基本运算例题讲解

1集合的基本运算例题讲解题型一 并集运算一般地,由所有属于集合A 或属于集合B 的元素组成的集合,称为集合A 与集合B 的并集,记作,读作“A 并B ”.即B A .{}B x A x x B A ∈∈=或, 求并集的方法(1)求两个有限集的并集 按照并集的定义进行计算,但要特别注意集合元素的互异性.(2)求两个无限集的并集 借助于数轴进行计算.注意两个集合的并集等于这两个集合在数轴上对应的图形所覆盖的全部范围.例1. 已知集合,,则【 】{}31≤≤∈=x N x A {}5,4,3,2=B =B A (A )(B ) {}2{}3,2(C ) (D ){}5,4,3,2{}5,4,3,2,1分析:将一个用描述法表示的集合转化为用列举法表示时,一定要弄清代表元素的含义或特征.求两个集合的并集运算时,可以按照并集的定义进行,也可以用Venn 图求解或借助于数轴求解.解:∵{}{}3,2,131=≤≤∈=x N x A ∴.=B A {}{}{}5,4,3,2,15,4,3,23,2,1= 选择【 D 】.例2. 已知集合,,则____________. {}1≥=x x A {}0322<--=x x x B =B A 分析:先解一元二次不等式,求出集合B ,然后把集合A 、B 在数轴0322<--x x 上画出来,它们对应图形所覆盖的全部范围即为.B A 解:∵{}{}310322<<-=<--=x x x x x B ∴.=B A {}{}{}1311->=<<-≥x x x x x x例3. 已知集合,,若,则等于【 】{}m A ,3,1={}m B ,1=A B A = m (A )0或(B )0或3 3(C )1或 (D )1或3 3分析:,由集合元素的互异性,得,排除C 、D 选项.{}m B ,1=1≠m 因为,根据并集的性质,所以,这样就将两个集合的并集运算A B A = A B ⊆转化为了这两个集合之间的关系,从而可以确定参数的值或取值范围. 解:∵,∴或A B A = 3=m m m =当时,解之得:(不符合题意,舍去)m m =0=m 1=m 综上,或.3=m 0=m 例4. 已知集合,,若,则实数的取值范围是{}012≤-=x x P {}a M =P M P = a __________.分析:∵,∴.P M P = P M ⊆解:{}{}11012≤≤-=≤-=x x x x P ∵,∴,∴P M P = P M ⊆P a ∈∴实数的取值范围是.a {}11≤≤-a a 例5. 已知集合,,且,求的值.{}x A ,3,2,1={}2,3x B ={}x B A ,3,2,1= x 分析:由题意可知:,所以,从而,且.A B A = A B ⊆A x ∈232≠x 解:分为三种情况:①当时,解之得:(不符合题意,舍去);12=x 1-=x 1=x ②当时,解之得:;22=x 2±=x ③当时,解之得:.x x =20=x 综上所述,的值为0或或.x 2±1-注意:在求参数的值时,参数的值要满足集合元素的互异性.例6. 已知集合,,求.{}32>-=x x A {}a x x x B ->-=332B A 分析:对于含参集合参与的集合运算,要注意分类讨论.解:,.{}{}532>=>-=x x x x A {}{}3332-<=->-=a x x a x x x B 当≤5,即≤8时,;3-a a {}53>-<=x a x x B A 或 当时,即时,R .53>-a 8>a =B Aa 3例7.(易错题)已知集合,,且,求由的取值构{}1,1-=A {}1==mx x B A B A = m 成的集合.分析:因为,所以.由于集合B 是一个含参集合,所以要对集合B A B A = A B ⊆分和两种情况进行讨论.∅=B ∅≠B 解:∵,∴.A B A = A B ⊆当时,,满足;0=m ∅=B A B ⊆当时,或: 0≠m {}11-=⎭⎫⎩⎨⎧==m x x B {}1=B ①若,则,解之得:; {}1-=B 11-=m 1-=m ②若,则,解之得:. {}1=B 11=m1=m 综上所述,的取值构成的集合为.m {}1,0,1-例8. 设集合,,若,则实数{}52<<-=x x M {}122+<<-=t x t x N M N M = t 的取值范围是__________.分析:先将并集运算的结果转化为两个集合M , N 之间的关系M N M = ,从而列出关于参数的不等式(组)求解.注意含参集合的分类讨论. M N ⊆t 解:∵,∴.M N M = M N ⊆分为两种情况:①当时,有≥,解之得:≤; ∅=N t -212+t t 31②当时,则有:∅≠N ,解之得:≤2. ⎪⎩⎪⎨⎧≤+-≥-+<-51222122t t t t t <31综上所述,实数的取值范围是.t {}2≤t t 警示:在解决本题时,任意忽略的情况,另外要注意端点值能否取到. ∅=N 例9. 已知集合,,若,求实数的取值范围. {}2,1-=A {}01>+=mx x B B B A = m 分析:注意本题与例7的区别.解:∵,∴.B B A = B A ⊆分为三种情况:①当时,恒成立,∴R ,满足;0=m 01>{}=>+=01mx x B B A ⊆②当时,,有,解之得: 0>m {}⎭⎫⎩⎨⎧->=>+=m x x mx x B 10111-<-m 1<m ∴;10<<m ③当时,,有,解之得: 0<m {}⎭⎬⎫⎩⎨⎧-<=>+=m x x mx x B 10121>-m 21->m ∴. 021<<-m 综上所述,实数的取值范围是. m ⎭⎬⎫⎩⎨⎧<<-121m m 题型二 交集运算一般地,由属于集合A 且属于集合B 的所有元素组成的集合,称为集合A 与集合B 的交集,记作,读作“A 交B ”.B A .{}B x A x x B A ∈∈=且, 求交集的方法(1)求两个有限集的交集 按照交集的定义进行计算,但要特别注意一定要找出两个集合中的所有公共元素.(或可借助于Venn 图)(2)求两个无限集的交集 借助于数轴进行计算.两个集合的解集等于这两个集合在数轴上对应的图形所覆盖的公共范围.例10. 设集合,集合,则【 】{}01>+∈=x Z x A {}02≤-=x x B =B A (A )(B ) {}21<<-x x {}21≤<-x x (C ) (D ){}2,1-{}2,1,0分析:在进行集合的运算之前,要先弄清楚各个集合的本质.本题中集合A 的代表元素为整数,所以集合A 为范围内的整数集.x 1->x 解:∵,{}{}101->∈=>+∈=x Z x x Z x A {}{}202≤=≤-=x x x x B ∴.=B A {}{}2,1,021=≤<-∈x Z x 选择【 D 】.例11. 设集合,,若,则实数的取值范围{}21<≤-=x x A {}a x x B <=∅≠B A a 是__________.分析:说明集合A 、B 有公共元素,在数轴上集合A 、B 所对应的图形覆∅≠B A 盖的区域有公共部分.解:.{}1->a a例12. 设集合,,若,求实数{}52<<-=x x M {}122+<<-=t x t x N N N M = t 的取值范围.分析:若,则由交集的性质知,在得到这两个集合之间的关系N N M = M N ⊆后借助于数轴就可以列出不等式(组)进行求解了.解:∵,∴.N N M = M N ⊆分为两种情况:①当时,满足,有≥,解之得:≤; ∅=N M N ⊆t -212+t t 31②当时,则有:∅≠N,解之得:≤2. ⎪⎩⎪⎨⎧≤+-≥-+<-51222122t t t t t <31综上所述,实数的取值范围是.t {}2≤t t ★例13.(易错题)设集合,,则{}R x x y y A ∈+==,12{}R x x y y B ∈+==,1B A 等于【 】(A )(B ) {}1≥y y {}2,1(C ) (D )()(){}2,1,1,0∅错解:解方程组得:或,故选【 C 】. ⎩⎨⎧+=+=112x y x y ⎩⎨⎧==10y x ⎩⎨⎧==21y x 错因分析:这里好多学生认为是求抛物线和直线的交点坐标所12+=x y 1+=x y 构成的集合,根源在于没有搞清楚集合A , B 的本质,没有弄清楚集合的代表元素的特征.分析:本题中的两个集合都是由函数值构成的,它们的代表元素是函数值.y 表示函数和函数的函数值的交集.B A 12+=x y 1+=x y 解:∵,R .{}{}1,12≥=∈+==y y R x x y y A {}=∈+==R x x y y B ,1∴R .{} 1≥=y y B A {}1≥=y y 选择【 A 】. 变式: 设集合,,则等于【 】(){}1,2+==x y y x A (){}1,+==x y y x B B A (A )(B ) {}1≥y y {}2,1(C ) (D )()(){}2,1,1,0∅例14. 已知集合,集合,则中元素的个(){}1,22=+=y x y x A (){}x y y x B ==,B A 数为【 】(A )3 (B )2 (C )1 (D )0解:解方程组得: ⎩⎨⎧==+xy y x 122或 ⎪⎪⎩⎪⎪⎨⎧==2222y x ⎪⎪⎩⎪⎪⎨⎧-=-=2222y x ∴,共有2个元素.选择【 B 】. B A ⎭⎬⎫⎩⎨⎧⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛=22,22,22,22方法二:由后面的学习可以知道,方程是单位圆的方程(以原点为圆心,122=+y x 以1为半径的圆).集合A 是由圆上的所有点构成的,集合B 是由直线122=+y x 上的所有点构成的,所以就是由单位圆与直线的交点构成的,如图所x y =B A 示,交点有两个,故中元素的个数为2.B A例15.(2018沈阳重点高中)设集合,.{}52≤≤-=x x A {}121-≤≤+=m x m x B (1)若,求A 的非空真子集的个数;{}52≤≤-∈=x Z x A (2)若,求实数的取值范围.B B A = m 分析:(1)子集、真子集个数的确定若集合A 含有个元素,则集合A :n (1)含有个子集;n 2(2)含有个非空子集;12-n (3)含有个真子集;12-n (4)含有个非空真子集.22-n (2)若,则,注意分类讨论.B B A = A B ⊆解:(1){}{}5,4,3,2,1,0,1,2-52-=≤≤-∈=x Z x A∵集合A 中含有8个元素∴集合A 的非空真子集的个数为;2542-28=(2)∵,∴.B B A = A B ⊆分为两种情况:①当时,满足,有,解之得:;∅=B A B ⊆121->+m m 2<m ②当时,则有:∅≠B ,解之得:≤≤3. ⎪⎩⎪⎨⎧≤--≥+-≤+51221121m m m m 2m 综上所述,实数的取值范围是. m {}3≤m m 例16. 设,,其中R ,如果{}042=+=x x x A (){}011222=-+++=a x a x x B ∈x ,求实数的取值范围.B B A = a 解:{}{}4,0042-==+=x x x A ∵,∴B B A = A B ⊆分为两种情况:①当时,满足∅=B B B A = ∴,解之得:; ()[]()0141222<--+=∆a a 1-<a ②当时,或或.∅≠B {}0=B {}4-=B {}4,0-=B 若或,则有,解之得: {}0=B {}4-=B ()[]()0141222=--+=∆a a 1-=a 经检验,此时;{}0=B 若,则由根与系数的关系定理可得:{}4,0-=B ,解之得:. ()⎩⎨⎧=--=+-014122a a 1=a 综上所述,实数的取值范围是. a {}11-≤=a a a 或例17. 设集合,,若,求实数的{}3+≤≤=a x a x A {}51>-<=x x x B 或∅=B A a取值范围.分析:对于任意实数,都有,所以本题中集合A 不会是空集.a 3+<a a 解:∵,∴.3+<a a ∅≠A ∵∅=B A ∴,解之得:≤≤2. ⎩⎨⎧≤+-≥531a a 1-a ∴实数的取值范围是. a {}21≤≤-a a ★★例18.(综合性强)已知集合,集合()(){}011222>++++-=a a y a a y y A ,若: ⎭⎬⎫⎩⎨⎧≤≤+-==30,25212x x x y y B ∅=B A (1)求实数的取值范围;a (2)当恒成立时,求的最小值.ax x ≥+12a 分析:(1)求集合A 时要解含参一元二次不等式,可借助于因式分解:()()()()()()()()()[]11111122222222+--=-+--=++-+-=++++-a y a y a y a a y y a a ay a y y a a y a a y 对于集合B ,代表元素是,所以集合B 是函数值的集合,通过配方得:y ()2121252122+-=+-=x x x y ∵0≤≤3,∴2≤≤4,∴;x y {}42≤≤=y y B (2)这是与二次函数有关的恒成立问题,使用数形结合方法.解:(1)()(){}()()[]{}010112222>+--=>++++-=a y a y y a a y a a y y A ∵(这里作差比较与的大小) 04321122>+⎪⎭⎫ ⎝⎛-=-+a a a 12+a a ∴a a >+12∴.{}12+><=a y a y y A 或 {}4230,25212≤≤=⎭⎬⎫⎩⎨⎧≤≤+-==y y x x x y y B∵∅=B A ∴,解之得:≤或≤≤2. ⎩⎨⎧≥+≤4122a a a 3-3a ∴实数的取值范围是;a {}233≤≤-≤a a a 或(2)∵恒成立,即≥0恒成立.ax x ≥+1212+-ax x ∴≤0,解之得:≤≤2. ()42--=∆a 2-a ∴的最小值为.(雅慧,通过这道题你勇敢地挑战一下自己)a 2-题型三 补集运算全集 一般地,如果一个集合含有我们所研究问题中涉及的所有元素,那么就称这个集合为全集,记作U .补集 对于一个集合A ,由全集U 中不属于A 的所有元素组成的集合称为集合A 相对于全集U 的补集,简称集合A 的补集,记作C U A ,即C U A .{}A x U x x ∉∈=且,补集的性质①(C U A ); ②(C U A ); ③ C U (C U A );U A = ∅=A A =④ C U U ; ⑤ C U .∅=U =∅例19. 已知全集,集合,若C U A ,则实数的取{}60<<=x x U {}a x x A <<=1U ≠a 值范围是__________.分析: C U A 说明,且.U ≠∅≠A U A ⊆解:∵C U A ,∴,且.U ≠∅≠A U A ⊆∴实数的取值范围是.a {}61≤<a a 例20. 已知全集,集合,求C U A .{}5,4,3,2,1=U {}042=++=px x x A 分析:集合A 是由方程的解构成的,而方程可能无解、042=++px x 042=++px x 有两个不相等的实数根或有两个相等的实数根,需要分类讨论.解:由题意可知:.U A ⊆分为两种情况:①当时,方程无实数根,∴,解之得: ∅=A 0162<-=∆p 44<<-p ∴C U A C U ;=∅{}5,4,3,2,1==U ②当时,则有≥0,解之得:≤或≥4. ∅≠A 162-=∆p p 4-p 设方程的两个实数根分别为 042=++px x 21,x x 由根与系数的关系定理可得::421=x x 若,则,符合题意,此时,C U A ; 4,121==x x 5-=p {}4,1=A {}5,3,2=若,则,符合题意,此时,C U A . 221==x x 4-=p {}2=A {}5,4,3,1=综上所述,当时,C U A ;44<<-p ={}5,4,3,2,1当时,C U A ;5-=p {}5,3,2=当时,C U A .4-=p {}5,4,3,1=例21. 已知,. {}31≤<-=x x A {}m x m x B 31+<≤=(1)当时,求;1=m B A (2)若C R A ,求实数的取值范围.⊆B m 分析:(1)求两个连续型实数集合的并集时,借助于数轴进行求解能将抽象的问题直观化,但要特别注意端点的实心和空心以及端点值的取舍;(2)求连续型实数集合的补集也是借助于数轴进行.解:(1)当时, 1=m {}{}4131<≤=+<≤=x x m x m x B ∴; {}{}{}414131<<-=<≤≤<-=x x x x x x B A (2)∵,∴C R A {}31≤<-=x x A {}31>-≤=x x x 或∵C R A ,∴分为两种情况:⊆B ①当时,有≥,解之得:≤; ∅=B m m 31+m 21-②当时,则有:或∅≠B ⎩⎨⎧-≤++<13131m m m ⎩⎨⎧>+<331m mm解之得:无解或.3>m 综上,实数的取值范围是.m ⎭⎬⎫⎩⎨⎧>-≤321m m m 或★例22. 设全集,,,(){}R y R x y x I ∈∈=,,()⎭⎬⎫⎩⎨⎧=--=123,x y y x A (){}1,+==x y y x B 求C I A .B 解:()(){}2,1,123,≠+==⎭⎬⎫⎩⎨⎧=--=x x y y x x y y x A ∴集合A 是由直线上除点外的所有点构成的集合 1+=x y ()3,2∴C I A =(){}3,2∵(){}1,+==x y y x B ∴集合B 是由直线上所有的点构成的集合 1+=x y ∴C I A . =B (){}3,2附:函数,即的图象如图所示. 123=--x y 1+=x y ()2≠x例23. 设全集,,C U A ,求实数的值. {}32,3,22-+=a a U {}2,12-=a A {}5=a 分析:∵C U A ,∴,∴.还要注意. U ⊆U ∈55322=-+a a U A ⊆解:∵,C U A {}32,3,22-+=a a U {}5=∴5322=-+a a 整理得:,解之得:.0822=-+a a 4,221-==a aU4321B A 852917643B A U当时,,满足题意; 2=a {}3,2=A 当时,,不满足题意. 4-=a {}9,2=A 综上,实数的值为2.a 例24. 设全集,,( C U B ),, {}*,10N x x x U ∈<=U B U A ⊆⊆,{}9,1=A {}3=B A ( C U A )( C U B ),求集合A , B . {}7,6,4=分析:本题条件较多,考查集合的综合运算.重要结论如图所示,集合A , B 将全集U 分成了四部分,这四部分用集合表示如下: (1)①表示; B A (2)②表示(C U B ); A (3)③表示(C U A ); B (4)④表示(C U A )(C U B ).德·摩根定律(1)C U (C U A )(C U B ); ()=B A (2)C U (C U A )(C U B ).()=B A 解法一: {}{}9,8,7,6,5,4,3,2,1*,10=∈<=N x x x U ∵( C U A )( C U B ),∴C U {}7,6,4=()=B A {}7,6,4∴ {}9,8,5,3,2,1=B A ∵( C U B ) {}9,1=A ∴=B {}8,5,3,2∵,∴.{}3=B A {}9,3,1=A 解法二:由题意作出Venn 图如图所示: 由图可知:,. {}9,3,1=A {}8,5,3,2=B例25. 已知全集R ,集合,集合=U {}0,,32≠∈-==x R x x y y A 且,集合.⎭⎫⎩⎨⎧-+-==x x y x B 522{}a x a x C <<-=5(1)求集合( C U B );A (2)若,求实数的取值范围.()B A C ⊆a 分析:先来确定集合A , B 的本质:集合A 是函数的函数值构成()032≠-=x x y 的集合,即函数的值域;集合B 是使函数有意()032≠-=x x y xx y -+-=522义的自变量的值构成的集合.解:.{}{}{}330,,32<=<=≠∈-==x x y y x R x x y y A 且.{}52522<≤=⎭⎫⎩⎨⎧-+-==x x x x y x B ∴C U B {}52≥<=x x x 或∴( C U B );A {}53≥<=x x x 或(2)由(1)可知: {}32<≤=x xB A ∵,∴分为两种情况:()B A C ⊆①当时,满足,有≥,解之得:≤; ∅=C ()B A C ⊆a -5a a 25②当时,则有:,解之得: ≤3.∅≠C ⎪⎩⎪⎨⎧≤≥-<-3255a a aa a <25综上所述,实数的取值范围是.a {}3≤a a 例26. 若,,,且{}0232=+-=x x x A {}012=-+-=a ax x x B {}022=+-=mx x x C ,求的值和的取值范围.C C A A B A == ,a m 分析:设置本题的目的是帮助雅慧复习由集合间的基本关系确定参数的值或取值范围.本题要先将三个集合之间的运算及其结果转化为集合之间的关系:因为,∴.C C A A B A == ,A C A B ⊆⊆,本来由需要对集合B 分两种情况进行讨论,但考虑到集合B 中的方程结A B ⊆构比较复杂,所以先判断一下方程的根的情况: 012=-+-a ax x ∵≥0()()()22224414-=+-=---=∆a a a a a ∴方程总有两个实数根.012=-+-a ax x 也因此,在处理关系时,一定有,不再对集合B 进行分类讨论. A B ⊆∅≠B 解:{}{}2,10232==+-=x x x A {}()()[]{}011012=---==-+-=a x x x a ax x x B ∴集合B 中必含有元素1,∴. ∅≠B ∵,∴.A B A = A B ⊆①当,即时,,符合题意; 11=-a 2=a {}1=B ②当,即时,,符合题意. 21=-a 3=a {}2,1=B 综上,的值为2或3.a ∵,∴,分为两种情况:C C A = A C ⊆①当时,满足,有,解之得:;∅=C A C ⊆()082<--=∆m 2222<<-m ②当时,则或或:∅≠C {}1=C {}2=C {}2,1=C 若或,则,解之得:.{}1=C {}2=C ()082=--=∆m 22±=m 经检验,当时,或,不符合题意,舍去;22±=m {}2=C {2-=C 若,则由根与系数的关系定理可得:,解之得:,符合题意.{}2,1=C ⎭⎬⎫⎩⎨⎧⨯=+=21221m 3=m 综上所述,的取值范围是或.m 2222<<-m 3=m 题型四 补集思想的应用(正难则反)对于某些问题,如果从正面求解比较困难,则可考虑先求解问题的反面,采用“正难则反”的解题策略.具体地说,就是将研究对象的全体实为全集,求出使问题反面成立的集合A ,则A 的补集即为所求.补集思想的原理或依据是:C U (C U A ).A =例27. 已知集合,,若,求{}R x m mx x x A ∈=++-=,06242{}0<=x xB ∅≠B A 实数的取值范围.m 分析:集合A 是方程的实数根构成的集合,意味着06242=++-m mx x ∅≠B A 方程有负根,则方程的根有以下三种情况:①两负根;②一负根,一零根;③一负根,一正根.分别求解相当麻烦.如果考虑的反面,先求方程无∅≠B A ∅=B A 实数根或两根均非负时的取值范围,然后再用补集思想求解时的m ∅≠B A m 取值范围解:若,则分为两种情况:∅=B A ①当时,,解之得:; ∅=A ()()062442<+--=∆m m 231<<-m ②当时,方程的两个实数根均为非负数,则有:∅≠A 06242=++-m mx x ,解之得:≥. ()()⎪⎩⎪⎨⎧≥+≥≥+--=∆06204062442m m m m m 23综上所述,当时,.1->m ∅=B A ∴当时,实数的取值范围是.∅≠B A m {}1-≤m m 结论:一元二次方程有两个非负实数根的条件是:()002≠=++a c bx ax .⎪⎪⎪⎩⎪⎪⎪⎨⎧≥=⋅≥-=+≥∆0002121ac x x a b x x 例28. 已知集合,,若,求实数{}a y a y y A <+>=或12{}42≤≤=y y B ∅≠B A a 的取值范围.解:当时,则有:∅=B A,解之得:≤或≤≤2. ⎩⎨⎧≥+≤4122a a a 3-3a ∴当时,实数的取值范围是.∅=B A a {}233≤≤-≤a a a 或∴当时,实数的取值范围是.∅≠B A a {}332<<->a a a 或例29. 若集合中至多有1个元素,则实数的取值范围是{}0232=++=x ax x A a __________.分析:题目要求“至多有1个元素”,若采取分类讨论的方法,求解比较麻烦,可考虑用补集思想解决问题.本题中集合A 至多有1个元素的反面是集合A 有两个元素,即方程有两个不相等的实数根.0232=++x ax 解:当集合A 中有两个元素时,方程有两个不相等的实数根,则有:0232=++x ax ,解之得:且 ⎩⎨⎧>-=∆≠0890a a 89<a 0≠a ∴集合A 中有两个元素时实数的取值范围是.a ⎭⎬⎫⎩⎨⎧≠<089a a a 且∴集合A 中至多有1个元素时实数的取值范围是.a ⎭⎬⎫⎩⎨⎧=≥089a a a 或总结:求集合运算中参数的思路(1)将集合中的运算关系转化为两个集合之间的关系;(2)将集合之间的关系转化为方程(组)或不等式(组)是否有解、或解集为怎样的范围; (3)解方程(组)或不等式(组)来确定参数的值或取值范围. 题型五 集合中元素的个数若集合A 为有限集,则用card(A )表示集合A 中元素的个数. 如果集合A 中含有个元素,那么有card(A ). m m =(1)一般地,对于任意两个有限集合A , B ,有 card card(A )card(B )-card . ()=B A +()B A (2)一般地,对于任意三个有限集合A , B , C ,有card card(A )card(B )-card -card -card + ()=C B A +()B A ()C A ()C B card .()C B A。

计算方法上机作业

计算方法上机作业

计算方法上机报告姓名:学号:班级:上课班级:说明:本次上机实验使用的编程语言是Matlab 语言,编译环境为MATLAB 7.11.0,运行平台为Windows 7。

1. 对以下和式计算:∑∞⎪⎭⎫ ⎝⎛+-+-+-+=0681581482184161n n n n S n,要求:①若只需保留11个有效数字,该如何进行计算; ②若要保留30个有效数字,则又将如何进行计算; (1) 算法思想1、根据精度要求估计所加的项数,可以使用后验误差估计,通项为:142111416818485861681n n na n n n n n ε⎛⎫=---<< ⎪+++++⎝⎭;2、为了保证计算结果的准确性,写程序时,从后向前计算;3、使用Matlab 时,可以使用以下函数控制位数: digits(位数)或vpa(变量,精度为数)(2)算法结构1.;0=s⎪⎭⎫⎝⎛+-+-+-+=681581482184161n n n n t n ;2.for 0,1,2,,n i =⋅⋅⋅if 10mt -≤end;3.for ,1,2,,0n i i i =--⋅⋅⋅;s s t =+(3)Matlab 源程序clear; %清除工作空间变量 clc; %清除命令窗口命令m=input('请输入有效数字的位数m='); %输入有效数字的位数s=0;for n=0:50t=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6));if t<=10^(-m) %判断通项与精度的关系break;endend;fprintf('需要将n值加到n=%d\n',n-1); %需要将n值加到的数值for i=n-1:-1:0t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6));s=s+t; %求和运算ends=vpa(s,m) %控制s的精度(4)结果与分析当保留11位有效数字时,需要将n值加到n=7,s =3.1415926536;当保留30位有效数字时,需要将n值加到n=22,s =3.14159265358979323846264338328。

数值计算方法上机1

数值计算方法上机1

插值1. 用系数矩阵求方程组的方法求得拉氏插值多项式的方法在MATLAB 中,输入命令format rat %使数据格式采用有理数形式x=[-1,1,2,5]’,y=[-7,7,-4,35]’ %输入列向量A=[x.^0,x.^1,x.^2,x.^3] %构造出线性方程组(2.2)的系数矩阵A\yans=[10,5,-10,2]’(运行文件名统一取为ff1.m),其结果表明 23()105102p x x x x =+-+2.拉格朗日插值函数的计算机实现编制计算拉格朗日插值的M 文件:以下是拉格朗日插值的名为y_lagrl 的M 文件:function y=y_lagr1(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end运用此文件到具体插值问题中的例子:选择函数y=exp(-x 2) (-2≤x ≤2),在n 个节点上(n 不要太大,如5~11)用拉格朗日插值方法,计算m 个插值点的函数值(m 要适中,如50~100),并画出插值图形。

n=7;m=61;x=-2:4/(m-1):2;y=exp(-x.^2);z=0*x;x0=-2:4/(n-1):2;y0=exp(-x0.^2);y1=y_lagr1(x0,y0,x);plot(x,y,’r ’,x,y1,'b:');(文件名取为ff2.m )运行后结果:3.龙格现象在MA TLAB 中,通过编程可以观察到这种“龙格现象”。

%步1 定义名为f.m 的函数文件function y=f(x)y=1./(1+x.^2);%步2 编写计算拉格朗日插值多项式值并作图程序%作被插函数图象x=-5:1:5;y=f(x);plot(x,y);%固化图形屏幕Hold on%计算下列节点处插值多项式的值z=-5:0.005:5;m=max(size(z));n=10;for k=1:mL(k)=0;for i=1:n+1t(i)=1;for j=1:n+1if j~=it(i)=t(i)*(z(k)-x(j))/(x(i)-x(j));endendL(k)=L(k)+t(i)*y(i);endendplot(z,L,'b')hold off在matlab 中实现,(文件名为ff3.m )结果为:4.分段线性插值函数逼近被插函数的计算机摸拟 作函数211xy +=在节点),,1,0(105n i i n x i =⋅+-=的分段线性插值图象,并将它们进行比较,观察可发现,随着n 的增大,两者吻合得越来越好,龙格现象并未发生。

计算方法上机作业集合

计算方法上机作业集合

第一次&第二次上机作业上机作业:1.在Matlab上执行:>> 5.1-5-0.1和>> 1.5-1-0.5给出执行结果,并简要分析一下产生现象的原因。

解:执行结果如下:在Matlab中,小数值很难用二进制进行描述。

由于计算精度的影响,相近两数相减会出现误差。

2.(课本181页第一题)解:(1)n=0时,积分得I0=ln6-ln5,编写如下图代码从以上代码显示的结果可以看出,I 20的近似值为0.012712966517465(2)I n =∫x n 5+x 10dx,可得∫x n 610dx ≤∫x n 5+x 10dx ≤∫x n 510dx,得 16(n+1)≤I n ≤15(n+1),则有1126≤I 20≤1105, 取I 20=1105,以此逆序估算I 0。

代码段及结果如下图所示结果是从I 19逆序输出至I 0,所以得到I 0的近似值为0.088392216030227。

(3)从I 20估计的过程更为可靠。

首先根据积分得表达式是可知,被积函数随着n 的增大,其所围面积应当是逐步减小的,即积分值应是随着n 的递增二单调减小的,(1)中输出的值不满足这一条件,(2)满足。

设S n 表示I n 的近似值,S n -I n =(−5)n (S 0−I 0) 根据递推公式可以导出此式),可以看出,随着n 的增大,误差也在增大,所以顺序估计时,算法不稳定性逐渐增大,逆序估计情况则刚好相反,误差不断减小,算法逐渐趋于稳定。

2.(课本181页第二题)(1)上机代码如图所示求得近似根为0.09058(2)上机代码如图所示得近似根为0.09064;(3)牛顿法上机代码如下计算所得近似解为0.09091第三次上机作业上机作业181页第四题线性方程组为[1.1348 3.83260.5301 1.78751.1651 3.40172.5330 1.54353.41294.93171.2371 4.99988.7643 1.314210.67210.0147][x1x2x3x4]=[9.53426.394118.423116.9237](1)顺序消元法A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4. 9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];上机代码(函数部分)如下function [b] = gaus( A,b )%用b返回方程组的解B=[A,b];n=length(b);RA=rank(A);RB=rank(B);dif=RB-RA;if dif>0disp('此方程组无解');returnendif RA==RBif RA==nformat long;disp('此方程组有唯一解');for p=1:n-1for k=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endend %顺序消元形成上三角矩阵b=B(1:n,n+1);A=B(1:n,1:n);b(n)=b(n)/A(n,n);for q=n-1:-1:1b(q)=(b(q)-sum(A(q,q+1:n)*b(q+1:n)))/A(q,q);end %回代求解elsedisp('此方程组有无数组解');endend上机运行结果为>>A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4. 9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];>> X=gaus A,b)此方程组有唯一解X =1.0000000000000001.0000000000000001.0000000000000001.000000000000000>>(2)列主元消元法A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4. 9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];函数部分代码如下function [b] = lieZhu(A,b )%用b返回方程组的解B=[A,b];RA=rank(A);RB=rank(B);n=length(b);dif=RB-RA;format long;if dif>0disp('该方程组无解');returnendif dif==0if RA==ndisp('该方程组有唯一解');c=zeros(1,n);for i=1:n-1max=abs(A(i,i));m=i;for j=i+1:nif max<abs(A(j,i))max=abs(A(j,i));m=j;endend %求出每一次消元时绝对值最大的一行的行号if m~=ifor k=i:nc(k)=A(i,k);A(i,k)=A(m,k);A(m,k)=c(k);endd1=b(i);b(i)=b(m);b(m)=d1;%函数值跟随方程一起换位置endfor k=i+1:nfor j=i+1:nA(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i); endb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endend %完成消元操作,形成上三角矩阵b(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+A(i,j)*b(j);endb(i)=(b(i)-sum)/A(i,i) ;%回代求解其他未知数endendelsedisp('此方程组有无数组解');endend上机运行,结果为>>A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.53 30,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.99 98,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];X=lieZhu(A,b)该方程组有唯一解X =1.0000000000000001.0000000000000020.9999999999999990.999999999999999>>根据两种方法运算结果,顺序消元法得到结果比列主元消元法得到的结果精度更高。

计算方法上机作业

计算方法上机作业

计算方法上机作业作为一位学生,我经常需要完成各种数学计算。

无论是简单的加减乘除还是复杂的代数方程和数列求和,计算是我非常重要的一项能力。

然而,为了提高我的计算能力,我仍然需要不断的练习和实践。

下面是我在计算方法上机作业中遇到的一些题目,并附上了详细的解答过程。

1.求解方程组:{2x-3y=5{3x+4y=7解答:首先,我们可以通过消元法或代入法求解这个方程组。

这里我们选择代入法。

由第一个方程得:2x=3y+5将上式代入第二个方程中得:3(3y+5)+4y=7化简得:9y+15+4y=7继续化简:13y=-8得到:y=-8/13将y的值代入第一个方程得:2x-3(-8/13)=5化简得:2x=5+24/13继续化简:2x=65/13-24/13得到:2x=41/13最后,得到:x=(41/13)/2=41/26所以,方程组的解为:x=41/26,y=-8/132.求解不等式:2x+3>5x-1解答:首先,我们将不等式移项得:2>5x-2x-1继续化简:2>3x-1再次移项:3>3x继续化简:1>x所以,不等式的解集为:x<13.求函数f(x)=2x^2+3x-1的极值点。

解答:首先,我们利用求导的方法求解极值点。

对函数f(x)求导得:f'(x)=4x+3然后,令f'(x)=0化简得:4x=-3最后,得到:x=-3/4将极值点x=-3/4代入原函数得:f(-3/4)=2(-3/4)^2+3(-3/4)-1化简得:f(-3/4)=9/8-9/4-1最后,得到:f(-3/4)=-11/8所以,函数f(x)=2x^2+3x-1的极值点为x=-3/4,对应的函数值为f(-3/4)=-11/8通过这些题目的解答,我不仅巩固了计算方法的知识,也提高了我的计算能力和解题技巧。

我会继续努力学习和练习,以便更好地掌握计算方法。

计算方法作业

计算方法作业

1. 利用函数y=x 在x 1=100,x 2=121处的值,计算115 的近似值,并估计误差。

解:y 1=100 =10, y 2=121 =11.取x 1和x 2为节点作一次插值,得L 1(x)=x-121100-121 ×10 + x-100121-100×11 则 L 1(115)= 115-121100-121 ×10 + 115-100121-100×11 = -6-21 ×10 + 1521×11 = 27 ×10 + 57×11 = 257=10.7142857 ≈115误差:y=x ,y ′=12 x -0.5, y ″=- 12 × 12 x -1.5=- 14x -1.5, 115 - L 1(115)= 12 ×(- 14 ξ-1.5)×(115-100)×(115-121) 100<ξ<121所以|115 - L 1(115)|≤12 ×|(- 14×100-1.5)|×|(115-100)×(115-121)| = 18 ×11000×15×6 =0.011252. 给出函数表 x 0 1 2 4 5y 0 16 46 88 0 试求各阶差商,并写出牛顿插值多项式。

解:差商表k x k f[x k ] f[x k ,x k+1] f[x k ,x k+1,x k+2] f[x k ,x k+1,x k+2,x k+3] f[x k ,x k+1,x k+2,x k+3,x k+4]0 0 0 16 7 - 52 - 761 1 16 30 -3 - 2532 2 46 21 -10933 4 88 -884 5 0所以N 4=0+16(x-0)+7(x-0)(x-1) - 52 (x-0)(x-1)(x-2) - 76(x-0)(x-1)(x-2)(x-4) =16x+7x(x-1) - 52 x(x-1)(x-2) - 76x(x-1)(x-2)(x-4) 3. 给定数据表x 0.125 0.250 0.375 0.500 0.625 0.750 f(x) 0.79618 0.77334 0.74371 0.70413 0.65632 0.60228使用三次牛顿差分插值公式计算f(0.1581)及f(0.636).解:x k f kΔf kΔ2f kΔ3f kΔ4f kΔ5f k 0.125 0.79618 -0.02284 -0.00679 -0.00316 0.00488 -0.00460 0.250 0.77334 -0.02963 -0.00995 0.00172 0.000280.375 0.74371 -0.03958 -0.00823 0.002000.500 0.70413 -0.04781 -0.006230.625 0.65632 -0.054040.750 0.60228N3(0.125+0.125t)=0.79618-0.02284t-0.00679t(t-1)-0.00316t(t-1)(t-2)N3(0.1581)= N3(0.125+0.125×0.2648)= 0.79618-0.02284×0.2648-0.00679×0.2648×(0.2648-1)-0.00316×0.2648×(0.2648-1)×(0.2648-2)=0.790N3(0,636)=N3(0.125+0.125×4.088)=0.79618-0.02284×4.088-0.00679×4.088×(4.088-1)-0.00316×4.088×(4.088-1)×(4.088-2)=0.534上机作业例1:已知函数表:xi 0.56160 0.56280 0.56401 0.56521yi 0.82741 0.82659 0.82577 0.82495用三次拉格朗日插值多项式求x=0.5635时的函数近似值C语言程序设计:# include<stdio.h>float Lagrange(float x[],float y[],float xx,int n){int i,j;float *a,yy=0;a=new float[n];for(i=0;i<=n-1;i++){a[i]=y[i];for(j=0;j<=n-1;j++)if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]);yy+=a[i];}delete a;return yy;}void main(){float x[4]={0.56160,0.56280,0.56401,0.56521};float y[4]={0.82741,0.82659,0.82577,0.82495};float xx=0.5635,yy;yy=Lagrange(x,y,xx,4);printf("x=%f,y=%f\n",xx,yy);}运行结果:x=0.563500y=0.826116例2:已知函数表xi 0.4 0.55 0.65 0.8 0.9 yi 0.41075 0.57815 0.69675 0.88811 1.02652 用牛顿插值多项式求N n(0.596)和N n(0.895)。

数值计算方法上机实习题答案.doc

数值计算方法上机实习题答案.doc

1.设I n 1 x ndx ,0 5 x( 1)由递推公式 I n 5I n 11,从 I 0的几个近似值出发,计算I 20;n解:易得: I 0 ln6-ln5=0.1823, 程序为:I=0.182;for n=1:20I=(-5)*I+1/n;endI输出结果为: I 20= -3.0666e+010( 2)粗糙估计 I 20,用 I n 1 1I n 1 1 ,计算 I 0;5 5n0.0079 1 x 20 1 x 200.0095因为dx I 20dx 6 5所以取 I 20 1(0.0079 0.0095) 0.0087 2程序为: I=0.0087;for n=1:20I=(-1/5)*I+1/(5*n);endII 0= 0.0083( 3)分析结果的可靠性及产生此现象的原因(重点分析原因 )。

首先分析两种递推式的误差;设第一递推式中开始时的误差为E0 I 0 I 0,递推过程的舍入误差不计。

并记 E n I n I n,则有 E n 5E n 1 ( 5) n E0。

因为 E20( 5) 20 E0 I 20,所此递推式不可靠。

而在第二种递推式中E0 1E1 (1)n E n,误差在缩小,5 5所以此递推式是可靠的。

出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。

2.求方程e x10x 2 0 的近似根,要求x k 1x k 5 10 4,并比较计算量。

(1)在 [0, 1]上用二分法;程序: a=0;b=1.0;while abs(b-a)>5*1e-4c=(b+a)/2;if exp(c)+10*c-2>0b=c;else a=c;endendc结果: c =0.0903( 2)取初值x0 0,并用迭代 x k 1 2 e x ;10程序: x=0;a=1;while abs(x-a)>5*1e-4a=x;x=(2-exp(x))/10;endx结果: x =0.0905(3)加速迭代的结果;程序: x=0;a=0;b=1;while abs(b-a)>5*1e-4a=x;y=exp(x)+10*x-2;z=exp(y)+10*y-2;x=x-(y-x)^2/(z-2*y+x);b=x;endx结果: x =0.0995( 4)取初值x00 ,并用牛顿迭代法;程序: x=0;a=0;b=1;while abs(b-a)>5*1e-4a=x;x=x-(exp(x)+10*x-2)/(exp(x)+10); b=x;end x 结果: x =0.0905( 5) 分析绝对误差。

数值分析上机作业1-1解析

数值分析上机作业1-1解析

数值计算方法上机题目11、实验1. 病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”和“坏”之别。

所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。

希望读者通过本实验对此有一个初步的体会。

数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。

病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。

问题提出:考虑一个高次的代数多项式∏=-=---=201)()20)...(2)(1()(k k x x x x x p (E1-1)显然该多项式的全部根为l ,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。

现考虑该多项式方程的一个扰动0)(19=+xx p ε (E1-2)其中ε是一个非常小的数。

这相当于是对(E1-1)中19x 的系数作一个小的扰动。

我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。

实验内容:为了实现方便,我们先介绍两个 Matlab 函数:“roots ”和“poly ”,输入函数u =roots (a )其中若变量a 存储1+n 维的向量,则该函数的输出u 为一个n 维的向量。

设a 的元素依次为121,...,,+n a a a ,则输出u 的各分量是多项式方程0...1121=++++-n n n n a x a x a x a的全部根,而函数b=poly(v)的输出b 是一个n +1维变量,它是以n 维变量v 的各分量为根的多项式的系数。

可见“roots ”和“Poly ”是两个互逆的运算函数.ve=zeros(1,21); ve(2)=ess;roots(poly(1:20))+ve)上述简单的Matlab 程序便得到(E1-2)的全部根,程序中的“ess ”即是(E1-2)中的ε。

实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。

计算方法作业

计算方法作业

应用计算方法学院:自动化学院班级:硕1104班姓名:陈兆辉计算方法2班教师:张晓丹目录上机作业1 (3)上机作业2 (6)上机作业3 (10)上机作业4 (12)上机作业5 (17)上机作业6 (18)上机作业7 (19)上机作业11.分别用不动带你迭代法与Newton 法求解方程2x- ex +3=0的正根和负根解:(1)用不动点迭代法求方程的正根1)迭代公式:()231ln k P k P ++=,初值p0=1.02)程序:k=1;Tol=0.00001;p0=1.0;N=100;while k<=Np=log(2*p0+3);if abs(p-p0)<Tolbreak;endk=k+1;p0=p;enddisp(p);disp(k)3)显示结果:P= 1.9239K=11(2) 用不动点迭代法求解方程的负根1)迭代公式: 1(3)/2k p k p e +=-,初值p0=-1.02)程序:k=1;Tol=0.00001;p0=-1.0;N=100;while k<=Np=(exp(p0)-3)/2;if abs(p-p0)<Tolbreak;endk=k+1;p0=p;enddisp(p);disp(k)3)显示结果:P= -1.3734k=7(3)用牛顿法求方程的正根1)迭代公式:()1232k k p k k k p p e p p e +-+=--,初值p0=1.02)程序:k=1;Tol=0.00001;p0=1.0;N=100;while k<=Np=p0-(2*p0-exp(p0)+3)/(2-exp(p0));if abs(p-p0)<Tolbreak;endk=k+1;p0=p;enddisp(p);disp(k)3)显示结果:P=1.9239K=8(4)用牛顿法求解方程的负根1)迭代公式:()1232k k p k k k p p e p p e +-+=--,初值p0=-1.02)程序:k=1;Tol=0.00001;p0=-1.0;N=100;while k<=Np=p0-(2*p0-exp(p0)+3)/(2-exp(p0));if abs(p-p0)<Tolbreak;endk=k+1;p0=p;enddisp(p);disp(k)3)显示结果:P= -1.3734K= 44)结果分析:不动点迭代法是求解非线性方程的主要方法,其中牛顿法应用最广泛,它求解方程的单根时具有二阶收敛性,但是它要求较好的初始近似值,牛顿法比普通的迭代法收敛速度快,能较少的迭代达到理想的值。

集合计算练习题(打印版)

集合计算练习题(打印版)

集合计算练习题(打印版)### 集合计算练习题一、集合的基本概念1. 定义集合A={1, 2, 3},集合B={3, 4, 5},求A∪B(A和B的并集)。

2. 已知集合C={x | x是小于10的正整数},求C的元素个数。

3. 若集合D={x | x是偶数},集合E={x | x是3的倍数},求D∩E(D和E的交集)。

二、集合运算4. 集合F={1, 2, 3, 4},集合G={2, 3, 5, 6},计算F∩G(F和G的交集)。

5. 集合H={x | x是5到10之间的整数},求H的补集(相对于自然数集N)。

6. 集合I={x | x是小于20的质数},集合J={2, 3, 5, 7, 11, 13, 17, 19},判断I和J是否相等,并说明理由。

三、集合的包含关系7. 集合K={1, 3, 5},集合L={1, 2, 3, 4, 5, 6},判断K是否是L的子集。

8. 集合M={x | x是4的倍数},集合N={x | x是8的倍数},判断M和N的包含关系。

9. 集合P={x | x是小于15的正整数},集合Q={1, 2, 3, ..., 14},判断P和Q是否相等。

四、集合的幂集10. 集合R={a, b},求R的幂集,并说明幂集中元素的个数。

11. 集合S={1, 2, 3},求S的幂集,并计算幂集中包含{1, 2}的子集个数。

五、集合的笛卡尔积12. 集合T={1, 2},集合U={x, y},求T×U(T和U的笛卡尔积)。

13. 集合V={a, b},集合W={0, 1},计算V×W,并说明结果中元素的个数。

六、集合的等价关系14. 集合X={1, 2, 3, 4},定义关系R={(x, y) | x和y同奇偶},判断R是否是等价关系,并说明理由。

15. 集合Y={x | x是小于20的正整数},定义关系S={(x, y) | x和y的和能被5整除},判断S是否是等价关系。

计算方法上机作业

计算方法上机作业

计算⽅法上机作业请注意! Pay attention!计算⽅法作业要求1.上机内容:只要求完成《计算⽅法》实验报告那⼀部分的内容。

2.试验报告要求:(1)要求写出解题的程序代码和结果,以及必要的⽂字说明。

(2)报告要求打印,封⾯上写清班级、学号和姓名。

(3)提交报告时间:2013年6⽉13号(16周周四)。

⽬录第⼀部分基本操作 (1)§1.Matlab的使⽤ (1)1-1.直接输⼊命令 (1)1-2.⽤M⽂件开发程序 (1)§2.M⽂件程序的主要语句和主要函数 (2)2-1.Matlab的数字特征 (2)2-2.主要语句 (3)2-3.常⽤函数 (4)2-4.⼏个常⽤的命令 (5)§3.矩阵的有关计算 (5)3-1.矩阵的输⼊ (5)3-2.矩阵/向量的运算 (6)3-3.矩阵的范数 (6)3-4.向量的范数 (7)3-5.矩阵的条件数 (7)3-6.矩阵的特征值和特征向量 (8)§4.Matlab绘图 (9)4-1.绘图的基本命令 (9)4-2.图形的交互编辑 (11)第⼆部分数值计算 (12)§1.⽅程求根 (12)1-1.⽜顿迭代法 (12)1-2.图解法确定迭代的初始点 (13)§2.线性⽅程组 (13)2-1.迭代法的收敛性 (13)2-2.线性⽅程组的病态问题 (14)2-3.求解线性⽅程组 (15)§3.插值和拟合 (16)/doc/b4c2d2dfc850ad02de8041fc.html grange插值 (16)3-2.代数多项式插值 (17)3-3.插值误差 (17)3-4.分段线性插值 (18)3-5.数据的曲线拟合 (18)§4.数值积分 (20)4-1.复合梯形求积公式 (20)4-2.复合Simpson求积公式 (20)§5.常微分⽅程的数值解法 (21)5-1.Euler⽅法 (21)5-2.改进的Euler⽅法 (23)5-3.四阶龙格-库塔⽅法 (24)习题 (27)⼀、⽅程求根 (27)⼆、线性⽅程组 (27)三、插值与拟合 (28)四、数值积分 (29)五、常微分⽅程 (30)《计算⽅法》实验报告 (31)⼀、⽅程求根 (31)⼆、线性⽅程组 (31)三、插值与拟合 (32)四、数值积分 (32)五、常微分⽅程 (33)第⼀部分基本操作§1.1.MatlabMatlab 的使⽤Matlab 的使⽤⽅法有两种:(1)在Matlab 的命令窗⼝(Matlab Command Windows )中直接输⼊命令,即可得到结果;(2)在Matlab 的编辑窗⼝(Matlab Editor )内编写M ⽂件,然后在命令窗⼝执⾏该⽂件,得到所需的结果。

集合运算精选典型例题及练习题

集合运算精选典型例题及练习题

集合运算的典型例题及练习(一)集合的基本运算:说明:不等式的交、并、补集的运算,用数轴进行分析,注意端点。

A 、C U B、例1:设U=R,A={x|-5〈x〈5},B={x|0≤x〈7},求A∩B、A∪B、CUA)∩(C U B)、(C U A)∪(C U B)、C U(A∪B)、C U(A∩B)。

(CU},A⊆U,B⊆U,且(C U B)∩A={1,9},A∩B={3},(C U A)∩(C U B)例2:全集U={x|x<10,x∈N+={4,6,7},求A、B.说明:列举法表示的数集问题用Venn图示法、观察法(二)集合性质的运用:例3:A={x|x2+4x=0},B={x|x2+2(a+1)x+a2-1=0},若A∪B=A,求实数a的值。

说明:注意B为空集可能性;一元二次方程已知根时,用代入法、韦达定理,要注意判别式。

例4:已知集合A={x|x〉6或x〈—3},B={x|a〈x〈a+3},若A∪B=A,求实数a的取值范围。

(三)巩固练习:1.P={0,1},M={x|x⊆P},则P与M的关系是.2.已知50名同学参加跳远和铅球两项测验,分别及格人数为40、31人,两项均不及格的为4人,那么两项都及格的为人。

3.满足关系{1,2}⊆A⊆{1,2,3,4,5}的集合A共有个.4.已知A={x|—2<x<—1或x〉1},A∪B={x|x+2>0},A∩B={x|1〈x≦3},求集合B=5.已知集合A∪B={x|x〈8,x∈N},A={1,3,5,6},A∩B={1,5,6},则B的子集的集合一共有多少个元素?6.已知A={1,2,a},B={1,a2},A∪B={1,2,a},求所有可能的a值。

7.设A={x|x2-ax+6=0},B={x|x2-x+c=0},A∩B={2},求A∪B.8。

集合A={x|x2+px—2=0},B={x|x2—x+q=0},若A B={-2,0,1},求p、q。

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

第一次&第二次上机作业上机作业:1.在Matlab上执行:>> 5.1-5-0.1和>> 1.5-1-0.5给出执行结果,并简要分析一下产生现象的原因。

解:执行结果如下:在Matlab中,小数值很难用二进制进行描述。

由于计算精度的影响,相近两数相减会出现误差。

2.(课本181页第一题)解:(1)n=0时,积分得I0=ln6-ln5,编写如下图代码从以上代码显示的结果可以看出,I 20的近似值为0.012712966517465(2)I n =∫x n 5+x 10dx,可得∫x n 610dx ≤∫x n 5+x 10dx ≤∫x n 510dx,得 16(n+1)≤I n ≤15(n+1),则有1126≤I 20≤1105, 取I 20=1105,以此逆序估算I 0。

代码段及结果如下图所示结果是从I 19逆序输出至I 0,所以得到I 0的近似值为0.088392216030227。

(3)从I 20估计的过程更为可靠。

首先根据积分得表达式是可知,被积函数随着n 的增大,其所围面积应当是逐步减小的,即积分值应是随着n 的递增二单调减小的,(1)中输出的值不满足这一条件,(2)满足。

设S n 表示I n 的近似值,S n -I n =(−5)n (S 0−I 0) 根据递推公式可以导出此式),可以看出,随着n 的增大,误差也在增大,所以顺序估计时,算法不稳定性逐渐增大,逆序估计情况则刚好相反,误差不断减小,算法逐渐趋于稳定。

2.(课本181页第二题)(1)上机代码如图所示求得近似根为0.09058(2)上机代码如图所示得近似根为0.09064;(3)牛顿法上机代码如下计算所得近似解为0.09091第三次上机作业上机作业181页第四题线性方程组为[1.1348 3.83260.5301 1.78751.1651 3.40172.5330 1.54353.41294.93171.2371 4.99988.7643 1.314210.67210.0147][x1x2x3x4]=[9.53426.394118.423116.9237](1)顺序消元法A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4. 9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];上机代码(函数部分)如下function [b] = gaus( A,b )%用b返回方程组的解B=[A,b];n=length(b);RA=rank(A);RB=rank(B);dif=RB-RA;if dif>0disp('此方程组无解');returnendif RA==RBif RA==nformat long;disp('此方程组有唯一解');for p=1:n-1for k=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endend %顺序消元形成上三角矩阵b=B(1:n,n+1);A=B(1:n,1:n);b(n)=b(n)/A(n,n);for q=n-1:-1:1b(q)=(b(q)-sum(A(q,q+1:n)*b(q+1:n)))/A(q,q);end %回代求解elsedisp('此方程组有无数组解');endend上机运行结果为>>A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4. 9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];>> X=gaus A,b)此方程组有唯一解X =1.0000000000000001.0000000000000001.0000000000000001.000000000000000>>(2)列主元消元法A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4. 9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];函数部分代码如下function [b] = lieZhu(A,b )%用b返回方程组的解B=[A,b];RA=rank(A);RB=rank(B);n=length(b);dif=RB-RA;format long;if dif>0disp('该方程组无解');returnendif dif==0if RA==ndisp('该方程组有唯一解');c=zeros(1,n);for i=1:n-1max=abs(A(i,i));m=i;for j=i+1:nif max<abs(A(j,i))max=abs(A(j,i));m=j;endend %求出每一次消元时绝对值最大的一行的行号if m~=ifor k=i:nc(k)=A(i,k);A(i,k)=A(m,k);A(m,k)=c(k);endd1=b(i);b(i)=b(m);b(m)=d1;%函数值跟随方程一起换位置endfor k=i+1:nfor j=i+1:nA(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i); endb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endend %完成消元操作,形成上三角矩阵b(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+A(i,j)*b(j);endb(i)=(b(i)-sum)/A(i,i) ;%回代求解其他未知数endendelsedisp('此方程组有无数组解');endend上机运行,结果为>>A=[1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.53 30,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.99 98,10.6721,0.0147];b=[9.5342;6.3941;18.4231;16.9237];X=lieZhu(A,b)该方程组有唯一解X =1.0000000000000001.0000000000000020.9999999999999990.999999999999999>>根据两种方法运算结果,顺序消元法得到结果比列主元消元法得到的结果精度更高。

(注:matlab使用的是2015b版本,不知道是保留小数位数太少,还是程序原因,顺序消元输出结果总是等于准确解,请老师指正)第四次上机作业7.分析用下列迭代法解线性方程组[ 4−1−1 40−1−1 00 0−1 00−1−1 04−1−1 40 −1−1 00−10 00−1−1 04−1−1 4][x1x2x3x4x5x6]=[5−25−26]的收敛性,并求出使‖X(k+1)−X(k)‖2≤0.0001的近似解及相应的迭代次数。

(1)雅可比迭代法解:上机编写的函数如下function [] = Jacobi(X,b)%雅可比迭代法D=diag(diag(X));%得到对角线元素组成的矩阵B=inv(D)*(D-X);f=inv(D)*b;b(:,:)=0;x1=B*b+f;num=1;while(norm(x1-b)>0.0001)%判断当前的解是否达到精度要求b=x1;x1=B*b+f;num=num+1;end;fprintf('求得的解为:\n');disp(x1);fprintf('迭代次数:%d次\n',num);end上机运行,结果如下>> A=[4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4];>> b=[0;5;-2;5;-2;6];>> Jacobi(A,b)求得的解为:0.9999817650743811.999950181256740.9999750906283681.999950181256740.9999750906283681.99996353014876迭代次数:28次满足要求的解如输出结果所示,总共迭代了28次(2)高斯-赛德尔迭代法上机程序如下所示function [] =Gauss_Seidel( A,b )%高斯赛德尔迭代法D=diag(diag(A));L=D-tril(A);U=D-triu(A);B=inv(D-L)*U;f=inv(D-L)*b;b(:,:)=0;x0=B*b+f;num=1;while(norm(x0-b)>0.0001)num=num+1;b=x0;x0=B*b+f;end;fprintf('结果为\n');disp(x0);fprintf('迭代次数为:%d次\n',num);end>> A=[4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4];>> b=[0;5;-2;5;-2;6];>> Gauss_Seidel(A,b)结果为0.9999601438106581.999956761521390.9999635082998331.999966621628740.9999725271797151.99998400886989迭代次数为:15次满足精度要求的解如上述程序打印输出所示,迭代了15次(3)S OR迭代法(w依次取1.334,1.95,0.95)上机代码如下function [] = SOR(A,b,w )%SOR迭代法¨D=diag(diag(A));L=D-tril(A);U=D-triu(A);B=inv(D-w*L)*((1-w)*D+w*U);f=w*inv(D-w*L)*b;b(:,:)=0;x0=B*b+f;num=1;while(norm(x0-b)>0.0001)num=num+1;b=x0;x0=B*b+f;end;fprintf('结果为\n');disp(x0);fprintf('迭代次数为%d\n',num);end上机运行>> A=[4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4]; >> b=[0;5;-2;5;-2;6];>> SOR(A,b,1.334)结果为1.000018784810091.999986983228581.000018150130682.00000041318053 0.999991858543476 2.0000068413569 迭代次数为13>> SOR(A,b,1.95)结果为0.999984952088107 2.00000960832604 0.999959115182729 2.0000168426006 1.00000443526697 1.99997885113446 迭代次数为241>> SOR(A,b,0.95)结果为0.9999615183093511.999957068252310.9999630548384531.999965805720330.9999711417275891.9999827300678 迭代次数为17由以上输出得到w取值不同的情况下,得到的满足精度要求的结果,迭代次数分别如输出所示第五次上机作业8.从函数表出发,用下列方法计算f(0.15),f(0.31)及f(0.47)的近似值(1)分段线性插值(2)分段二次插值(3)全区间上拉格朗日插值解:(1)线性插值编写函数如下function [R] = div_line( x0,y0,x )%线性插值p=length(x0);n=length(y0);m=length(x);if(p~=n)%x的个数与y的个数不等error('数据输入有误,请重新输入');return;elsefprintf('线性插值\n');for t=1:mz=x(t);if(z<x0(1)||z>x0(p))fprintf('x[%d]不在所给自变量范围内,无法进行插值',t);continue;elsefor i=1:p-1if(z<x0(i+1))break;end;end;R(t)=y0(i)*(x(t)-x0(i+1))/(x0(i)-x0(i+1))+y0(i+1)*(x(t)-x0(i))/(x0(i+1)-x0(i));end;end;end;end上机运行如下>> x0=[0.0 0.1 0.195 0.3 0.401 0.5];>> y0=[0.39894 0.39695 0.39142 0.38138 0.36812 0.35206]; >> x=[0.15 0.31 0.47];>> div_line(x0,y0,x)线性插值ans =0.39404 0.38007 0.35693即结果为f(0.15)≈0.39404,f(0.31) ≈0.38007,f(0.47) ≈0.35693 (2)分段二次插值编写的函数如下function [R] = div2line(x0,y0,x)%分段二次插值p=length(x0);m=length(y0);n=length(x);if(p~=m)error('输入错误,请重新输入数据');end;for t=1:nif(x(t)<x0(1)||x(t)>x0(p))fprintf('x[%d]不在所给区间上',t);continue;end;tag=2;m=abs(x(t)-x0(1))+abs(x(t)-x0(2))+abs(x(t)-x0(3));for i=3:p-1sum=abs(x(t)-x0(i-1))+abs(x(t)-x0(i))+abs(x(t)-x0(i+1));if(sum<m)m=sum;tag=i;endend;fprintf('tag=%d\n',tag);R(t)=y0(tag-1)*(x(t)-x0(tag))*(x(t)-x0(tag+1))/((x0(tag-1)-x0(tag))*(x0(tag-1)-x0(tag+1)))+y0(tag)*(x(t)-x0(tag-1))*(x(t)-x0(tag+1))/((x0(tag)-x0(tag-1))*(x0(tag)-x0(tag+1)))+y0(tag+1)*(x(t)-x0(tag-1))*(x(t)-x0(tag))/((x0(tag+1)-x0(tag-1))*(x0(tag+1)-x0(tag)));End上机运行,执行结果为>> x0=[0.0 0.1 0.195 0.3 0.401 0.5];>> y0=[0.39894 0.39695 0.39142 0.38138 0.36812 0.35206]; >> x=[0.15 0.31 0.47];>>div2line(x0,y0,x)ans =0.39448 0.38022 0.35725即分段二次插值方法下,f(0.15)≈0.39448,f(0.31) ≈0.38022,f(0.47) ≈0.35725(3)上机编写的程序如下function [R] = lagrange(x0,y0,x)%全区间上拉格朗日插值p=length(y0);n=length(x0);m=length(x);%计算函数表和x的长度if p ~= n error('数据输入有误,请重新输入');%若函数表的x与y长度不一致则输入有误else fprintf('拉格朗日插值\n');for t=1:m%利用循环计算每个x的插值s=0.0;z=x(t);for k=1:np=1;for i=1:nif i~=kp=p*(z-x0(i))/(x0(k)-x0(i));endends=s+y0(k)*p;end%根据拉格朗日插值公式求解yR(t)=s;%输出插值结果endend上机运行结果为>> x0=[0.0 0.1 0.195 0.3 0.401 0.5];>> y0=[0.39894 0.39695 0.39142 0.38138 0.36812 0.35206]; >> x=[0.15 0.31 0.47];>> lagrange(x0,y0,x)拉格朗日插值ans =0.39447 0.38022 0.35722即分段二次插值方法下,f(0.15)≈0.39447,f(0.31) ≈0.38022,f(0.47) ≈0.357229.解:上机程序如下,为方便起见,将所有操作分在四个函数中进行入口函数function [] =spline X,Y,xx,y1_0,y1_18 )%输出自变量所对应的函数值M=getM X,Y,y1_0,y1_18);%先得到Ms=xx;k=length xx);for a=1:ks xx a))=getExp X,Y,M,xx a));%计算自变量所在小区间对应曲线的表达式,并根据表达式计算对应的函数值fprintf 's %d)=%f\n',xx a),s xx a))); %输出打印函数值endend获取Mfunction [M] = getM X,Y,y1_0,y1_1)%得到Mn=length X);a=0*X;b=a;c=a;h=a;f=a;b=b+2;h 2:n)=X 2:n)-X 1:n-1); % h 1)不用a 2:n-1)=h 2:n-1)./ h 2:n-1)+h 3:n));c 2:n-1)=1-a 2:n-1);a n)=1;c 1)=1;Yf 2:n)=Y 2:n)-Y 1:n-1);f 2:n-1)=6* Yf 3:n)./h 3:n)-Yf 2:n-1)./h 2:n-1))./ h 2:n-1)+h 3:n));f 1)=6* Yf 2)/h 2)-y1_0)/h 2);f n)=6* y1_1-Yf n)/h n))/h n);M=CalM n,a,b,c,f);%计算Mend计算Mfunction [f] = CalM n,a,b,c,f)% 追赶法求解Meps=0.1e-15; %防止参数过小,是的计算误差过大if abs b 1))<epsdisp '除数为0,停止计算');returnelsec 1)=c 1)/b 1);end%追赶法:根据递推算式计算βfor i=2:n-1b i)=b i)-a i)*c i-1);if abs b i))<epsdisp '除数为0,停止计算');returnelsec i)=c i)/b i);endendb n)=b n)-a n)*c n-1);%追赶法:根据递推算式计算f 1)=f 1)/b 1);for i=2:nf i)= f i)-a i)*f i-1))/b i);end%以下求解Ux=y, x的值存入ffor i=n-1:-1:1f i)=f i)-c i)*f i+1);endreturnend得到自变量所在区间的表达式,并求自变量对应的函数值function [y] = getExp X,Y,M,x)%%根据X、Y、M计算表达式,并根据表达式计算对应的函数值n=length X);h 2:n)=X 2:n)-X 1:n-1);%%判断x落在哪个小区间n1=1;n2=n;while n2~=n1+1n5=fix n1+n2)/2);if x>X n5)n1=n5;elsen2=n5;endend%%%%计算yy=M n1)* X n2)-x)^3/ 6*h n2))+ M n2)* x-X n1))^3/ 6*h n2));y=y+ Y n1)-M n1)*h n2)*h n2)/6)* X n2)-x)/h n2);y=y+ Y n2)-M n2)*h n2)*h n2)/6)* x-X n1))/h n2);%%%结束end上机试运行,过程如下>> X=[0.52 3.1 8.0 17.95 28.65 39.62 50.65 78 104.6 156.6 208.6 260.7 312.5 364.4 416.3 468 494 507 520];>> Y=[5.28794 9.4 13.84 20.2 24.9 28.44 31.1 35 36.5 36.6 34.6 31.0 26.34 20.9 14.8 7.8 3.7 1.5 0.2];>> xx=[2 4 6 12 16 30 60 110 180 280 400 515];>> y1_0=1.86548;>> y1_18=-0.046115;spline(X,Y,xx,y1_0,y1_18)s(2)=7.825123s(4)=10.481311s(6)=12.363477s(12)=16.575574s(16)=19.091594s(30)=25.386402s(60)=32.804283s(110)=36.647878s(180)=35.917148s(280)=29.368462s(400)=16.799784s(515)=0.542713根据上述程序运行结果,可得所有自变量对应的函数值,如上输出结果所示第六次上机作业10.已知一组实验数据试用最小二乘法求它的多项式拟合曲线,并求出最低点位置。

相关文档
最新文档