数值计算大作业_第1页
数值计算大作业_第2页
数值计算大作业_第3页
数值计算大作业_第4页
数值计算大作业_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数值计算大作业数值计算大作业数值计算大作业资料仅供参考文件编号:2022年4月数值计算大作业版本号:A修改号:1页次:1.0审核:批准:发布日期:课程设计课程名称:设计题目:学号:姓名:完成时间:题目一:非线性方程求根一摘要非线性方程的解析解通常很难给出,因此非线性方程的数值解就尤为重要。本实验通过使用常用的求解方法二分法和Newton法及改进的Newton法处理几个题目,分析并总结不同方法处理问题的优缺点。观察迭代次数,收敛速度及初值选取对迭代的影响。用Newton法计算下列方程(1),初值分别为,,;(2)其三个根分别为。当选择初值时给出结果并分析现象,当,迭代停止。解:1)采用MATLAB进行计算;首先定义了Newton法:functionkk=newton(f,df,x0,tol,N)%NewtonMethod(牛顿法)%Thefirstparameterfisaexternalfunctionwithrespecttoviablex.(第一个参数也就是本题所用的函数f)%Thesecondparameterdfisthefirstorderdiffentialfunctionoffx.(第二个参数也就是本体所用函数f的导数方程df)%x0isinitialiterationpoint(初值).%tolisthetoleranceoftheloop(精度).%Nisthemaximumnumberofiterations(循环上限).x=x0;f0=eval(f);df0=eval(df);n=0;disp('[nxnxn+1fn+1]');whilen<=Nx1=x0-f0/df0;x=x1;f1=eval(f);X=[n,x0,x1,f1];disp(X);ifabs(x0-x1)<tolfprintf('Theprocedurewassuccessful.')kk=X;returnelsen=n+1;x0=x1;f0=f1;endendifn==N+1fprintf('themethodfailedafterNiterations.'),kk=0;End我们把Newton法存为.m格式的文件;之后我们运行程序:clear;clc;symsxf=x^3-x-1;df=diff(f,x);x=newton(f,df,1,,50);x会得到一下结果[nxnxn+1fn+1]0到第50次迭代时候会出现该问题:themethodfailedafterNiterations.x=0;同样测试x0=、得不出结果,判断出初值离真值太远,所以我们采用牛顿下山法进行计算迭代:我们定义了其中的f函数和df函数,并且分别存为.m格式的文件,其代码如下:f:functiony=f(x)y=x^3-x-1;df:functiony=df(x)y=3*x^2-1;之后我们定义newton下山法同时也存为.m的程序:function[x,i]=downnewton(f,df,x0,tol)k=0;i=1;disp('[nxnxn+1fn+1]');while(k==0)fx=feval('f',x0);dfx=feval('df',x0);t=0;u=1;while(t==0)dx=-fx/dfx;x1=x0+u*dx;fx1=feval('f',x1);fx0=feval('f',x0);if(abs(fx1)>abs(fx0));u=u/2;elset=1;endendX=[i,x0,x1,fx1];disp(X);if(abs(fx1)<tol)k=1;elsex0=x1;i=i+1;endendx=x1;i=i;end之后带入x0=;downnewton('f','df',,10^(-6))[nxnxn+1fn+1]ans=带入x0=;downnewton('f','df',,10^(-6))[nxnxn+1fn+1]ans=带入x0=1;downnewton('f','df',1,10^(-6))[nxnxn+1fn+1]ans=同样采用Newton下山法:重新定义f、df:f:functiony=f(x)y=x^3+94*x^2-389*x+294;df:functiony=df(x)y=3*x^2+188*x-389;再带入初值x0=2;downnewton('f','df',2,5*10^(-6))[nxnxn+1fn+1]12-980ans=-98得出x=-98;分析:先画出该函数的图像;x=(-100:.1:100);ezplot('x^3+94*x^2-389*x+294',[-100100])得出该图像如图:根据牛顿法的几何解释,在x0=2的点做切线,与y相交,交点的横坐标值为x=-98则结束了该现象。题目二:线性方程组求解一摘要对于实际的工程问题,很多问题归结为线性方程组的求解。本实验通过实际题目掌握求解线性方程组的数值解法,直接法或间接法。有一平面机构如图所示,该机构共有13条梁(图中标号的线段)由8个铰接点(图中标号的圈)联结在一起。上述结构的1号铰接点完全固定,8号铰接点竖立方向固定,并在2号、5号和6号铰接点,分别有如图所示的10吨、15吨和20吨的负载,在静平衡的条件下,任何一个铰接点上水平和竖立方向受力都是平衡的,以此计算每个梁的受力情况。786543 4 8786543 1 3 5 7 9 11 1221 2 6 10 1321 10 15 20令,假设为各个梁上的受力,例如对8号铰接点有对5号铰接点,则有针对各个铰接点,列出方程并求出各个梁上的受力。解:针对此题我们采用雅克比迭代法;首先我们先写出Jacobi迭代的程序,并且存为.m的形式:function[x,n]=jacobi(A,b,x0,eps,varargin)ifnargin==3eps=;M=200;elseifnargin<3errorreturnelseifnargin==5M=varargin{1};endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=D\(L+U);f=D\b;x=B*x0+f;n=1;whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend之后我们根据节点进行计算杆的力,设受拉为正;因为角度为45º,所以正弦值和余弦值相等都设为a=2^(-1/2);则可列方程:af1=0;af1+f2=0;f3=10;f2-f6=0;af1+f3+af5=0;af1-f4-af5=0;f4-f8=0;f7=0;af5+f7+af9=15;f11=20;f10-f13=0;af12=0;af12+f13=0;输入到matlab中有如下:A=[2^(-1/2)000000000000;2^(-1/2)100000000000;0010000000000;01000-10000000;2^(-1/2)0102^(-1/2)00000000;2^(-1/2)00-1-2^(-1/2)00000000;0001000-100000;0000001000000;00002^(-1/2)0102^(-1/2)0000;0000000000100;000000000100-1;000000000002^(-1/2)0;000000000002^(-1/2)1;],b=[0010000001520000]'得出矩阵A和bA= 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 00 0 1 0 0 0 0 0 0 0 0 0 00 1 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 00 0 0 1 0 0 0 -1 0 0 0 0 00 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 1 0 00 0 0 0 0 0 0 0 0 1 0 0 -10 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论