最小二乘法拟合出二阶响应面近似模型

背景:根据样本试验数据拟合出二阶响应面近似模型(正交二次型),并使用决定系数R²和调整的决定系数R²_adj来判断二阶响应面模型的拟合精度。


1、样本数据(来源:硕士论文《航空发动机用W形金属密封环密封性能分析与优化》)

编号 x1	     x2	     x3	     x4    	y1	    y2	    y3
1	0.67	0.70	1.78	0.83	804.8	246.7	37.7
2	0.59	0.73	2.09	0.72	686.3	213.5	40.1
3	0.69	0.78	1.81	0.86	703.6	221.0	39.3
4	0.57	0.70	1.84	0.73	822.3	253.6	37.1
5	0.58	0.80	2.07	0.74	632.4	201.6	40.9
6	0.66	0.77	1.95	0.71	716.9	224.7	39.7
7	0.61	0.69	2.04	0.75	730.1	223.3	39.4
8	0.66	0.83	1.88	0.76	676.6	215.8	40.0
9	0.71	0.66	1.85	0.77	845.0	254.6	37.8
10	0.64	0.72	1.73	0.82	813.2	251.8	37.2
11	0.71	0.71	1.99	0.81	709.0	217.4	40.1
12	0.60	0.77	1.91	0.79	698.2	219.5	39.2
13	0.70	0.65	1.94	0.80	794.9	237.9	38.7
14	0.74	0.74	1.96	0.89	663.2	205.7	40.8
15	0.74	0.67	1.74	0.87	839.3	253.8	37.5
16	0.56	0.68	1.87	0.84	773.6	221.6	37.7
17	0.62	0.84	2.06	0.77	598.0	193.0	41.8
18	0.64	0.72	2.01	0.78	703.4	217.3	39.8
19	0.68	0.79	1.79	0.70	777.5	245.8	38.4
20	0.65	0.84	1.81	0.90	640.6	205.3	40.1
21	0.73	0.75	1.76	0.88	743.3	230.9	38.8
22	0.63	0.82	1.70	0.84	726.0	231.4	38.3
23	0.60	0.83	1.90	0.81	648.0	207.5	40.1
24	0.56	0.76	1.97	0.76	693.6	217.9	39.3
25	0.72	0.81	2.03	0.85	600.7	191.7	42.2

2、将上述数据存放在sample_data.xlsx表格中,再编写matlab代码

% % 读取数据(假设数据已经保存在一个名为'data.txt'的文件中,使用空格或制表符分隔)
%% 近似模型:y = a0+a1*x1+a2*x2+a3*x3+a4*x4+a5*x1*x2+a6*x1*x3+a7*x1*x4+a8*x2*x3+a9*x2*x4+a10*x3*x4+a11*x1^2+a12*x2^2+a13*x3^2+a14*x4^2;
clc;clear;
filename = 'sample_data.xlsx';
data = xlsread(filename);

% 提取自变量和因变量
X = data(:, 2:5); % x1, x2, x3, x4
y = data(:, 6:8); % y1, y2, y3

% 构建扩展自变量矩阵(包括线性项、交互项和平方项)
[n, m] = size(X);
X_extended = ones(n, 1); % 初始化扩展矩阵,第一列为截距项

% 添加线性项
X_extended = [X_extended, X];

% 添加交互项
X_extended = [X_extended, X(:,1).*X(:,2), X(:,1).*X(:,3), X(:,1).*X(:,4), ...
              X(:,2).*X(:,3), X(:,2).*X(:,4), X(:,3).*X(:,4)];

% 添加平方项
X_extended = [X_extended, X(:,1).^2, X(:,2).^2, X(:,3).^2, X(:,4).^2];

% 使用最小二乘法求解回归系数(对每个因变量分别进行)
beta_values = zeros(15, 3); % 15个系数(包括截距项),3个因变量
R2_values = zeros(1, 3);
adjusted_R2_values = zeros(1, 3);

