matlab里画同一个函数但不同表达式所得的曲线为什么不同
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 07:32:51
matlab里画同一个函数但不同表达式所得的曲线为什么不同
比如:f(x)=(1-x)^6,g(x)=x^6-6x^5+15x^4-20x^3+15x^2-6x+1,f(x)与g(x)是同一个函数,但在matlab里画出的曲线却不同
比如:f(x)=(1-x)^6,g(x)=x^6-6x^5+15x^4-20x^3+15x^2-6x+1,f(x)与g(x)是同一个函数,但在matlab里画出的曲线却不同
让我看看你的画图程序?
再问: x=linspace(0.995,1.005,100); y1=(1-x).^6; y2=x.^6-6*x.^5+15*x.^4-20*x.^3+15*x.^2-6*x+1; plot(x,y1,x,y2) legend('y1','y2'); xlabel('x'); ylabel('y');
再答: 看了下面的程序,你就会明白,在计算数学里,式子不同,计算机计算的结果是有误差的。这就是为什么计算数学发展成为一门独立学科的很重要的原因。你的程序没错,问题不在于你自身,在于计算机处理问题的方法上。由于算式的不同,导致了精度的不同,最终计算结果也不同。但是又有特例,比如你可以试着把自变量范围改为linspace(1:0.001:100),画出的图像又是一样的。所以具体问题要具体分析,看你什么时候适合选用什么样的方程。这是计算数学里的很重要的一课。 >> format long syms x options=optimset('Display','iter'); [x,fval]=fsolve(@(x)(1-x).^6-(x.^6-6*x.^5+15*x.^4-20*x.^3+15*x.^2-6*x+1),[0.995;2;3.005],options) Norm of First-order Trust-region Iteration Func-count f(x) step optimality radius 0 4 9.89575e-027 2.53e-019 1 Equation solved at initial point. fsolve completed because the vector of function values at the initial point is near zero as measured by the default value of the function tolerance, and the problem appears regular as measured by the gradient. x = 0.995000000000000 2.000000000000000 3.005000000000000 fval = 1.0e-013 * 0.005259668650980 0 0.994759830064140 我们知道,两个算式是一样的,所以我们应该觉得在 x= 0.995000000000000 2.000000000000000 3.005000000000000 这三点上,两者之差应该为0.但是我们看到,他们是有误差的。这就是计算数学要研究的内容,要考虑的内容。
再问: 这看起来很深奥,小弟才刚刚学matlab,很多都不懂, 大哥能不能通俗点解释下?谢谢
再答: 好吧,这么和你说吧,你不需要细究这个问题,你只需要知道有这么个事情,然后是因为计算误差导致的就ok了,要是详细证明二者的误差,那是比较麻烦的。好吗? 我上面给你做的,是取了三个点,然后计算二者的误差给你看。最后的fval的三个值就是误差大小。明白这些个你就进步很多拉、就够了。
再问: x=linspace(0.995,1.005,100); y1=(1-x).^6; y2=x.^6-6*x.^5+15*x.^4-20*x.^3+15*x.^2-6*x+1; plot(x,y1,x,y2) legend('y1','y2'); xlabel('x'); ylabel('y');
再答: 看了下面的程序,你就会明白,在计算数学里,式子不同,计算机计算的结果是有误差的。这就是为什么计算数学发展成为一门独立学科的很重要的原因。你的程序没错,问题不在于你自身,在于计算机处理问题的方法上。由于算式的不同,导致了精度的不同,最终计算结果也不同。但是又有特例,比如你可以试着把自变量范围改为linspace(1:0.001:100),画出的图像又是一样的。所以具体问题要具体分析,看你什么时候适合选用什么样的方程。这是计算数学里的很重要的一课。 >> format long syms x options=optimset('Display','iter'); [x,fval]=fsolve(@(x)(1-x).^6-(x.^6-6*x.^5+15*x.^4-20*x.^3+15*x.^2-6*x+1),[0.995;2;3.005],options) Norm of First-order Trust-region Iteration Func-count f(x) step optimality radius 0 4 9.89575e-027 2.53e-019 1 Equation solved at initial point. fsolve completed because the vector of function values at the initial point is near zero as measured by the default value of the function tolerance, and the problem appears regular as measured by the gradient. x = 0.995000000000000 2.000000000000000 3.005000000000000 fval = 1.0e-013 * 0.005259668650980 0 0.994759830064140 我们知道,两个算式是一样的,所以我们应该觉得在 x= 0.995000000000000 2.000000000000000 3.005000000000000 这三点上,两者之差应该为0.但是我们看到,他们是有误差的。这就是计算数学要研究的内容,要考虑的内容。
再问: 这看起来很深奥,小弟才刚刚学matlab,很多都不懂, 大哥能不能通俗点解释下?谢谢
再答: 好吧,这么和你说吧,你不需要细究这个问题,你只需要知道有这么个事情,然后是因为计算误差导致的就ok了,要是详细证明二者的误差,那是比较麻烦的。好吗? 我上面给你做的,是取了三个点,然后计算二者的误差给你看。最后的fval的三个值就是误差大小。明白这些个你就进步很多拉、就够了。
matlab里画同一个函数但不同表达式所得的曲线为什么不同
matlab里表示函数同一个函数,怎么结果不同?
为什么分段函数也是一个函数但表达式不同
matlab 怎么在同一个图中区分不同曲线
请问在matlab里如何将两个不同单位坐标的曲线画在一幅图里
怎么把三条曲线(同纵坐标,不同横坐标)画在同一个图里 急用
为什么同一个字母在不同的单词里有不同的发音?
Matlab编程定义的不同函数都调用了同一个产生随机数的函数,产生的随机数是否相同?
matlab中怎样将同一函数在不同自变量下的曲线画到同一张图中?
为什么同一个英语单词的音标不同
为什么同一个字在不同的句子里会有不同含义
MATLAB能不能根据曲线求出函数表达式?