关于数值计算之误差计算的matlab实验定义函数程序如下:function f=f(x)f=x.^3-log(2.*x)+1./x定义一阶导数第一种算法函数dsh1为:function y=dsh1(fu,x,h)y=(feval(fu,x+h)-feval(fu,x))/h;y;然后运行之后得到的是:

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 17:49:20

关于数值计算之误差计算的matlab实验定义函数程序如下:function f=f(x)f=x.^3-log(2.*x)+1./x定义一阶导数第一种算法函数dsh1为:function y=dsh1(fu,x,h)y=(feval(fu,x+h)-feval(fu,x))/h;y;然后运行之后得到的是:
关于数值计算之误差计算的matlab实验
定义函数程序如下:
function f=f(x)
f=x.^3-log(2.*x)+1./x
定义一阶导数第一种算法函数dsh1为:
function y=dsh1(fu,x,h)
y=(feval(fu,x+h)-feval(fu,x))/h;
y;
然后运行之后得到的是:
>> dsh1('f',2,0.01)
f =
7.2268
f =
7.1137
ans =
11.3126
为什么别人出现的都只有一个f的值,我的是两个,而且做到二阶的时候更是出现了4个,还有,ans的值到底是什么?

关于数值计算之误差计算的matlab实验定义函数程序如下:function f=f(x)f=x.^3-log(2.*x)+1./x定义一阶导数第一种算法函数dsh1为:function y=dsh1(fu,x,h)y=(feval(fu,x+h)-feval(fu,x))/h;y;然后运行之后得到的是:
首先明确一下,你的两个函数如果写在同一个M文件中,肯定是dsh1在前面(如果是写在两个文件里就不存在前后的问题了).

出现两个 f 的原因是,你在下面这句里:
  y=(feval(fu,x+h)-feval(fu,x))/h;
使用 feval 调用了两次函数 f ,而在函数 f 中的赋值语句
  f=x.^3-log(2.*x)+1./x
后面没有分号,就会把计算的结果显示在屏幕上(一共两次).

至于ans,是 MATLAB 中用于存储计算结果的默认变量.由于你在命令行调用时
dsh1('f',2,0.01)
没有指定计算结果应该保存在哪个变量中,就默认使用ans保存调用dsh1函数的值了.