计算方法上机实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算方法上机实验报告1.实验目的:学会用递推公式做题,学会使用matlab来编程学会对各种方案进行可行性分析。学习非线性方程f(x)=0数值求根命令fzero,学习非线性方程组F(X)=0数值求根命令fsolve。2.实验课题内容:(1)【实验2-1】割线法(见P24(2-13)式)设a,b为迭代初值,求两点(a,f(a))与(b,f(b))的连线(割线)与x轴的交点记为c再把迭代初值换成b,c,重复计算.【实验2-1】绘制的隐函数的图像3.实验采用的集体算法试验的matlab实验程序为【实验2-1】割线法(见P24(2-13)式)functionmysecantf=inline('x-exp(-x)');a=0.4;b=0.6;delta=eps;epsilon=eps;max1=30;[c,err,iter,yc]=secant(f,a,b,delta,epsilon,max1)%---------------------------------------------------------function[c,err,iter,yc]=secant(f,a,b,delta,epsilon,max1)%[c,err,iter,yc]=secant(f,a,b,delta,epsilon,max1)%输入:f连续函数%a,b迭代初值%delta,epsilon容差%max1最大迭代次数%输出:c近似根%err误差%iter迭代次数%yc=f(c)fork=1:max1ya=feval(f,a);%ya=f(a)yb=feval(f,b);c=a-ya*(a-b)/(ya-yb);%割线与x轴交点的横坐标err=abs(c-b);%相邻两次迭代的误差relerr=err/(abs(c)+eps);%相对误差,eps是matlab常数(机器精度)约为1e-16%为什么分母要加上一个小常数?yc=feval(f,c);if(errdelta)|(relerrdelta)|(abs(yc)epsilon)%'|'是'或'breakenda=b;b=c;enditer=10;%-------------------------------------实验结果::UsingToolboxPathCache.Typehelptoolbox_path_cacheformoreinfo.Togetstarted,selectMATLABHelpfromtheHelpmenu.c=0.5671err=1.2212e-015iter=10yc=-1.1102e-016【实验2-2】绘制的隐函数的图像functionimplicit_functionglobalp%定义全局变量n=101;x=linspace(-5,5,101);y=zeros(1,n);%定义矩阵,初值是零,这是最常用的定义矩阵的方法y0=-4.6;%第一次迭代初值fork=1:np=x(k);y(k)=fzero(@fun,y0);y0=-4.6;endplot(x,y,'r')%作图title('隐函数的图像')%加个标题%------------------------------functionz=fun(y)%定义函数,这是最常用的定义函数的方式globalpx=p;z=y^3/(2+0.1*sin(x*y))+x^2-4*x;实验结果:实验体会:这些题目都不是很难,只不过我们对MATLAB的不了解,感到无从下手,许多很简单的程序代码不会,对书本上很多基础知识掌握不彻底。通过这次实验我们了解到计算方法的一些算法,对基础知识更加了解了。

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功