for i = 1:3
    % 拟合模型
    beta = (X_extended' * X_extended) \ (X_extended' * y(:, i));
    beta_values(:, i) = beta;
    
    % 预测值
    y_pred = X_extended * beta;
    
    % 计算SST, SSE, SSR
    SST = sum((y(:, i) - mean(y(:, i))).^2);
    SSE = sum((y(:, i) - y_pred).^2);
    SSR = SST - SSE;
    
    % 计算R^2
    R2_values(i) = SSR / SST;
    
    % 计算调整后的R^2
    p = size(X_extended, 2); % 自变量数量(包括截距项)
    adjusted_R2_values(i) = 1 - (1 - R2_values(i)) * ((n - 1) / (n - p));
end

% 显示结果
disp('回归系数(包括截距项):');
disp(beta_values);
disp('决定系数 R^2:');
disp(R2_values);
disp('调整的决定系数 Adjusted R^2:');
disp(adjusted_R2_values);

3、运行结果

4、如上,决定系数和调整的决定系数均大于0.95,可见,近似模型满足精度要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/934380.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

05-标准库开发-STM32-IIC协议

七、STM32中IIC协议 概述 Inter-Integrated Circuit (IIC),也常称为I2C(I squared C),是一种同步、串行、半双工通信总线协议。它主要用于连接低速外围设备到处理器或微控制器上,如MPU6050姿态传感器、OLED显示屏、存…

Java版-图论-最小生成树-Prim算法

实现描述 如图: Prim算法的基本思想是从一个顶点开始,逐步构建最小生成树。具体步骤如下: 随机选取一个顶点作为起始点,并将其加入最小生成树的集合中。从该顶点出发,选择一条边连接到其他未被访问的顶点中的最小权…

CSS学习记录09

