DAY9 MATLAB学习笔记—MATLAB多项式

多项式的建立:
clc
claer all;
p1=[7 5 3 87];%多项式的系数,最高次幂就是x3,系数7
y=polyasym(p1)%由向量创建多项式
disp(y)%显示多项式
利用多项式的根建立多项式:
clc
clear all;
r=[4 6 8];%三个根
p=poly®;%通过poly求取多项式
y=poly2sym§%显示多项式
多项式的求值:
clc;
clear all;
p=[2 -3 -4];%多项式的系数向量
x=1:6;
y=polyval(p,x)%多项式在x处的值,以数组或矩阵中的元素为计算单位
多项式求值的另一种函数,导致结果不一样:
clc;
clear all;
x=[1 2 ;5 6];
p=[1 2 3];%多项式的系数向量
y1=polyvalm(p,x)%采用此函数时,以矩阵为计算单位
x=[1 2 ; 5 6];
p=[1 2 3];
多项式的求根和根据根求多项式:
clc;
clear all;
p=[1 0 0 -5 -2]; %多项式系数
x1=roots§ %对多项式p求根
x2=[2 4]; %已知根
y=poly(x2); %求以x2为根的多项式系数
y=poly2sym(y) %显示多项式
多项式的相乘和相除:
多项式相乘:

clc;
clear all;
p1=[6 3 0 7]; %缺少的幂次用0补齐 多项式系数
p2=[1 2 3];
y1=poly2sym(p1)%显示多项式
y2=poly2sym(p2)
p3=conv(p1,p2); %多项式相乘 如果是两个向量相当于卷积
y=poly2sym(p3) %显示
syms x %另一种方法
p1=sym2poly(3x3+3*x2+8)
p2=sym2poly(6
x^2+3*x+4)
p3=conv(p1,p2); %多项式相乘
y=poly2sym(p3)

clc;
clear all;
p1=[4 3 8 1 4];
p2=[2 3 1];
[q,r]=deconv(p1,p2); %多项式p1除以p2
y1=poly2sym(q) %商
y2=poly2sym® %余数
多项式的求导:
clc;
clear all;
p1=[3 2 6];
p2=[3 3 2];
y1=polyder(p1);%对多项式p1求导
y1=poly2sym(y1)
y2=polyder(p1,p2); %对多项式p1和p2的乘积求导
y2=poly2sym(y2)
[q,d]=polyder(p1,p2);%对多项式p1除以p2的商求导
q=poly2sym(q) %分子
d=poly2sym(d) %分母
多项式的积分:
clc;
clear all;
p1=[2 6 8];
y1=polyint(p1,7); %对多项式p1进行积分,常数项为7
y1=poly2sym(y1)
y2=polyint(p1); %对多项式p1进行积分,默认常数项为0
y2=poly2sym(y2)
多项式的拟合:
clc;
clear all;
x=[0.2 0.3 0.5 0.6 0.8 0.9 1.2 1.3 1.5 1.8];
y=[1 2 3 5 6 7 6 5 4 1];
p5=polyfit(x,y,5);%5阶多项式拟合
y5=polyval(p5,x);
p5=vpa(poly2sym(p5),5)%显示5阶多项式
p9=polyfit(x,y,9);%9阶多项式拟合
y9=polyval(p9,x);
figure;%画图显示
plot(x,y,‘bo’);
hold on;
plot(x,y5,‘r:’);
plot(x,y9,‘g–’);
legend(‘原始数据’,‘5阶多项式拟合’,‘9阶多项式拟合’);
xlabel(‘x’);
ylabel(‘y’);
曲线拟合:
x0 = -pi:0.1:pi;
y0 = sin(x0);
% 4次多项式拟合
p0 = polyfit(x0, y0, 4);
y1 = polyval(p0, x0);
plot(x0, y0, x0, y1, ‘r’);
多项式拟合效果:
阶次越高,并不一定拟合效果越好
x1 = -1:0.2:1;
y1 = 1./(1 + 25*x1.^2);
分别使用3次、5次、8次多项式拟合
p3 = polyfit(x1, y1, 3);
p5 = polyfit(x1, y1, 5);
p8 = polyfit(x1, y1, 8);

x = -1:0.01:1;
y = 1./(1 + 25*x.^2);
y3 = polyval(p3, x);
y5 = polyval(p5, x);
y8 = polyval(p8, x);
figure
plot(x, y, x, y3, ‘r-’, x, y5, ‘m:’, x, y8, ‘b–’);
legend(‘原始’, ‘3次’, ‘5次’, ‘8次’);

使用非多项式拟合方法:
首先建立拟合选项结构体
options = fitoptions(‘Method’, ‘NonlinearLeastSquare’);
options.Lower = [-Inf, -Inf, -Inf];
options.Upper = [Inf, Inf, Inf];
通过fittype建立非线性拟合模型
type = fittype(‘a/(b + c*x^n)’, ‘problem’, ‘n’, ‘options’, options);
拟合
[cfun gof] = fit(x1’, y1’, type, ‘problem’, 2);
拟合效果
ynp = feval(cfun, x);
figure
hl = plot(x, y, ‘k’);
set(hl, ‘LineWidth’, 5);
hold on
plot(x, ynp, ‘r’);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab学习笔记汇总,适合初学者。 1.3Matlab界面介绍(1).docx 1.4Matlab界面介绍(2).docx 1.5Matlab帮助系统.docx 1.6Matlab的搜索顺序及搜索路径.docx 2.1Matlab的变量与常量.docx 2.2Matlab的基本数据结构(1).docx 2.2Matlab的基本数据结构(2).docx 2.3 Matlab中的空数组与子数组.docx 2.4 Matlab的算术运算符.docx 2.5 常见的Matlab运算函数(1).docx 2.6 常见的Matlab运算函数(2).docx 2.7 Matlab的字符串及其运算.docx 2.8 字符串函数及二维字符串.docx 2.9 绘图入门.docx 2.10绘图属性的控制.docx 2.11图形窗口菜单及对数坐标.docx 2.12 本章小结.docx 3.1程序编写的一般步骤.docx 3.2关系运算符.docx 3.3逻辑运算符.docx 3.4逻辑函数与短路运算.docx 3.5if语句.docx 3.6流程图的绘制.docx 3.7if语句的嵌套.docx 3.8switch.docx 3.9try_catch结构.docx 3.10多个图像窗口与子窗口.docx 3.11图像的增强控制.docx 3.12文本的高级控制.docx 3.13极坐标图.docx 4.1while循环结构.docx 4.2while循环举例.docx 4.3for循环.docx 4.4for循环举例.docx 4.5break和continue.docx 4.6循环结构嵌套.docx 4.7编译语言与解释语言.docx 4.8逻辑数组与向量化.docx 4.9应用举例.docx 4.10应用举例(2).docx 5.1M文件的分类.docx 5.2自顶向下程序设计.docx 5.3初始Matlab函数.docx 5.4初始Matlab函数(2).docx 5.5函数的局部变量.docx 5.6局部变量与按值传递.docx 5.7函数的选择性参数.docx 5.8函数的检测工具.docx 5.9全局内存与全局变量.docx 5.10持久变量.docx 5.11显示信息的几种方式.docx 5.12排查逻辑错误.docx 5.13排查逻辑错误(2).docx 5.14函数的函数.docx 5.15函数的函数(2).docx 5.16子函数.docx 5.17私有函数.docx 6.1复数数据类型.docx 6.2复数的作图.docx 6.3其他二维作图函数.docx 6.4其他的作图函数.docx 6.5本章举例.docx 9.1多项式.docx 9.2插值与拟合.docx matlab中文帮助文档.chm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值