关于数值计算之误差计算的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的值到底是什么?

首先明确一下,你的两个函数如果写在同一个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函数的值了。
温馨提示:内容为网友见解,仅供参考
无其他回答

数值运算的误差(MATLAB实验)?
方法1、计算f(0.01)的真值。其代码 format long g %将输出格式设置为长固定十进制小数点格式 x=0.01;fx=(exp(x)-1-x)\/x^2 format 方法2、使用六位有效数字计算 digitsOld = digits(7);x=0.01;fx0=exp(x);fx0=(vpa(fx0,7)-vpa(1+x,7))\/ vpa(x^2,7);fx1=vpa(fx0,6)...

关于数值计算之误差计算的matlab实验
首先明确一下,你的两个函数如果写在同一个M文件中,肯定是dsh1在前面(如果是写在两个文件里就不存在前后的问题了)。出现两个 f 的原因是,你在下面这句里:y=(feval(fu,x+h)-feval(fu,x))\/h;使用 feval 调用了两次函数 f ,而在函数 f 中的赋值语句 f=x.^3-log(2.*x)+1.\/x...

如何用matlab求输入2组数据的相对误差
首先,假设你有两组数据,A组存储在向量A中,例如:A = [1 2 3 4 5 6]; 而B组数据存储在向量B中:B = [9 7 6 56 7 与广计否浓联府台穿土6]; 然后,你可以使用向量运算来计算每个元素的相对误差。这可以通过(A - B)除以B来实现:relative_error = (A - B).\/B; 这样,`relative...

matlab涉及小数运算精度问题
matlab计算时默认的采用double类型的数据,所以绝大多数的数值都是存在误差的。在比较两个数是否相等时,就判断这两个数的差是否在误差内,在内部就认为想等,在外部就认为不等。你出现的这个问题正好是由于这个原因,d1=220-N3 d1= 2.842170943040401e-014 而d2=eps(220)=2.842170943040401e-014 ...

MATLAB ceil的问题
>> format hex>> 0.2*3*5ans = 4008000000000001>> 3ans = 4008000000000000刚好在最低位由于数值计算误差导致略大于3,所以求ceil的结果是4。对付数值计算误差没什么太好的办法,有时候换一种写法,结果就会不同:>> format short>> ceil(0.2*5*3)ans = 3很崩溃是不是?

matlab ceil的问题
>> format hex>> 0.2*3*5ans = 4008000000000001>> 3ans = 4008000000000000刚好在最低位由于数值计算误差导致略大于3,所以求ceil的结果是4。对付数值计算误差没什么太好的办法,有时候换一种写法,结果就会不同:>> format short>> ceil(0.2*5*3)ans = 3很崩溃是不是?

数值计算方法MATLAB的简单应用题。
第一题可以考虑用函数fzero,例子x=fzero(@sin,3) 得到pi。第二题不宜直接用插值函数interp1,最好是用线性拟合后(物理学知识告诉我们,电阻值和温度呈线性关系),再进行插值计算,最大程度地利用所有数据点,来减小误差。interp1函数实质上只利用2个最近的数据点,一旦这2个数据点测量有较大误差...

怎么用MATLAB计算均方误差啊
1、首先按照下方图片中的代码进行编辑均方误差函数mse代码。2、编辑完上面图片中的代码之后,继续根据下方图片中的代码进行编辑。3、编辑完成之后,运行改代码就可以得到想要的均方误差了。MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是由美国MathWorks公司于20世纪80年代初推出的一套以矩阵计算为基础的、...

求论文!!!关于MATLAB的数值运算问题的研究
是学校要求做一个关于这个问题的课程设计,要求如下:课题内容1.查阅相关文献,弄清Matlab中关于MATLAB解决数值运算问题的研究;2.至少编程实现一具体算例,并撰写出论文;3.通过对本... 是学校要求做一个关于这个问题的课程设计,要求如下: 课题内容 1. 查阅相关文献,弄清Matlab中关于MATLAB解决数值运算问题的研究; 2....

matlab中rem算小数出错
这是由数值计算误差造成的,2000.1-1000.1的结果并不是精确的1000,而是比1000小的数:>> num2str(2000.1-1000.1,'%.17g')ans =999.99999999999989这个数对100求余数,结果是99.99999999999989,但按照默认的显示格式会显示成100.

相似回答