MATLAB程序设计课后作业三、四

1、课程中学习到kmeans聚类函数,查询kmeans算法的基本原理,还有什么其他类型的聚类算法?

层次聚类算法,它不需要预先指定簇的个数,而是通过构建数据点的层次结构来进行聚类,可以得到不同层次的聚类结果。一个典型的层次聚类算法是AGNES,它采用自底向上的聚合策略,初始时将每个数据点视为一个簇,然后逐渐合并距离最近的簇,直到满足停止条件。

网格聚类算法,它将数据空间划分为有限网格单元,然后对网格单元而不是数据点进行聚类,可以降低计算复杂度,适合处理大规模的数据集。一个典型的网格聚类算法是STING,它采用四叉树的结构,将数据空间递归地划分为统计信息网格,然后根据网格的密度和分布特征来划分簇。

模型聚类算法,它假设数据点是由某种概率模型生成的,然后根据模型的参数来划分簇,可以得到簇的概率描述,适合处理复杂的数据分布。一个典型的模型聚类算法是GMM,它假设数据点是由多个高斯分布混合而成的,然后利用EM算法来估计每个高斯分量的参数和权重,以及每个数据点的隐变量,从而划分簇。

2、Matlab中除了kmeans外还有哪些聚类的函数?

还有:

clusterdata:用于对数据进行层次聚类,可以指定不同的距离度量和连接方法,也可以指定聚类的个数或阈值。

linkage:用于生成层次聚类树,可以指定不同的距离度量和连接方法,也可以返回不一致性系数。

cluster:用于根据层次聚类树进行聚类,可以指定聚类的个数或阈值,也可以指定不同的切割标准。

silhouette:用于评估聚类的质量,可以计算并绘制每个数据点的轮廓系数,也可以返回聚类的平均轮廓系数。

dbscan:用于对数据进行基于密度的聚类,可以指定邻域半径和邻域密度阈值,也可以返回核心点、边界点和噪声点的标识。

gmdistribution:用于对数据进行高斯混合模型聚类,可以指定高斯分量的个数和协方差矩阵的形式,也可以返回模型的参数和后验概率。

3、

clc;clear;close all;
x=1:1:30;
y=[33815,33981,34004,34165,34212,34327,34344,34458,34498,34476,34483,34488,34513,34497,34511,34520,34507,34509,34521,34513,34515,34517,34519,34519,34521,34521,34523,34525,34525,34527];
%输入题目中所给数据
c=0;
for i=1:5           %寻找曲线拟合合适的阶数y2=polyfit(x,y,i);Y=polyval(y2,x);            %计算拟合函数在x处的值。if sum((Y-y).^2)<0.01           %如果误差小于0.01则判定为有效曲线拟合c=i;  break;end
end
%由于原始数据因素,最终采用3阶拟合
y2=polyfit(x,y,3);
disp(y2);

4、

clc;clear;close all;
f=[-2,3,0;2,2,-3;3,4,0];
w=[-150;-100;-100];
x=f\w;
disp(x);

5、

clc;clear;close all;
% 定义函数f(x,y)
f = @(x,y) x.^3 - y.^3 + x.*y + 2*x.^2;
% 定义约束条件
g = @(x,y) x.^2 + y.^2 - 6;
h = @(x,y) x.*y - 2;
% 定义优化问题
problem = createOptimProblem('fmincon','objective',f,'x0',[1,1],'nonlcon',@(x)deal(g(x(1),x(2)),h(x(1),x(2))));
% 使用全局搜索算法求解,全局算法需要从市场上下载后才能使用
gs = GlobalSearch;
[x,fval] = run(gs,problem);
% 显示结果
disp('最小值点为:')
disp(x)
disp('最小值为:')
disp(fval)

由于操作复杂,在这里直接给出答案

最小值点为:

-1.4142, -1.4142

最小值为:

-8.8284

6、

