matlab 计算的误差A(2)=(A(1)*p(1)*cosh(p(1)*(x(2)-x(1)))+B(1)*p(1)*sinh(p(1)*(x(2)-x(1))))/p(2);B(2)=A(1)*sinh(p(1)*(x(2)-x(1)))+B(1)*cosh(p(1)*(x(2)-x(1)));test=A(2)+B(2)这是我的算式 由于有指数函数 所以matlab算出来的test误差
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/17 19:03:15
![matlab 计算的误差A(2)=(A(1)*p(1)*cosh(p(1)*(x(2)-x(1)))+B(1)*p(1)*sinh(p(1)*(x(2)-x(1))))/p(2);B(2)=A(1)*sinh(p(1)*(x(2)-x(1)))+B(1)*cosh(p(1)*(x(2)-x(1)));test=A(2)+B(2)这是我的算式 由于有指数函数 所以matlab算出来的test误差](/uploads/image/z/6763832-8-2.jpg?t=matlab+%E8%AE%A1%E7%AE%97%E7%9A%84%E8%AF%AF%E5%B7%AEA%282%29%3D%28A%281%29%2Ap%281%29%2Acosh%28p%281%29%2A%28x%282%29-x%281%29%29%29%2BB%281%29%2Ap%281%29%2Asinh%28p%281%29%2A%28x%282%29-x%281%29%29%29%29%2Fp%282%29%3BB%282%29%3DA%281%29%2Asinh%28p%281%29%2A%28x%282%29-x%281%29%29%29%2BB%281%29%2Acosh%28p%281%29%2A%28x%282%29-x%281%29%29%29%3Btest%3DA%282%29%2BB%282%29%E8%BF%99%E6%98%AF%E6%88%91%E7%9A%84%E7%AE%97%E5%BC%8F+%E7%94%B1%E4%BA%8E%E6%9C%89%E6%8C%87%E6%95%B0%E5%87%BD%E6%95%B0+%E6%89%80%E4%BB%A5matlab%E7%AE%97%E5%87%BA%E6%9D%A5%E7%9A%84test%E8%AF%AF%E5%B7%AE)
matlab 计算的误差A(2)=(A(1)*p(1)*cosh(p(1)*(x(2)-x(1)))+B(1)*p(1)*sinh(p(1)*(x(2)-x(1))))/p(2);B(2)=A(1)*sinh(p(1)*(x(2)-x(1)))+B(1)*cosh(p(1)*(x(2)-x(1)));test=A(2)+B(2)这是我的算式 由于有指数函数 所以matlab算出来的test误差
matlab 计算的误差
A(2)=(A(1)*p(1)*cosh(p(1)*(x(2)-x(1)))+B(1)*p(1)*sinh(p(1)*(x(2)-x(1))))/p(2);
B(2)=A(1)*sinh(p(1)*(x(2)-x(1)))+B(1)*cosh(p(1)*(x(2)-x(1)));
test=A(2)+B(2)
这是我的算式 由于有指数函数 所以matlab算出来的test误差都跟实际的答案有点大
如cosh(50)=2592352764293536022528.
exp(50)/2=2592352764293536022528.
它直接把cosh中的exp(-50)忽略了
如何不被忽略?
matlab 计算的误差A(2)=(A(1)*p(1)*cosh(p(1)*(x(2)-x(1)))+B(1)*p(1)*sinh(p(1)*(x(2)-x(1))))/p(2);B(2)=A(1)*sinh(p(1)*(x(2)-x(1)))+B(1)*cosh(p(1)*(x(2)-x(1)));test=A(2)+B(2)这是我的算式 由于有指数函数 所以matlab算出来的test误差
不是忽略,是运算精度就这么多,达不到再高要求了.
exp(50)/2 是21次方数,exp(-50)2是负22次方数,加一起,小数点左边要22+位,右边23+位,做不到的.
cosh(50)和exp(50)在浮点表示下是一样的,如果你需要算的东西比如test能看出理论和实际的误差很大,说明你的计算格式里面有严重的相消,应该注重调整计算格式