Matlab及应用 - 第4章 MATLAB 数值计算
- 格式:ppt
- 大小:3.85 MB
- 文档页数:91
MATLAB数值计算(读书日记及程序编写)第四章方程求根 (2)第四章 方程求根#二分法 求2的值转化成方程02-2=x最慢的方法是取初值1001=x 02-21>x ,取502=x这样得到也可以x0=a, x1=x0+h, 进行扫描,若f(x0)*f(x1)<0, 则扫描成功,有根区间为[x0,x1],否则继续扫描,如果出现x1>b ,表面扫描失败,再缩小步长h, 再次扫描。
>> format long %让显示的值为M=2,a=1,b=2,k=0;while b-a>epsx=(a+b)/2;if x^2>Mb=xelsea=xendk=k+1end执行后得到的值为:k =50b =1.414213562373095k =51b =1.414213562373095k =52最后得到的值就是Matlab 能表达的最接近的值。
#牛顿法求解f(x)=0的牛顿法是在f(x)画一条切线,确定切线与x 轴的焦点,通过迭代 )(x f )f(x -n n 1'=+n n x x 对于平方根的问题,牛顿法简洁有效,换成f(x)=x^2-M, )(x f n '=2x 这样⎪⎪⎭⎫ ⎝⎛+==+n n n n x M x M x x 212x -x -n 2n 1 该算法就是反复求x 和M/x 的平均值,Matlab 的程序为:format long %让显示的值为xprev=2; %取的不等于初值x 的一个值,让判断能继续x=100; %取的初值为3while abs(x-xprev)>eps*abs(x)xprev=x;x=0.5*(x+2/x)endx = 1.833333333333333x = 1.462121212121212x = 1.414998429894803x = 1.414213780047198x = 1.414213562373112x = 1.414213562373095x = 1.414213562373095可见6步很快就收敛然而,若f(x)不具有连续的、有界的一阶、二阶导数,牛顿法的收敛将变得很慢。
数值分析第四章外推法计算数值微分MATLAB计算实验报告数值分析MATLAB计算实验报告姓名班级学号⼀、实验名称⽤MATLAB编程实现数值微分的外推法计算。
⼆、实验⽬的1.掌握数值微分和定义和外推法的计算过程;2.了解数值微分外推法的计算⽅法并且编写出与其算法对应的MATLAB程序代码;3.体会利⽤MATLAB软件进⾏数值计算。
三、实验内容⽤外推法计算f(x)=x2e?x在x=0.5的导数。
四、算法描述1.命名函数。
2.如果输⼊未知数少于四个,默认精度10^-33.描述T表矩阵坐标4.依次赋值计算 T表第⼀列5.根据数值微分计算公式求出T表矩阵的值6.若达到精度则运算结束,若未达到循环计算7.输出T表,得出的值就是导数值五、实验结果六、实验结果分析此实验通过MATLAB实现外推法数值微分计算,得到相应的数据,⽅便对数据进⾏分析。
从结果可以看出,当步长h=0.025时⽤中点微分公式只有3位有效数字,外推⼀次达到5位有效数字,外推两次达到9位有效数字。
七、附录(程序)function g=waituifa(fname,x,h,e)if nargin<4,e=1e-3;end;i=1;j=1;G(1,1)=(feval(fname,x+h)-feval(fname,x-h))/(2*h);G(i+1,1)=(feval(fname,x+h/2)-feval(fname,x-h/2))/h;G(i+1,j+1)=(4^j*G(i+1,j)-G(i,j))/(4^j-1);while abs(G(i+1,i+1)-G(i+1,i))>ei=i+1;G(i+1,1)=(feval(fname,x+h/2^i)-feval(fname,x-h/2^i))/(2*h/2^i); for j=1:iG(i+1,j+1)=((4^j)*G(i+1,j)-G(i,j))/(4^j-1);endendGg=G(i+1,i+1);。
MATLAB 数学工具软件实例简明教程王正盛编写南京航空航天大学第一章MATLAB简介MALAB译于矩阵实验室(MATrix LABoratory),是用来提供通往LINPACK和EISPACK矩阵软件包接口的。
后来,它渐渐发展成了通用科技计算、图视交互系统和程序语言。
MATLAB的基本数据单位是矩阵。
它的指令表达与数学、工程中常用的习惯形式十分相似。
比如,矩阵方程Ax=b,在MATLAB中被写成A*x=b。
而若要通过A,b求x,那么只要写x=A\b即可,完全不需要对矩阵的乘法和求逆进行编程。
因此,用MATLAB解算问题要比用C、Fortran等语言简捷得多。
MATLAB发展到现在,已经成为一个系列产品:MATLAB“主包”和各种可选的toolbox“工具包”。
主包中有数百个核心内部函数。
迄今所有的三十几个工具包又可分为两类:功能性工具包和学科性工具包。
功能性工具包主要用来扩充MATLAB的符号计算功能、图视建模仿真功能、文字处理功能以及硬件实时交互功能。
这种功能性工具包用于多种学科。
而学科性工具包是专业性比较强的,如控制工具包(Control Toolbox)、信号处理工具包(Signal Processing Toolbox) 、通信工具包(Communication Toolbox)等都属此类。
开放性也许是MATLAB最重要、最受人欢迎的特点。
除内部函数外,所有MATLAB 主包文件和各工具包文件都是可读可改的源文件,用户可通过对源文件的修改或加入自己编写文件去构成新的专用工具包。
MATLAB已经受了用户的多年考验。
在欧美发达国家,MATLAB 已经成为应用线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。
在设计研究单位和工业部门,MATLAB被广泛地用于研究和解决各种具体工程问题。
第二章MATLAB入门2.1工作窗和指令行的操作除了通过菜单选项对工作窗进行控制外,MATLAB还提供了许多通过键盘输入的控制指令。
第4章数值运算习题 4 及解答1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。
(模拟数据从prob_data401.mat 获得)〖目的〗●强调:要非常慎用数值导数计算。
●练习mat数据文件中数据的获取。
●实验数据求导的后果●把两条曲线绘制在同一图上的一种方法。
〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearload prob_data401.mat(2)用diff求导的指令dt=t(2)-t(1);yc=diff(y)/dt; %注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')grid on(3)用gradent 求导的指令(图形与上相似)dt=t(2)-t(1);yc=gradient(y)/dt;plot(t,y,'b',t,yc,'r')grid on〖说明〗● 不到万不得已,不要进行数值求导。
● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级以上。
● 求导会使数据中原有的噪声放大。
2 采用数值计算方法,画出dt tt x y x ⎰=0sin )(在]10 ,0[区间曲线,并计算)5.4(y 。
〖提示〗● 指定区间内的积分函数可用cumtrapz 指令给出。
● )5.4(y 在计算要求不太高的地方可用find 指令算得。
〖目的〗● 指定区间内的积分函数的数值计算法和cumtrapz 指令。
● find 指令的应用。
〖解答〗dt=1e-4;t=0:dt:10;t=t+(t==0)*eps;f=sin(t)./t;s=cumtrapz(f)*dt;plot(t,s,'LineWidth',3)ii=find(t==4.5);s45=s(ii)s45 =1.65413 求函数x ex f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。