matlab
by lqx
matlab科学计算
多项式运算
polyval 求值 roots求根
p = [3, -2, 5, -1, 7]; % 多项式系数向量
x = 2; % 指定计算点
y = polyval(p, x) % 计算多项式在x处的值
r = roots(p) % 计算多项式的根
conv deconv 乘除函数
%多项式相乘conv
u=[2 4 5 6];%多项式
v=[10 20 30];%多项式
p=[1 2 3];%多项式
w=conv(u,v) %conv为多项式相乘函数,也可以嵌套使用;
m=conv(conv(u,p),v)
%多项式相除deconv
[q,r]=deconv(w,v) %q为商,r为余数;
roots poly 求根复原
p=[1 2 1];
r=roots(p) %求p的根
v=poly(r) %求r根的多项式
%显示结果
r =
-1
-1
v =
1 2 1
polyfit 多项式拟合
x = [1, 2, 3, 4, 5]; % 自变量数据向量
y = [2, 4, 6, 8, 10]; % 因变量数据向量
n = 2; % 多项式阶次
p = polyfit(x, y, n); % 进行多项式拟合
x = [1, 2, 3, 4, 5]; % 自变量数据向量
y = [2, 4, 6, 8, 10]; % 因变量数据向量
n = 2; % 多项式阶次
p = polyfit(x, y, n); % 进行多项式拟合
% 计算拟合曲线的预测值
x_pred = linspace(min(x), max(x), 100); % 创建等间距的预测自变量向量
y_pred = polyval(p, x_pred); % 计算预测因变量值
% 绘制原始数据点和拟合曲线
plot(x, y, 'o', x_pred, y_pred)
x=linspace(0,2*pi,50);
y=cos(x);
p=polyfit(x,y,6);
t=linspace(0,2*pi,50);
y1=polyval(p,t);
plot(x,y,t,y1,'r*')