《应用计算方法教程》matlab作业一
《应用计算方法教程》MatLab作业
6-1 试验目的 计算特征值,实现算法试验内容:随机产生一个10阶整数矩阵,各数均在-5和5之间。
(1) 用MATLAB 函数“eig”求矩阵全部特征值。
(2) 用幂法求A 的主特征值及对应的特征向量。
(3) 用基本QR 算法求全部特征值(可用MATLAB 函数“qr ”实现矩阵的QR 分解)。
原理幂法:设矩阵A 的特征值为12n ||>||||λλλ≥⋅⋅⋅≥并设A 有完全的特征向量系12,,,n χχχ⋅⋅⋅(它们线性无关),则对任意一个非零向量0n V R ∈所构造的向量序列1k k V AV -=有11()lim ()k j k k jV V λ→∞-=,其中()k j V 表示向量的第j 个分量。
为避免逐次迭代向量k V 不为零的分量变得很大(1||1λ> 时)或很小(1||1λ< 时),将每一步的k V 按其模最大的元素进行归一化。
具体过程如下:选择初始向量0V ,令1max(),,,1kk k k k k kV m V U V AU k m +===≥,当k 充分大时1111,max()max()k k U V χλχ+≈≈。
QR 法求全部特征值:11111222111,1,2,3,k k k k k A A Q R R Q A Q R k R Q A Q R +++==⋅⎧⎪⋅==⋅⎪=⋅⋅⋅⎨⋅⋅⋅⎪⎪⋅==⋅⎩ 由于此题的矩阵是10阶的,上述算法计算时间过长,考虑采用改进算法——移位加速。
迭代格式:1k k k kk k k k A q I Q R A R Q q I +-=⎧⎨=+⎩ 计算k A 右下角的二阶矩阵()()1,11,()(),1,k k nn n n k k n n n n a a a a ----⎛⎫ ⎪ ⎪⎝⎭的特征值()()1,k k n n λλ-,当()()1,k k n n λλ-为实数时,选k q 为()()1,k k n n λλ-中最接近(),k n n a 的。
MATLAB作业1 参考答案
MATLAB 作业1参考答案1 、在你的机器上安装MATLAB 语言环境,并键入demo 命令,由给出的菜单系统和对话框原型演示程序,领略MATLAB 语言在求解数学问题方面的能力与方法。
【求解】略.2、启动MATLAB 环境,并给出语句tic, A=rand(500); B=inv(A); norm(A*B-eye(500)),toc ,试运行该语句,观察得出的结果,并利用help 命令对你不熟悉的语句进行帮助信息查询,逐条给出上述程序段与结果的解释。
【求解】在MATLAB 环境中感触如下语句,则可以看出,求解500500⨯随机矩阵的逆,并求出得出的逆矩阵与原矩阵的乘积,得出和单位矩阵的差,得出范数。
一般来说,这样得出的逆矩阵精度可以达到1210-。
>> tic, A=rand(500); B=inv(A); norm(A*B-eye(500)), tocans =1.2333e-012Elapsed time is 1. seconds.3、试用符号元素工具箱支持的方式表达多项式5432()34236f x x x x x x =+++++,并令11s x s -=+,将f(x) 替换成s 的函数。
【求解】可以先定义出f 函数,则由subs() 函数将x 替换成s 的函数>> syms s x;f=x^5+3*x^4+4*x^3+2*x^2+3*x+6;F=subs(f,x,(s-1)/(s+1)) F =(s-1)^5/(s+1)^5+3*(s-1)^4/(s+1)^4+4*(s-1)^3/(s+1)^3+2*(s-1)^2/(s+1)^2+3*(s-1)/(s+1)+6syms x sx=(s-1)./(s+1);y=x.^5+3*x.^4+4*x.^3+2*x.^2+3*x+6;ysimple(y)y=19 - (72*s^4 + 120*s^3 + 136*s^2 + 72*s + 16)/(s + 1)^54、用MATLAB 语句输入矩阵A 和B123414233241432141322314,234123324114324132234114j j j j j j j j A B j j j j j j j j ++++⎡⎤⎡⎤⎢⎥⎢⎥++++⎢⎥⎢⎥==⎢⎥⎢⎥++++⎢⎥⎢⎥++++⎣⎦⎣⎦前面给出的是4 ×4 矩阵,如果给出A(5; 6) = 5 命令将得出什么结果?【求解】用课程介绍的方法可以直接输入这两个矩阵>> A=[1 2 3 4; 4 3 2 1; 2 3 4 1; 3 2 4 1]A =1 2 3 44 3 2 12 3 4 13 24 1若给出A(5,6)=5 命令,虽然这时的行和列数均大于B 矩阵当前的维数,但仍然可以执行该语句,得出>> A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 24 1 0 00 0 0 0 0 5复数矩阵也可以用直观的语句输入>> B=[1+4i 2+3i 3+2i 4+1i; 4+1i 3+2i 2+3i 1+4i;2+3i 3+2i 4+1i 1+4i; 3+2i 2+3i 4+1i 1+4i];B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i4.0000 + 1.0000i 1.0000 + 4.0000i5、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。
计算方法matlab实验指导
计算方法上机实验指导一、非线性方程求解(一)问题的指出 二分法 1.方法概要假定()f x 在[,]a b 上连续,()()0f a f b <且()f x 在(,)a b 内仅有一实根*x 取区间中点c ,若()0f c =,则c 恰为其根,否则,根据()()0f a f c <是否成立,可判断出根所属的新的有根子区间(,)a c 或(,)c b ,为节省内存,仍称其为(,)a b 。
运算重复进行,直到满足精度要求为止,即*||c x b a ε-<-<。
式中,a b 为新的有根子区间的端点。
2.计算框图Nowton 迭代法 1.方法概要0x 为初始猜测,则由递推关系1()()k k k k f x x x f x +=-' 产生逼近解*x 的迭代序列{}k x ,这个递推公式就是Newton 法。
当0x 距*x 较近时,{}k x 很快收敛于*x 。
但当0x 选择不当时,会导致{}k x 发散。
故我们事先规定迭代的最多次数。
若超过这个次数,还不收敛,则停止迭代另选初值。
2.计算框图(二)目的掌握二分法与牛顿法的基本原理及应用 (三)要求1.用二分法计算方程2sin 02x x -=在(1,2)内的根的近似值 2.用二分法计算方程310x x --=在(1,1.5)内的根的近似值5(0.510)ε-=⨯。
3.用牛顿法求下列非线性方程的近似根。
① 10x xe -= 00.5x = ② 310x x --= 01x =③ 2(1)(21)0x x --= 00.45x = 00.65x = 4.用改进的牛顿法12()()k k k k f x x x f x +=-'计算方程20(1)(21)00.55x x x --==的近似根,并与要求3.中的③的结果进行比较。
二、Gauuss 列主元消去法(一)问题的提出由地一般线性方程组在使用Gauss 消去法求解时,从求解过程中可以清楚地看到,若(1)0k kk a -=,必须施以行交换的手续,才能使消去过程继续下去。
matlab课程设计大作业
matlab课程设计大作业一、教学目标本课程的教学目标是使学生掌握MATLAB基本语法、编程技巧以及MATLAB 在工程计算和数据分析中的应用。
通过本课程的学习,学生将能够熟练使用MATLAB进行简单数学计算、线性方程组求解、函数图像绘制等。
1.掌握MATLAB基本语法和编程结构。
2.了解MATLAB在工程计算和数据分析中的应用。
3.熟悉MATLAB的函数库和工具箱。
4.能够使用MATLAB进行简单数学计算。
5.能够使用MATLAB求解线性方程组。
6.能够使用MATLAB绘制函数图像。
7.能够利用MATLAB进行数据分析和处理。
情感态度价值观目标:1.培养学生对计算机辅助设计的兴趣和认识。
2.培养学生团队合作和自主学习的能力。
二、教学内容本课程的教学内容主要包括MATLAB基本语法、编程技巧以及MATLAB在工程计算和数据分析中的应用。
1.MATLAB基本语法:介绍MATLAB的工作环境、基本数据类型、运算符、编程结构等。
2.MATLAB编程技巧:讲解MATLAB的函数调用、脚本编写、函数文件编写等编程技巧。
3.MATLAB在工程计算中的应用:介绍MATLAB在数值计算、线性方程组求解、图像处理等方面的应用。
4.MATLAB在数据分析中的应用:讲解MATLAB在数据采集、数据分析、数据可视化等方面的应用。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解MATLAB的基本语法、编程技巧以及应用案例,使学生掌握MATLAB的基本知识和技能。
2.案例分析法:通过分析实际工程案例,使学生了解MATLAB在工程计算和数据分析中的应用。
3.实验法:安排上机实验,使学生在实际操作中巩固所学知识,提高实际编程能力。
四、教学资源本课程的教学资源包括教材、实验设备、多媒体资料等。
1.教材:选用《MATLAB教程》作为主要教材,辅助以相关参考书籍。
2.实验设备:为学生提供计算机实验室,配备有MATLAB软件的计算机。
matlab教程习题答案
matlab教程习题答案MATLAB教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。
为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。
答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。
假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。
答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。
matlab章课后作业
matlab章课后作业MATLAB基础教程1~8章作业Matlab第⼀章1.阐述Matlab的功能Matlab作为⼀种⾼级计算软件,是进⾏算法开发、数据可视化、数据分析以及数值计算的交互式应⽤开发环境,已被⼴泛应⽤于不同领域。
Matlab的基本功能包括:数学计算功能、图形化显⽰功能、M 语⾔编程功能、编译功能、图形⽤户界⾯开发功能、Simulink建模仿真功能、⾃动代码⽣成功能。
Matlab第⼆章1.创建double的变量,并进⾏计算。
(1)a=87,b=190,计算a+b、a-b、a*b。
(2)创建uint8 类型的变量,数值与(1)中相同,进⾏相同的计算。
>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =>> c*dans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u) ans = 15.4189>> sqrt(u-3*v)/(u*v) ans =0 + 0.4410i 4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)ans =22.0000 -14.0000i >> sin(2-8*i) 1.3553e+003 +6.2026e+002i5.判断下⾯语句的运算结果。
计算方法matlab
计算方法matlab计算方法matlab是一种非常有用的工具,可以用于解决各种计算问题,包括矩阵计算、符号运算、数值求解等。
在本文中,我们将分步骤阐述如何使用计算方法matlab进行计算。
1.安装matlab首先,你需要从官方网站上下载matlab,并安装到你的电脑中。
在安装过程中,你需要选择你的操作系统、硬件配置等信息。
安装完成后,你需要输入许可证号码才能使用matlab软件。
2.打开matlab在windows中,使用matlab可以直接在桌面上找到matlab的图标,双击即可打开软件。
在其他操作系统中,你可以在终端中输入matlab命令来打开软件。
3.使用matlab进行计算使用matlab进行计算的方法有很多种。
你可以使用matlab的命令行模式,直接在命令行中输入想要计算的式子,matlab会返回计算结果。
例如,输入"2+3",回车后,matlab会返回"5"这个结果。
你还可以使用matlab的脚本文件来进行计算。
脚本文件是可以存储若干行matlab命令的纯文本文件。
你可以打开一个脚本文件,把要计算的命令写到文件中,然后运行这个脚本文件,matlab会按照命令执行计算,并输出结果。
4.使用matlab进行矩阵计算matlab是一种非常强大的矩阵计算工具。
在matlab中,你可以使用矩阵运算符号"+"、"-"、"*"、"/"等来进行矩阵的加减乘除运算。
例如,你可以输入" A=[1 2;3 4]; B=[5 6;7 8]; C=A*B",将矩阵A和B相乘,matlab会返回结果矩阵C。
此外,matlab还提供了很多高级的矩阵计算函数,如行列式det()、逆矩阵inv()、特征值eig()、奇异值分解svd()等。
5.使用matlab进行符号计算除了数值计算,matlab还支持符号计算。
matlab程序设计与应用习题答案
matlab程序设计与应用习题答案Matlab程序设计与应用习题答案Matlab是一种强大的数学软件,被广泛应用于科学计算、数据分析和工程模拟等领域。
无论是学术界还是工业界,Matlab都扮演着重要的角色。
在学习和应用Matlab时,我们常常会遇到一些习题,下面我将为大家提供一些常见习题的解答。
习题一:编写一个Matlab程序,计算一个数列的和。
数列的定义如下:a(1) = 1, a(n) = a(n-1) + 2*n, 其中n大于等于2。
解答一:```matlabfunction sum = calculate_sum(n)a = zeros(1, n);a(1) = 1;for i = 2:na(i) = a(i-1) + 2*i;endsum = sum(a);end```习题二:编写一个Matlab程序,求解一个线性方程组。
方程组的定义如下:2x + 3y + z = 7, 3x - 2y + 2z = 5, x + y - z = 3。
解答二:```matlabfunction [x, y, z] = solve_equations()A = [2, 3, 1; 3, -2, 2; 1, 1, -1];b = [7; 5; 3];solution = A\b;x = solution(1);y = solution(2);z = solution(3);end```习题三:编写一个Matlab程序,实现矩阵的转置操作。
解答三:```matlabfunction transposed_matrix = transpose_matrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```习题四:编写一个Matlab程序,实现矩阵的相乘操作。
MATLAB基础与应用教程 习题答案 作者 蔡旭晖 刘卫国 蔡立燕 第1-8章答案
第1章一、思考题4. (1) B=A(2:5,1:2:5)(2)A(7)=[](3) A=A+30(4)size(A)(5) t(find(t==0))=eps(6)t=reshape(x,3,4)(7)abs('matlab')(8)char(93)5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7](1) B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*C(2)A(find(A>=50 & A<=100))二、实验题1.x=-74/180*pi;y=-27/180*pi;sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi2.a=-3.0:0.1:3.0;exp(-0.3*a).*sin(a+0.3)3.x=[2,4;-0.45,5];log(x+sqrt(1+x.*x))/24. A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0]; (1)A*Bans =129 432 41977 -407 -1052402 591 12489A.*Bans =3 -108 13468 -360 518783 270 0(2) A^3ans =-28917 240246 -4368137883 -259101 27669171333 252504 38673A.^3ans =27 157464 839304 -91125 343658503 729000 3375(3)A/Bans =-5.8845 5.3549 -0.20286.3554 -5.6596 4.3293-6.6325 6.2078 9.0241B/Aans =30.2855 19.2643 -8.561433.4394 21.1547 -9.3974-0.7443 -0.3938 0.2830(4)[A,B]ans =3 54 2 1 -2 6734 -45 7 2 8 7487 90 15 9 3 0[A([1,3],:);B^2]ans =3 54 287 90 15600 183 -81684 282 72615 6 8255.a=1+2i;b=3+4i;c=exp(pi*i/6)c =0.8660 + 0.5000ic+a*b/(a+b)ans =1.6353 + 1.8462i第2章一、思考题3.s=0;for n=0:63s=s+2^n;enddisp(s)n=0:63;s=sum(2.^n)二、实验题1.x=input('输入一个四位整数:');y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)] z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)2.gh=input('输入工号');h=input('输入工时');dj=84;if h>120gz=dj*120+1.15*dj*(h-120);elseif h<60gz=dj*h-700;elsegz=dj*h;endformat bank;display([gh,gz])3.循环结构n=input('input n:');s=0;for k=1:ns=s+1/k^2;enddisplay(sqrt(s*6))向量运算n=input('input n:');k=1:n;display(sqrt(sum(1./k.^2)*6))4.y=0;k=0;while y<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])5.x0=0;x=1;k=0;a=input('a=');b=input('b=');while abs(x-x0)>=1e-5 && k<500x0=x;x=a/(b+x0);k=k+1;enddisplay([k,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);6.y=fun(40)/(fun(30)+fun(20))(1)函数文件fun.mfunction f=fun(n)f=n+log(n^2+5);(2)函数文件fun.mfunction f=fun(n)a=1:n;f=sum(a.*(a+1));第3章一、思考题4.t=0:0.01:1.5;y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);5.x=-10:0.01:10;y=linspace(-6,6,size(x,2))z=x.^3+3*x.*y.^2;plot3(x,y,z)6.x=100:100:400;y=100:100:400;z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334]; [X,Y]=meshgrid(x,y);mesh(X,Y,z)二、实验题1.(1)x=-10:0.01:10;plot(x,x-x.^3/3/2)(2)plot(x,exp(-x.*x/2)/2/pi)(3)x=-8:0.01:8;plot(x,sqrt((64-x.*x)/2))(4)t=0:pi/100:6*pi;plot(t.*sin(t),t.*cos(t))2. (1)x1=linspace(0,1,100);y1=2*x1-0.5;t=linspace(0,pi,100);x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);plot(x1,y1,'r-',x,y,'b:');text(0.4,1,'y=2x-0.5');text(-0.4,0.5,'x=sin(3t)cos(t)');text(-0.4,0.3,'y=sin(3t)sin(t)');(2)subplot(1,2,1);scatter(x1,y1,10)title('y=2x-0.5');subplot(1,2,2);scatter(x,y,10)3.subplot(1,21);x=1:1:100; y=sin(1./x);plot(x,y)subplot(1,2,2);fplot('sin(1/x)',[1,100])4.subplot(2,2,1);bar(t,y);subplot(2,2,2);stairs(t,y);subplot(2,2,3);stem(t,y)subplot(2,2,4);semilogy(t,y);5.theta=linspace(-pi,pi,100);ro=5.*cos(theta)+4;polar(theta,ro);fi=linspace(0,2*pi,100);a=1r=a.*(1+cos(fi));polar(fi,r);6.t=0:pi/20:2*pi;x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t; plot3(x,y,z);t=0:0.01:1;x=t;y=t.^2;z=t.^3;plot3(x,y,z);7.x=-30:0.1:0;y=0:0.1:30;[x,y]=meshgrid(x,y);z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2); meshc(x,y,z);8.x=linspace(-3,3,100);y=linspace(-3,3,100);[x y]=meshgrid(x,y);fxy=-5./(1+x.^2+y.^2);i=find(abs(x)<=0.8 & abs(y)<=0.5);fxy(i)=NaN;surf(x,y,fxy)9.u=linspace(1,10,100);v=linspace(-pi,pi,100);[u,v]=meshgrid(u,v);x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;surf(x,y,z);shading interp;light('position',[1,0,1]);10.t=0:pi/100:2*pi;y=sin(t);comet(t,y)第4章一、思考题5.(1)A=eye(3);(2)C=100+(200-100)*rand(5,6);(3)D=1+sqrt(0.2)*randn(1,500);(4)E=ones(size(A));(5)A=A+30*eye(size(A));(6)B=diag(diag(A))二、实验题1.P=pascal(5);H=hilb(5);Dp=det(P);Dh=det(H);Kp=cond(P);Kh=cond(H);P矩阵的性能更好,因为Kp较小2.A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3]B=[3,pi/2,45;32,-76,sqrt(37);5,72,4.5e-4;exp(2),0,97]A1=diag(A);B1=diag(B);A2=triu(A);B2=triu(B);A3=tril(A);B3=tril(B);rA=rank(A);rB=rank(B);nA=norm(A);nb=norm(B);cA=cond(A);cB=cond(B);3.A=[31,1,0;-4,-1,0;4,-8,-2];[V,D]=eig(A);4.A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2]) b=[1,0,0,0,0]';x1=inv(A)*b;x2=A\b;[L,U]=lu(A);x3=U\(L\b);[Q,R]=qr(a);[Q,R]=qr(A);x4=R\(Q\b)R=chol(A);x5=R\(R'\b)5.B=sparse(A);x1=inv(B)*b;x2=B\b;[L,U]=lu(B);x3=U\(L\b);第5章一、思考题3.A=randn(10,5);mean(A)std(A)max(max(A))min(min(A))sum(A,2)sum(sum(A))sort(A,1)sort(A,2,'descend')二、实验题1.A=rand(1,30000);mean(A)std(A)max(A)min(A)size(find(A>0.5))/size(A)2.h=[466,715,950,1422,1635];w=[7.04,4.28,3.40,2.52,2.13];hh=[500,900,1500];ww=interp1(h,w,hh,'spline')3.x=linspace(1,10,50);y=log(x);f=polyfit(x,y,5);yy=polyval(f,x);plot(x,y,'r-',x,yy,'g.')4.N=64; % 采样点数T=5; % 采样时间终点t=linspace(0,T,N); % 给出N个采样时间ti(I=1:N) x=3*exp(-t); % 求各采样点样本值xdt=t(2)-t(1); % 采样周期f=1/dt; % 采样频率(Hz)X=fft(x); % 计算x的快速傅立叶变换XF=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1) f=f*(0:N/2)/N; % 使频率轴f从零开始plot(f,abs(F),'-*') % 绘制振幅-频率图xlabel('Frequency');ylabel('|F(k)|')5.(1)p1=[1 2 0 0 7];p2=[1 -2];p3=[1 0 0 5 1];p12=conv(p1,p2);p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3];roots(p)(2)A=[-1,4,3;2,1,5;0,5,6];Px=polyval(p,A)Pxm=polyvalm(p,A)6.(1)z=fzero('3*x-sin(x)+1',0)(2)建立函数文件myfun.mfunction F=myfun(X)x=X(1);y=X(2);F(1)=x*x+y*y-9;F(2)=x+y-1;在命令窗口中输入以下命令:x=fsolve(@myfun,[3,0]',optimset('Display','off')) 第6章一、思考题2.fx=inline('1./(1+x.^2)');[I,n]=quad(fx,-100000,100000,1e-3);[I,n]=quadl(fx,-100000,100000,1e-3);x=-100000:0.01:100000;y=1./(1+x.*x);trapz(x,y);3.(1)fx=inline('-2*y+2*x*x+2*x');[t,y]=ode23(fx,[0,0.5],1)(2)fx=inline('y-exp(x)*cos(x)');[t,y]=ode23(fx,[0,3],1)二、实验题1.for x=1:3fx=[x,x^2,x^3;1,2*x,3*x;0,2,6*x];diff(fx)end2.(1)x=0:0.01:1;y=x.^10+10.^x+1./log10(x);dy=diff(y)/0.01;(2)x=0:0.01:1;y=log(1+x);dy=diff(y,2)/0.01;plot(x(1:99),dy)3.(1)fx=inline('x.^2.*sqrt(2*x.*x+3)');quad(fx,1,5)(2)fx=inline('x./sin(x).^2');quad(fx,pi/4,pi/3)(3)fx=inline('abs(cos(x+y))');dblquad(fx,0,pi,0,pi)(4)syms x y ;fx=x*y;int(int(fx,y^2,y+2),-1,2)x 的积分区间为【0,2】时fx=inline('x.*y');dblquad(fx,0,2,-1,2)4. x=0.3:0.2:1.5;y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325]; trapz(x,y)5.(1)yp=inline('-(1.2+sin(10*x))*y');[t,y]=ode23(yp,[0,5],1);(2)令''3,,21y x y x y x ='==,则可写出原方程的状态方程形式: 123233221sin 31)1(2cos 5cos x t x x t t t x x x x x +--++='='='⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡+-+-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'''t x x x t t tx x x cos 00)1(2cos 51sin 311000103212321 建立函数文件ztfun.m function y=ztfun(t,x)b=[0;0;cos(t)];y=[0,1,0;0,0,1;-1/(3+sin(t)),-1,5*cos(2*t)/(t+1)^2]*x+b; 解微分方程组[t,y]=ode23(@ztfun,[0,5],[1;0;2]);6.建立函数文件ztfun.mfunction yy=ztfun(t,y) yy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];解微分方程组 [t,y]=ode23(@ztfun,[0,5],[0;1;1])第7章一、思考题3.(1)数值积分fx=inline('exp(x).*(1+exp(x)).^2');quad(fx,0,log(2))符号积分f=sym('exp(x)*(1+exp(x))^2');v=int(f,0,log(2));eval(v)(2)略二、实验题1.A=sym('[1,2,3;x,y,z;3,2,1]')rank(A)inv(A)det(A)2.(1) y=sym('sqrt(x+sqrt(x+sqrt(x)))');y1=diff(y)y2=diff(y,'x',2)(2) syms x y;fxy=sin(x^2*y)*exp(-x^2-y);diff(diff(fxy,x),y)3.(1) syms xint(1/(1+x^4))(2) syms x tint((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t)) 4.syms n xsymsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,inf)symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,5)5.(1) syms xtaylor((exp(x)+exp(-x))/2,5,0)(2) syms a xtaylor(exp(-5*x)*sin(3*x+pi/3),5,a)6.(1)x=solve(sym('x^3+a*x+1=0'))(2)[x y]=solve('sqrt(x^2+y^2)-100=0,3*x+5*y-8=0')7. 方程转化为: π21'11't y y y y -=+=⎩⎨⎧符号解[y1,y11]=dsolve('Dy=y1,Dy1+y=1-t^2/pi','y(-2)=5,y1(-2)=5','t') 数值解编写函数文件ztfun.mfunction yy=ztfun(t,y)yy=[y(2);1-t^2/pi-y(1)];在命令窗口输入以下命令[t,y]=ode45(@ztfun,[-2,7],[-5;5]);t=linspace(-2,7,49)y2=y8.[x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')。
MATLAB数值计算方法与应用
MATLAB数值计算方法与应用数值计算是一门利用数学方法和计算机技术解决实际问题的学科。
它广泛应用于各个领域,如物理学、工程学、金融学等。
而MATLAB作为一种强大的数值计算软件工具,具有丰富的数值计算库和易用的编程语言,能够方便地进行各种数值计算与分析。
一、MATLAB概述MATLAB是一种交互式数值计算环境和编程语言,由矩阵运算、绘图函数和大量实用工具箱组成。
它提供了广泛的数值计算功能,如线性代数、插值、数值积分、常微分方程求解等。
通过MATLAB,我们可以快速实现数学模型的建立与求解,并对结果进行可视化。
二、线性代数计算线性代数在数值计算中扮演着重要的角色。
MATLAB提供了丰富的线性代数函数,如矩阵求逆、矩阵分解、特征值计算等。
利用这些函数,我们可以方便地解决线性代数问题,如线性方程组求解、最小二乘拟合等。
三、插值与拟合在实际问题中,我们常常需要通过一些已知数据点插值或者拟合出一个函数。
MATLAB提供了多种插值和拟合函数,如线性插值、样条插值、多项式拟合等。
这些函数能够帮助我们利用已知数据点,预测或逼近未知数据点的函数值。
通过这些方法,我们可以更好地理解和分析实验数据。
四、数值积分数值积分是数值计算中的常见任务之一。
MATLAB提供了多种数值积分方法,如梯形法则、辛普森法则等。
利用这些方法,我们可以对函数进行数值积分,求取其面积、平均值等重要信息。
这些方法在物理学、工程学等领域中得到广泛应用。
五、常微分方程求解常微分方程是自然界中很多现象的数学描述,求解常微分方程对于我们了解现象的规律至关重要。
MATLAB提供了多种常微分方程求解方法,如欧拉法、龙格-库塔法等。
通过这些方法,我们可以数值求解常微分方程,研究其解的行为、相图等重要特性。
六、优化方法优化问题在实际应用中非常常见。
MATLAB提供了多种优化工具箱,如线性规划、非线性规划等。
通过这些工具箱,我们可以求解各种约束条件下的优化问题,如最小化/最大化目标函数、满足一系列约束条件等。
数值计算与MATLAB方法课后答案
第一章习题1. 序列满足递推关系,取及试分别计算,从而说明递推公式对于计算是不稳定的。
n1 1 0.01 0.00012 0.01 0.0001 0.0000013 0.0001 0.000001 0.000000014 0.000001 0.0000000110-105 0.00000001 10-10n1 1.000001 0.01 0.0000992 0.01 0.000099 -0.000099013 0.000099 -0.00009901-0.010000994 -0.00009901 -0.01000099-1.00015 -0.01000099-1.0001初始相差不大,而却相差那么远,计算是不稳定的。
2. 取y0=28,按递推公式,去计算y100,若取(五位有效数字),试问计算y100将有多大误差?y100中尚留有几位有效数字?解:每递推一次有误差因此,尚留有二位有效数字。
3.函数,求f(30)的值。
若开方用六位函数表,问求对数时误差有多大?若改用另一等价公式计算,求对数时误差有多大?设z=ln(30-y),,y*, |E(y)| 10-4z*=ln(30-y*)=ln(0.0167)=-4.09235若改用等价公式设z=-ln(30+y),,y*, |E(y)|⨯10-4z*=-ln(30+y*)=-ln(59.9833)=-4.094074.下列各数都按有效数字给出,试估计f的绝对误差限和相对误差限。
1)f=sin[(3.14)(2.685)]设f=sin xyx*=3.14, E(x)⨯10-2, y*=2.685, E(y)⨯10-3,sin(x*y*)=0.838147484, cos(x*y*)=-0.545443667⨯(-0.5454) ⨯⨯10-2+3.14(-0.5454) ⨯⨯10-3|⨯10-2⨯10-2|E r(f)| ⨯10-2⨯10-2<10-22)f=(1.56)设f = x y ,x*=1.56, E(x)⨯10-2, y*=3.414, E(y)⨯10-3,⨯⨯⨯10-2⨯⨯⨯10-3|⨯⨯⨯10-2⨯⨯⨯10-3|=0.051|E r(f)| =0.01125.计算,利用下列等式计算,哪一个得到的结果最好,为什么?6.下列各式怎样计算才能减少误差?7. 求方程x2-56x+1=0的二个根,问要使它们具有四位有效数字,至少要取几位有效数字?如果利用伟达定理, 又该取几位有效数字呢?解一:若要取到四位有效数字,如果利用伟达定理,解二:由定理二,欲使x1,x2有四位有效数字,必须使由定理一知,∆至少要取7位有效数字。
《应用计算方法教程》matlab作业一
作业一1-1实验目的:寻求高效算法实验内容:设1x1nn n⎛⎫=+⎪⎝⎭,给出两个算法,求1023x,写出MATLAB程序,并统计计算法计算量。
若要计算量不超过20flop,应如何设计算法?算法一算法:令11tn=+,依次计算2481024,,,,t t t t⋅⋅⋅,最后用1024/t t。
界面:计算量:12flop算法二算法:直接计算t的1023次方。
程序:界面:计算量:1024flop若要计算量不超过20flop,采用第一种算法较合适。
作业二3-5 实验目的:应用不同迭代法求解代数方程实验内容:分别采用二分法、Newton法、Newton下山法、割线法求解方程4326005502002010x x x x-+--=在[0.1,1]中的根;精确到410-。
二分法算法:432()600550200201f x x x x x =-+--为连续函数,且由题意可知[0.1,1]为含根区间,令a=0.1,b=1,取p=(a+b)/2。
若f(p)=0则p 是方程f(x)=0的解;若f(a)f(p)<0则根在(a,p)内,取a 1=a,b 1=p ;否则根在区间(p,b)内,取a 1=p,b 1=b 。
重复上述过程直到达到精度要求为止。
程序:Newton 法 算法:建立牛顿迭代格式432132()600550200201()600*4*550*3*40020n n n n n n n n n n n n f p p p p p p p p f p p p p +-+--=-=-'-+- 直到1||n n p p +-小于精度要求时迭代结束,将1n p +作为结果输出。
Newton 下山法 算法:建立迭代格式432132()600550200201()600*4*550*3*40020n n n n n n n n n n n n f p p p p p p p p f p p p p λλ+-+--=-=-'-+- 其中λ是下山因子,在每步迭代中依次取1,1/2,1/4,…直到满足精度要求。
Matlab在计算方法中的应用
Matlab 在计算方法中的应用1,插值(1) lagrange 插值 直接调用lagrange 插值函数 langrange ()例 给出()ln f x x =的数值表,用lagrange 插值计算ln(0.54)的近似值x=[0.4:0.1:0.8];y=[-0.916291 -0.693147 -0.510826 -0.357765 -0.223144];lagrange (x,y,0.54)(2)runge 现象的产生.例.对21()1f x x=+在区间[-5,5]上,取10个节点用lagrange 插值(?) x=[-5:1:5];y=1./(1+x.^2);x0=[-5:0.1:5];y0=lagrange(x,y,x0);y1=1./(1+x.^2);plot(x0,y0,’--r ’)hold onplot(x0,y1,’-b ’) 原曲线(3)分段线性插值调用内部函数 : interp1 一维线性插值 yi=interp1(x,y,xi) yi=interp1(y,xi) (默认x=1:n,n 为y 的元素个数) yi=interp1(x,y,xi,’method ’) (method : (nearest 线性最近项插值),(linear 线性插值),(spline 三次样条插值),(cubic 三次插值))例 正弦函数插值x=[0:0.1:10];y=sin(x);xi=[0:.25:10];yi=interp1(x,y,xi);plot(x,y,’o ’,xi,yi)同理有二维线性插值 interp2 三次线性插值 interp3(4)三次样条插值调用函数spline 调用格式 yy=spline(x,y,xx) pp=spline(x,y)x=0:10;y=sin(x);xx=0:.25:10;yy=spline(x,y,xx);plot(x,y,’o ’,xx,yy)(5)最小二乘拟合调用函数 polyfit 调用格式 polyfit(x,y,n) (n 为多项式阶数)x=[0.5:0.5:3.0];y=[1.75 2.45 3.81 4.80 8.00 8.60];a=polyfit(x,y,2);x1=[0.5:0.05:3.0];y1=a(3)+a(2)*x1+a(1)*x1.^2;plot(x,y,’*’)hold onplot(x1,y1,’-r ’)(6)快速fourier 变换调用函数 fft (快速离散fourier 变换) 调用格式 fft(x) fft(x,n)fft2 (二维快速离散fourier 变换)fftn (n 维快速离散fourier 变换)ifft (快速离散fourier 逆变换)例 给出一张记录{k x }=[4 3 2 1 0 1 2 3],用fft 算法求{k x },离散频谱{k c },为了更好了解fft 算法的性质,再加入一对应记录{k y }=[1 1 1 1 1 1 1 1],求两记录的线性卷积运算.a 原题的计算x=[4 3 2 1 0 1 2 3];fft(x)b 卷积运算x=[4 3 2 1 0 1 2 3];y=[1 1 1 1 1 1 1 1];fx=fft(x,19)fy=fft(y,19)xy=conv(x,y)yx=ifft(fx.*fy)real(yx)2 积分和微分(1)矩形求积公式 调用函数 cumsum 调用格式 cumsum(x), cumsum(x,dim)(dim 指明求和是从第dim 维开始的。
matlab-8章课后作业
16530
>> c=uint8(87), d=uint8(190)
c =
87
d =
190
>> c+d
ans =
255
>> c-d
ans =
0
>> c*d
ans =
255
2.计算
(1)sin(60)
(2)e^3
(3)cos(3π/4)
>> sind(60)
ans =
0.8660
>> exp(3)
(4)a==d
(5)a|b>c
(6)~~d
>> a=39,b=58,c=3,d=7
a =
39
b =
58
c =
3
d =
7
>> a>b
ans =
0
>> a<c
ans =
0
>> a>b&&b>c
ans =
0
>> a==d
ans =
0
>> a|b>c
ans =
1
>> ~~d
ans =
1
7.编写脚本,计算上面第2题中的表达式。
(5)创建一个新的向量vecN,使其包含vec中所有等于2或4的元素的索引值.
(6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素.
>> vecR=vec'
vecR =
4
5
2
MATLAB及应用参考答案
《MATLAB及应用》上机作业学院名称:机械工程学院专业班级:测控1201学生姓名:学生学号:201 年 4 月《MATLAB及应用》上机作业要求及规范一、作业提交方式:word文档打印后提交。
二、作业要求:1.封面:按要求填写学院、班级、姓名、学号,不要改变封面原有字体及大小。
2.内容:只需解答过程(结果为图形输出的可加上图形输出结果),不需原题目;为便于批阅,题与题之间应空出一行;每题答案只需直接将调试正确后的M文件内容复制到word 中(不要更改字体及大小),如下所示:%作业1_1clcA=[1 2 3 4;2 3 5 7;1 3 5 7;3 2 3 9;1 8 9 4];B=[1+4*i 4 3 6 7 7;2 3 3 5 5 4+2*i;2 6+7*i 5 3 4 2;1 8 9 5 4 3];C=A*BD=C(4:5,4:6)三、大作业评分标准:1.提交的打印文档是否符合要求;2.作业题的解答过程是否完整和正确;3.答辩过程中阐述是否清楚,问题是否回答正确;4.作业应独立完成,严禁直接拷贝别人的电子文档,发现雷同者都以无成绩论处。
作业11、用MATLAB 可以识别的格式输入下面两个矩阵12342357135732391894A ⎛⎫⎪⎪ ⎪= ⎪⎪ ⎪⎝⎭,144367723355422675342189543i i B i +⎛⎫⎪+⎪= ⎪+ ⎪⎪⎝⎭再求出它们的乘积矩阵C ,并将C 矩阵的右下角23⨯子矩阵赋给D 矩阵。
赋值完成后,调用相应的命令查看MATLAB 工作空间的占有情况。
解:A=[1 2 3 4;2 3 5 7;1 3 5 7 ;3 2 3 9 ;1 8 9 4;]B=[1+4i 4 3 6 7 7;2 3 3 5 5 4+2i;2 6+7i 5 3 4 2;1 8 9 5 4 3;] B=[1+4i 4 3 6 7 7;2 3 3 5 5 4+2i;2 6+7i 5 3 4 2;1 8 9 5 4 3;] C=A*B D=C(4:5,4:6);2、设矩阵16231351110897612414152⎛⎫⎪⎪ ⎪ ⎪⎝⎭,求A ,1A -,3A ,12A A -+,1'3A A --,并求矩阵A 的特征值和特征向量。
含答案《MATLAB实用教程》
第二章 MATLAB 语言及应用实验项目实验一 MATLAB 数值计算三、实验内容与步骤1.创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a(1(2)用(3)用(42.矩阵的运算(1)利用矩阵除法解线性方程组。
⎪⎪⎩⎪⎪⎨⎧=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x 将方程表示为AX=B ,计算X=A\B 。
(2)利用矩阵的基本运算求解矩阵方程。
已知矩阵A 和B 满足关系式A -1BA=6A+BA ,计算矩阵B 。
其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=7/10004/10003/1A ,Ps: format rata=[1/3 0 0;0 1/4 0;0 0 1/7];b=inv(a)*inv(inv(a)-eye(3))*6*a(3)计算矩阵的特征值和特征向量。
已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1104152021X ,计算其特征值和特征向量。
(4)Page:322利用数学函数进行矩阵运算。
已知传递函数G(s)=1/(2s+1),计算幅频特性Lw=-20lg(1)2(2w )和相频特性Fw=-arctan(2w),w 的范围为[0.01,10],按对数均匀分布。
3.多项式的运算(1)多项式的运算。
已知表达式G(x)=(x-4)(x+5)(x 2-6x+9),展开多项式形式,并计算当x 在[0,20]内变化时G(x)的值,计算出G(x)=0的根。
Page 324(2)多项式的拟合与插值。
将多项式G(x)=x 4-5x 3-17x 2+129x-180,当x 在[0,20]多项式的值上下加上随机数的偏差构成y1,对y1进行拟合。
对G(x)和y1分别进行插值,计算在5.5处的值。
Page 325 四、思考练习题1.使用logspace 函数创建0~4π的行向量,有20个元素,查看其元素分布情况。
Ps: logspace(log10(0),log10(4*pi),20) (2) sort(c,2) %顺序排列 3.1多项式1)f(x)=2x 2+3x+5x+8用向量表示该多项式,并计算f(10)值. 2)根据多项式的根[-0.5 -3+4i -3-4i]创建多项式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业一1-1实验目的:寻求高效算法
实验内容:设
1
x1
n
n n
⎛⎫
=+
⎪
⎝⎭
,给出两个算法,求
1023
x,写出MATLAB程序,并统计计算法
计算量。
若要计算量不超过20flop,应如何设计算法?算法一
算法:
令
1
1
t
n
=+,依次计算2481024
,,,,
t t t t
⋅⋅⋅,最后用1024/
t t。
界面:
计算量:12flop
算法二
算法:
直接计算t的1023次方。
程序:
界面:
计算量:1024flop
若要计算量不超过20flop,采用第一种算法较合适。
作业二3-5 实验目的:应用不同迭代法求解代数方程
实验内容:分别采用二分法、Newton法、Newton下山法、割线法求解方程
432
6005502002010
x x x x
-+--=
在[0.1,1]中的根;精确到4
10-。
二分法
算法:
432()600550200201f x x x x x =-+--为连续函数,且由题意可知[0.1,1]为含根区间,
令a=0.1,b=1,取p=(a+b)/2。
若f(p)=0则p 是方程f(x)=0的解;若f(a)f(p)<0则根在(a,p)内,取a 1=a,b 1=p ;否则根在区间(p,b)内,取a 1=p,b 1=b 。
重复上述过程直到达到精度要求为止。
程序:
Newton 法 算法:
建立牛顿迭代格式
432132
()600550200201
()600*4*550*3*40020
n n n n n n n n n n n n f p p p p p p p p f p p p p +-+-
-=-=-'-+- 直到1||n n p p +
-
小于精度要求时迭代结束,将1n p +作为结果输出。
Newton 下山法 算法:
建立迭代格式
432132
()600550200201
()600*4*550*3*40020
n n n n n n n n n n n n f p p p p p p p p f p p p p λλ+-+--=-=-'-+- 其中λ是下山因子,在每步迭代中依次取1,1/2,1/4,…直到满足精度要求。
割线法 算法:
建立迭代格式
1
11()()()
n n n n n n n p p p p f p f p f p -+--=-
-
直到1||n n p p +-小于精度要求时迭代结束,将1n p +作为结果输出。
界面:
作业三 4-2 实验目的:熟悉LU 分解法求解方程。
实验内容:用MATLAB 编程做Doolittle 分解,求解方程组。
12345123451234512345
123451.3 2.4 3.4 4.22.4 1.4 3.7 6.3
22 3.6 6.8 5.52.543 6.6 3.6
1.5 5.3
2.8 6.2
x x x x x x x x x x x x x x x x x x x x x x x x x --+-=⎧⎪--++=⎪⎪
+-++=⎨⎪-+++=⎪⎪--++=⎩ 算法:
对 1.311 2.4 3.42.411 1.4 3.72
12 3.6 6.82.5143 6.61.511 5.3 2.8A ---⎛⎫
⎪
-- ⎪
⎪=- ⎪
- ⎪ ⎪--⎝
⎭
进行Doolittle 分解使得A LU =,则线性方程组
Ax b =的求解问题就转化为对三角形方程组Ly b
Ux y =⎧⎨=⎩
的求解。
Doolittle 分解过程为: 1,1,2,,j ij u a j n ==⋅⋅⋅
1111/,2,3,,i i l a u i n ==⋅⋅⋅
1
1
,i ij ij ik kj k u a l u i j -==-≤∑
1
1
()/,j ij ij ik kj jj k l a l u u i j -==->∑
然后依次求解Ly b =和Ux y =:
11
1
1,2,3,,i i
i ij j j y b y b l y i n -==⎧⎪⎨
=-=⋅⋅⋅⎪⎩
∑
1/()/,1,2,,1n n nn
n
i
i ij j ii j i x y u x y u x u i n n =+=⎧⎪⎨
=-=--⋅⋅⋅⎪⎩
∑
界面:
作业四 编写高斯顺序消元法求解下面方程组的程序及计算结果。
12312312310 6.2+1028.52+5 3.2
x x x x x x x x x --=⎧⎪
--=⎨⎪--=⎩
算法:
对1,2,,1k n =⋅⋅⋅-
(k 1)(k 1)
(k)
(k 1)(k 1)
(k)(k 1)
(k 1)/,,1,2,,ik ik kk ij ij ik kj i i
ik k m a a a a m a i j k k n b b m b ------⎧=-⎪=+=++⋅⋅⋅⎨⎪=+⎩ 公式中(0)(0)
,,,1,2,,ij ij i
i a a b b i j n ===⋅⋅⋅。
利用回代法求解得方程组的解为
(1)(1)
(1)(1)(1)1/()/,1,2,,1n n n n nn n k k k k
k kj j kk j k x b a x b a x a k n n -----=+⎧=⎪⎨=-=--⋅⋅⋅⎪⎩
∑
界面:
作业五 编写Jacobi 迭代法和Seidel 迭代法求解上述方程组的程序,并计算出结果。
算法:
Jacobi 迭代格式为
(1)()()
123(1)
()()
213(1)()()1120.10.10.620.10.20.850.40.20.64k k k k k k k k k x x x x x x x x x +++⎧=++⎪=++⎨⎪=++⎩
Seidel 迭代格式为
(1)()()123(1)
(1)()
213(1)(1)(1)1
120.10.10.620.10.20.850.40.20.64k k k k k k k k k x x x x x x x x x ++++++⎧=++⎪=++⎨⎪=++⎩ 程序:
界面:。