% 定义导弹飞行轨迹的四个一阶方程
function dydx = missile(x,y)% 参数设置(所有单位均为英尺)c = 0.002; % 拉力系数g = 32.2; % 重力加速度v0 = 600; % 初始速度a = pi/4; % 初始角度% 条件检查if abs(y(1)) < v0*10^(-6) % 如果水平速度太小,终止程序error('水平速度太小,无法继续计算')end% 四个一阶方程dydx = zeros(4,1); % 初始化输出向量dydx(1) = -c*y(1); % dvx/dx=-cvdydx(2) = -(g+c*y(2)*v0/y(1)); % dvy/dx=-(g+cv*vy)/vxdydx(3) = y(2)/y(1); % dy/dx=vy/vxdydx(4) = 1/y(1); % dt/dx=1/vx
end
clc;clear;close all;
% 定义初始条件
c = 0.002; % 拉力系数
g = 32.2; % 重力加速度
v0 = 600; % 初始速度
a = pi/4; % 初始角度
v0x = v0*cos(a); % 水平分量
v0y = v0*sin(a); % 垂直分量
y0 = 0; % 初始高度
t0 = 0; % 初始时间
yinit = [v0x;v0y;y0;t0]; % 初始条件向量% 定义求解区间
x0 = 0; % 初始位置
xfinal = 1000; % 最终位置% 调用ode45函数求解
[x,y] = ode45(@missile,[x0,xfinal],yinit);% 第一题:画出导弹飞行轨迹
ind = find(y(:,3)>0); % 找到y>0的索引
plot(x(ind),y(ind,3),'b-') % 画出x-y曲线
xlabel('水平距离 x (ft)') % x轴标签
ylabel('垂直高度 y (ft)') % y轴标签
title('导弹飞行轨迹') % 标题
grid on % 网格线% 第二题:求导弹的最大上升高度及飞行距离
ymax = max(y(:,3)); % 最大高度
xind = find(y(:,3)==ymax); % 对应的x索引
xmax = x(xind); % 对应的x值
fprintf('导弹的最大上升高度为 %.2f ft,出现在 %.2f ft 处\n',ymax,xmax)% 第三题:求y=0时的x值及飞行时间
x0 = interp1(y(:,3),x,0); % 用插值法求y=0时的x值
t0 = interp1(y(:,3),y(:,4),0); % 用插值法求y=0时的t值
fprintf('导弹在 y=0 时的水平距离为 %.2f ft,飞行时间为 %.2f s\n',x0,t0)

由于代码打印和函数问题,可能导致不同设备计算结果有误,这里直接给出最后结果

导弹的最大上升高度为 474.8285 ft,出现在 648.1205 ft 处

导弹在 y=0 时的水平距离为 975.3240 ft,飞行时间为 10.6246 s

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++最大质因子 2021年12月电子学会中小学生软件编程(C/C++)等级考试一级真题答案解析

目录 C/C最大质因子 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C最大质因子 一、题目要求 1、编程实现 质因子是指能整除给定正整数的质数。而最大质因子是指一个整数的所有质因子中最大的那个。…

开源集群管理系统对比分析:Kubernetes 与 Apache Mesos

集群管理系统是关键的软件解决方案&#xff0c;可以在互连机器网络中有效分配和利用计算资源。毫无疑问&#xff0c;它们通过确保可扩展性、高可用性和有效的资源管理在现代计算中发挥着至关重要的作用&#xff0c;这使得它们对于运行复杂的应用程序、管理数据中心以及进一步增…

数据分析基础之《jupyter notebook工具》

一、安装库 1、linux库 yum install python3-devel 2、python库 pip3 install -U matplotlib pip3 install -U numpy pip3 install -U pandas pip3 install -U TA-Lib pip3 install -U tables pip3 install -U notebook 3、如果TA-Lib安装不上&#xff0c;先手动安装依赖库 …

cadence layout lvs时出现error

Error&#xff1a;Schematic export failed or was cancelled.Please consult the transcript in the viewer window. 解决办法同下&#xff1a; cadence layout lvs时出现error-CSDN博客

城市智慧路灯智能照明管理系统简介

城市路灯存在着开关灯控制方式单、亮灯时间不准确、巡查困难、故障处理不及时、亮灯率无法把控等问题&#xff0c;从而导致路灯系统能耗高&#xff0c;维护成本高。传统的路灯控制系统已无法满足智慧城市管理的需要&#xff0c;智能路灯照明控制系统从而得到广泛应用。 叁仟智…

在python中分别利用numpy,tensorflow,pytorch实现数据的增加维度(升维),减少维度(降维)

文章目录 前言一、使用numpy实现升维度&#xff0c;降维度二、使用TensorFlow实现升维度&#xff0c;降维度三、使用PyTorch实现升维度&#xff0c;降维度总结 前言 我们明确一下升维和降维的概念&#xff1a; 升维&#xff08;Dimensionality Augmentation&#xff09;&…

目标检测YOLO实战应用案例100讲-基于改进YOLOv5s的道路目标检测

目录 前言 国内外研究现状 传统目标检测方法 基于深度学习的目标检测方法

WebSocket --- ws模块源码解析(详解)

