matlab已经拟合出一组多项式的系数 怎么求相应的多项式函数对应的某亮点间曲线的长度已经使用poltfit得到了一组7阶的多项式系数 想要求其中一段曲线的长度 试了很多方法都不行 另外 怎么
来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 01:40:25
matlab已经拟合出一组多项式的系数 怎么求相应的多项式函数对应的某亮点间曲线的长度已经使用poltfit得到了一组7阶的多项式系数 想要求其中一段曲线的长度 试了很多方法都不行 另外 怎么
matlab已经拟合出一组多项式的系数 怎么求相应的多项式函数对应的某亮点间曲线的长度
已经使用poltfit得到了一组7阶的多项式系数 想要求其中一段曲线的长度
试了很多方法都不行
另外 怎么用这些多项式系数求关于长度的变上限积分 意思就是选择起点以后 如果把终点横坐标看作是变量 怎么去求曲线长度关于这个变量的函数.急用
matlab已经拟合出一组多项式的系数 怎么求相应的多项式函数对应的某亮点间曲线的长度已经使用poltfit得到了一组7阶的多项式系数 想要求其中一段曲线的长度 试了很多方法都不行 另外 怎么
用折线逼近曲线,只要取的点数够多,应该可以达到要求的精度.
示例代码:
% 产生测试数据
x=0:.1:20;
y=sin(x);
% 多项式拟合(使用centering and scaling变换改善拟合效果)
n = 7;
[p,S,mu] = polyfit(x,y,n);
y1 = polyval(p,x,[],mu);
% 曲线的区间
x1=5;
x2=15;
% 使用折线逼近曲线,只要取的点足够多,总能达到要求精度(不考虑数值自身)
N=10; S0=0; e=1e-6;
plot(x,y1);
hold on
h = plot(NaN,NaN,'r.-');
while 1
x = linspace(x1,x2,N);
y = polyval(p,x,[],mu);
set(h,'x',x,'y',y);
drawnow
S = sum( sqrt(diff(x).^2 + diff(y).^2) );
% 若达到精度要求则退出循环
if abs(S-S0)<=e,break,end
% 未达到精度要求则增加点的数量
S0 = S;
N = N * 2;
end
% 输出曲线长度
S