CSS字体 通用字体族 在CSS中,有5个通用字体族: 衬线字体(Serif)- 在每个字母的边缘都有一个小的笔触。它们营造出一种形式感和优雅感。无衬线字体(Sans-serif)- 字体线条简洁(没有小笔画&…

GB28181系列一:GB28181协议介绍

我的音视频/流媒体开源项目(github) GB28181系列目录 目录 一、GB28181协议介绍 二、GB28181交互流程 1、注册 2、观看视频 3、控制 4、SDP 5、媒体保活: 6、RTP 7、SIP URL 一、GB28181协议介绍 GB28181使用SIP协议,SIP协议参考我的SIP系列&a…

算法-字符串-3.无重复字符的最长子串

一、思路&#xff1a; 无重复针对唯一的元素首选哈希表方法 在字符串中找出最长字串——动态数组 二、使用的一些常见方法 1.HashMap a.声明 HashMap<Character,Integer> mapnew HashMap(); b.添加元素 map.put(s.charAt(i),i); c.查询是否有对应的元素存在并获取 m…

Windows Terminal ssh到linux

1. windows store安装 Windows Terminal 2. 打开json文件配置 {"$help": "https://aka.ms/terminal-documentation","$schema": "https://aka.ms/terminal-profiles-schema","actions": [{"command": {"ac…

海外的bug-hunters,不一样的403bypass

一种绕过403的新技术&#xff0c;跟大家分享一下。研究HTTP协议已经有一段时间了。发现HTTP协议的1.0版本可以绕过403。于是开始对lyncdiscover.microsoft.com域做FUZZ并且发现了几个403Forbidden的文件。 &#xff08;访问fsip.svc为403&#xff09; 在经过尝试后&#xff0…

OLLAMA+FASTGPT+M3E 大模型本地化部署手记

目录 1.安装ollama 0.5.1 2.下载大模型 qwen2.5 3b 3.开启WSL 4.更新wsl 5.安装ubuntu 6.docker下载 6.1 修改docker镜像源 6.2 开启WSL integration 7.安装fastgpt 7.1 创建fastgpt文件夹 7.2 下载fastgpt配置文件 8.启动容器 9.M3E下载 9.1 下载运行命令 9.2…

Android 10、11、12存储适配相关

AndroidQ(10)分区存储完美适配 - 简书前言 最近时间在做AndroidQ的适配&#xff0c;截止到今天AndroidQ分区存储适配完成&#xff0c;期间出现很多坑&#xff0c;目前网上的帖子大部分都是概述变更内容&#xff0c;接下来的几篇帖子都是对分区存储实际...https://www.jianshu.c…

Nanolog起步笔记-8-log解压过程(2)寻找meta

TOC 写在前面 如前。建立工程进行跟踪后&#xff0c;发现自己对Nanolog的理解还是太少了。 其过程&#xff0c;还是相对比较复杂。 以及有一些信息&#xff0c;这前的分析中&#xff0c;没有注意到。 本节&#xff0c;不向前推进&#xff0c;进行一定的总结与学习的准备。 另…

Java-22 深入浅出 MyBatis - 手写ORM框架3 手写SqlSession、Executor 工作原理

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

Git:常用命令

一、查看当前分支 git branch 二、查看所有分支 git branch -a 三、切换到远程分支 git checkout origin/分支名 示例&#xff1a;git checkout origin/dev 四、拉取远程分支代码 git pull origin 分支名 示例&#xff1a;git pull origin dev 五、常用指令 查看暂存区…

算法1(蓝桥杯18)-删除链表的倒数第 N 个节点

问题&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个节点&#xff0c;并且返回链表的头节点。 输入&#xff1a;head 1 -> 2 -> 3 -> 4 -> 5 -> null, n 2 输出&#xff1a;1 -> 2 -> 3 -> 5 -> null输入&#xff1a;head 1 ->…

H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用

官方文档地址 1.注册 Steam API Key&#xff1a; 你需要一个 Steam Web API Key&#xff0c;可以在 Steam API Key 页面 获取。https://steamcommunity.com/dev/apikey 这里开发做demo用自己steam账户的就好&#xff0c;后续上线要用公司的账户 2.使用 OpenID 登录&#xff…

TCP的“可靠性”(上)

目录 TCP的“可靠性”&#xff08;上&#xff09;确认应答&#xff08;可靠性传输的基础&#xff09;超时重传连接管理&#xff08;三次握手&#xff0c;四次挥手&#xff09; TCP的“可靠性”&#xff08;上&#xff09; 想必大家都或多或少的听说过TCP的特性&#xff1a;有连…

九、页面级变量的状态管理

状态管理概述 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。 自定义组件拥有变量,变…

vs打开unity项目 新建文件后无法自动补全

问题 第一次双击c#文件自动打开vs编辑器的时候能自动补全&#xff0c;再一次在unity中新建c#文件后双击打开发现vs不能自动补全了。每次都要重新打开vs编辑器才能自动补全&#xff0c;导致效率很低&#xff0c;后面发现是没有安装扩展&#xff0c;注意扩展和工具的区别。 解决…

责任链模式的理解和实践

责任链模式&#xff08;Chain of Responsibility&#xff09;是行为型设计模式之一&#xff0c;它通过将多个对象连成一条链&#xff0c;并沿着这条链传递请求&#xff0c;直到有对象处理它为止。这个模式的主要目的是将请求的发送者和接收者解耦&#xff0c;使请求沿着处理链传…

软件工程——期末复习(3)

一、题目类(老师重点提到过的题目) 1、高可靠性是否意味着高可用性&#xff1f;试举例证明自己的观点&#xff1f; 答&#xff1a;高可靠性不意味着高可用性 可靠性说明系统已经准备好&#xff0c;马上可以使用&#xff1b;可用性是系统可以无故障的持续运行&#xff0c;是一…

SList(单链表)

文章目录 一&#xff1a;线性表二&#xff1a;数组2.1数组在内存中的存储 三&#xff1a;链式结构四&#xff1a;单链表4.1概念与结构4.1.1概念4.1.2 结构&#xff08;节点&#xff09;4.1.3链表的性质4.1.4链表的打印 4.2实现单链表 结语 欢迎大家来到我的博客&#xff0c;给生…