matlab多项式拟合、作图、计算R方 2024-10-02 matlab 学习 0 评论 字数统计: 394(字) 阅读时长: 1(分) 一、多项式拟合 12345% 输入x与y的数值x=[5 10 15 20 25 30 40 45 50];y=[745.8 744.3 742.9 741.1 740.5 740.2 740.1 740.4 740.5];% 利用polyfit函数做多项式拟合,三个变量分别为自变量、因变量、多项式最高项次数。P= polyfit(x, y, 2) 结果为 123P = 0.0058 -0.4343 747.8814 二、画图 123456789101112131415% x轴范围0到70,间隔为1xi=0:1:70; % 利用polyval函数求对应y值。y=polyval(p,x)计算多项式p在x的每个点处的值。yi= polyval(P, xi); % 利用plot函数绘制两组数据点(xi,yi)和(x,y)% 且第二组数据点(x,y)以红色星号'r*'的形式显示plot(xi,yi,x,y,'r*');% 依次加上图标题、x轴标题、y轴标题title('拟合图像')xlabel('悬丝点距端点距离x/mm')ylabel('共振频率f/Hz')% 设置图形窗口大小。% 6,6是图形窗口左下角相对于屏幕左下角的坐标(以厘米为单位)% 14.5,12是图形窗口的宽度和高度(同样以厘米为单位)。set(gcf, 'Units', 'centimeters', 'Position', [6, 6, 14.5, 12]); 结果为 三、计算R2 1234567891011% 使用拟合的多项式系数计算拟合的y值y_fit = polyval(P, x);% 计算总平方和(SST)meany = mean(y);SST = sum((y - meany).^2);% 计算残差平方和(SSE)SSE = sum((y - y_fit).^2);% 计算R方R_squared = 1 - SSE / SST;% 显示R方值,num2str()将变量的数值转换为字符串。disp(['R-squared: ', num2str(R_squared)]); 结果为 1R-squared: 0.98576