摘要 在这一篇文章中&#xff0c;写了如何在node端和web端&#xff0c;实现一个WebSocket通信。 WebSocket在node端和客户端的使用 而在node端里面&#xff0c;我们使用了ws模块来创建WebSocket和WebSocketServer&#xff0c;那ws模块是如何做到可以和客户端进行双向通信的呢…

前端本地存储数据库IndexedDB

前端本地存储数据库IndexedDB 1、前言2、什么是 indexedDB&#xff1f;3、什么是 localForage&#xff1f;4、localForage 的使用5、VUE 推荐使用 Pinia 管理 localForage 1、前言 前端本地化存储算是一个老生常谈的话题了&#xff0c;我们对于 cookies、Web Storage&#xff…

树莓派镜像安装 + 设置 + 镜像批量化操作 - 自动化烧写工具 (四)

简介 当需要大批量使用树莓派时, SD Card烧录过程中的重复和繁杂操作需要被工具给取代, AT Disk Imager这就出现了;软件介绍 实现监控读卡器&#xff0c;当SD Card接入读卡器时自动格式化、 烧写设定镜像、并自动软弹出设备;目前可设定参数: 1) 镜像文件&#xff0c; 烧录的镜…

[github配置] 远程访问仓库以及问题解决

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于新西兰奥克兰大学攻读IT硕士学位。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。跨领域…

MATLAB算法实战应用案例精讲-【神经网络】Transformer

目录 前言 算法原理 编码器 自注意力机制 从宏观视角看自注意力机制

Vue3 源码解读系列(九)——依赖注入

依赖注入 依赖注入用于祖先组件向后代组件传递数据。 特点&#xff1a; 祖先组件不需要知道哪些后代组件在使用它提供的数据。 后代组件也不需要知道注入的数据来自哪里。 /*** provide 的实现*/ function provide(key, value) {let provides currentInstance.provides // 当…

【LSTM】北京pm2.5 天气预测--pytorch版本,有代码可以跑通-LSTM回归问题,工程落地一网打尽

文章目录 前言1. 知识理解1.1 核心理解1.2 原理1.2.1 图解LSTM1.2.1 分词1.2.1 英语的词表示1.2.2 中文的词表示1.2.3 构建词表 2. 工程代码2.1 数据预处理2.2 数据集&模型构建2.3 模型训练2.4 保持模型&加载模型&预测 前言 LSTM 少分析原理&#xff0c;更强调工程…

网络渗透测试(TCP/IP)理论篇

TCP/IP体系 垂直服务&#xff1a;底层为高层服务 TCP/IP体系结构是一个分层的协议体系&#xff0c;由多个层次组成&#xff0c;每个层次都负责不同的功能。以下是TCP/IP体系结构的主要层次&#xff1a; 物理层&#xff08;Physical Layer&#xff09;&#xff1a;该层负责传输…

Debian系列的Linux发行版上部署wvp

Debian系列的Linux发行版上部署wvp 环境搭建1.Debian系列的Linux发行版上安装nginx2.安装mysql设置mysql密码修改权限sudo mysql ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)配置相关navicat 连接不上 报错 10061navicat 连接报错 1130 -…

Python选择排序和冒泡排序算法

选择排序和冒泡排序都是常见的排序算法。以下是这两种算法的Python实现&#xff1a; 选择排序&#xff08;Selection Sort&#xff09; 选择排序的基本思想是在未排序的序列中找到最小&#xff08;或最大&#xff09;元素&#xff0c;存放到排序序列的起始位置&#xff0c;然…

grafana面板介绍

grafana 快速使用 背景 随着公司业务的不断发展&#xff0c;紧接来的是业务种类的增加、服务器数量的增长、网络环境的越发复杂以及发布更加频繁&#xff0c;从而不可避免地带来了线上事故的增多&#xff0c;因此需要对服务器到应用的全方位监控&#xff0c;提前预警&#xf…

MATLAB | 官方举办的动图绘制大赛 | 第二周赛情回顾

今天带来一下MATHWORKS官方举办的迷你黑客大赛第三期(MATLAB Flipbook Mini Hack)的最新进展&#xff01;&#xff01;目前比赛已经进行了两周非常荣幸能够成为第一周的阶段性获奖者&#xff1a; 本来并不打算每周进行一次赛况讲解&#xff0c;但是由于字符限制改成了2000&…

何时使用Elasticsearch而不是MySql?

何时使用Elasticsearch而不是MySql&#xff1f; MySQL 和 Elasticsearch 是两种不同的数据管理系统&#xff0c;它们各有优劣&#xff0c;适用于不同的场景。本文将从以下几个方面对它们进行比较和分析&#xff1a; 数据模型查询语言索引和搜索分布式和高可用性能和扩展性使用…