资源描述:
《拉格朗日牛顿差值数值实验报告(二)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数值实验报告二班级:计通学院学号:姓名:2016-10-171.数值实验问题运用matlab编写*.m文件,编写两种差值函数。根据给定的样本占.门、、•X123-45Y24827211822262计算所需差值节点及差值函数。具体要求.•1)用拉格朗日差值函数、牛顿差值算法分别计算差值多项式;2)在差值区间取间断点,分别用拉格朗日及牛顿差值算法计算出差值函数是多少;3)利用要求2的基木点画出图像。2.数值方法分别采用拉格朗日差值算法以及牛顿差值算法;3.数值结果给出程序运行结果1)通过拉格朗日算法,求得多项式为yh=L(xh)=lagrange(x,y
2、,xh);通过牛顿差值算法,求得多项式为yh=N(xh)=newton(x,y,xh)2)在区问(-4,5)上取步长为1的区间点并求值:x2二xh二(一4:1:5)xh-4-3-2-1012345单位L(xh)1.18200.39800.09200.01200.00200.00200.04800.27200.90202.26201.0e+003N(xh)11823989212224827290222621.0e+0013)做出图像a)拉格朗日差值点做图:plot(x2,lagrangel(x,y,x2),’ro—’)b)牛顿差值点做图:plot(x2
3、,newtown(x,y,x2),’g*-’)4.讨论例如:总结数值实验中出现的问题,分析数值实验结果等。首次实际应用MATLAB编写应用程序,感觉到了许多不一样的地方和方便但是也需要加深熟悉的地方:a)matlab不像C++等过程化代码,强调变量类型,变量格式。可以方便申请及运算。但是右点搞不明白数值和数组之间的构造及转换。比如zeros()及ones()这些函数和直接赋值01的区别;b)输出语句的格式控制不能掌握,如同样的运算结果拉格朗日程序结果用Y科学计数法,而牛顿差值却直接给Y算数结果;b)在数学公式转换成程序语句时,构造能力右所欠缺。面对中
4、顿差值公式的转换,两个for循环的嵌套运算深感头皮发麻,试着改着才能把最后的结果算好。程序代码:在此复制一一数值实验中所写的Matlab程序代码a)拉格朗日差值函数:functionyh=lagrangel(x,y,xh)n=lcngth(y):yh=zeros(size(xh));%构造差值点数据fork=l:n,pt=l;forj=[l:k-1k+1:n],pt=pt.*(xh-x(j))/(x(k)-x(j));endyh=yh+y(k)*pt;endb)牛顿差值函数:%先计算茶商,然后再调用差商运算结果计算牛顿差值function[p,q]=
5、chashang(x,y)n^length(x);p(:,l)=x;P(:,2)=y;forj=3:n+lN=diff(p(l:n4-3-j,j-1));M=x(j-1:n)-x(1:n+2-j);p(kn+2-j,j):N’./M;endq=p(l,2:n+l)’;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%functionyh=ncwtown(x,y,xh)[pq]=chashang(x,y):n^length(y):%yh=zeros(size(xh));%构造差值点数据yh=0;%搞不
6、懂zeros()和直接等于零的差别fork=l:npt=l;forj-1:k-1,pt=pt.*(xh-x(j));endyh=yh+q(k)*pt;end