MATLAB:一些杂例

news2024/12/26 22:57:06

a = 2; b = 5;
x = 0:pi/40:pi/2; %增量为pi/40
y = b*exp(-a*x).*sin(b*x).*(0.012*x.^4-0.15*x.^3+0.075*x.^2+2.5*x); %点乘的意义
z = y.^2; %点乘的意义
w(:,1) = x; %组成w,第一列为x
w(:,2) = y; %组成w,第二列为y
w(:,3) = z; %组成w,第三列为z
format short g; %短格式显示
w %不加分号,显示数据
%绘图显示,注意各种符号的属性设置
plot(x,y,'--rp','LineWidth',1.5,'MarkerSize',15,'MarkerEdgeColor','r','MarkerFaceColor','w');
hold on
plot(x,z,'b-s','MarkerEdgeColor','b','MarkerFaceColor','g');
legend('y关于x曲线','z关于y的曲线');

clc,clear;
q0 = 10; R = 60; C = 0.00005; t = linspace(0,0.8,100);
styleline = {'r-','b--','m:','c-.'};
leg = {};
i = 1; Qtl(1,:) = t;
for L = 3:3:12
    qt = q0*exp(-R*t/2/L).*cos(sqrt(1/L/C-(R/2/L)^2).*t);
    Qtl(i+1,:) = qt;
    plot(Qtl(1,:),Qtl(i+1,:),styleline{i});
    plot(t,qt,styleline{i},'LineWidth',2);
    leg{i} = strcat('L = ', num2str(L));
    i = i + 1;
    hold on
end
title('电量随时间的变化曲线'); 
legend(leg,'location','best'); 
xlabel('t(s)'); 
ylabel('q(t)'); 
grid on

%按要求处理第(1)步
x=0:pi/100:3*pi;
y=sin(x);
y1=(y>=0).*y; %消去负半波
p=sin(pi/3);
%按要求处理第(2)步
y2=(y>=p)*p+(y<p).*y1; 
plot(x,y,'r-','LineWidth',2)
hold on; 
grid on
plot(x,y2,'b-','LineWidth',2)

例4:元胞数组示例

x = 0:pi/100:2*pi; %x从[0, 2pi]之间等分100份
y(1,:) = x.*sin(x); %第一个函数,且计算值
y(2,:) = x.^2-4*x-4;
y(3,:) = x.*cos(x);
y(4,:) = x.*log(x);
colors = {'r','b','g','m'}; %颜色元胞数组
linestype = {'-','--',':','-.'}; %线形元胞数组
led = {'x.*sin(x)','x.^2-4*x-4','x.*cos(x)','x.*log(x)'}; %图例元胞数组
for i = 1:4 %循环绘制4条曲线
    plot(x,y(i,:),strcat(colors{i},linestype{i}),'LineWidth',2);
    hold on
end
legend(led,'Location','best') %添加图例
grid on; 
hold off

例5. 方向余弦矩阵(DCM, Direction Consine Matrix)

例6. 计算平行六面体的体积

例7. 用Cramer法则求解线性方程组

clc, clear
D = [2, 2, -1, 1; 4, 3, -1, 2; 8, 5, -3, 4; 3, 3, -2, 2];
b = [4; 6; 12; 6];
D1 = [b, D(:, 2:4)];
D2 = [D(:, 1:1), b, D(:, 3:4)];
D3 = [D(:, 1:2), b, D(:, 4:4)];
D4 = [D(:, 1:3), b];
DD = det(D);
x1 = det(D1) / DD;
x2 = det(D2) / DD;
x3 = det(D3) / DD;
x4 = det(D4) / DD;
X = [x1, x2, x3, x4]
% X = [1, 1, -1, -1]

Cramer(D, b)
function Cramer(A, b)
%% 1、输入参数的判断
    if nargin == 0 || nargin == 1
        disp('您输入的参数个数不足!');
        return
    end
%% 2、判断是否为方阵
    [rs, cs] = size(A);
    if rs ~= cs
        disp('系数矩阵必须是方阵,否则无法用Cramer法则求解!');
        return
    end
%% 3、求解判断系数矩阵行列式的值
    D = det(A);
    if D == 0
        disp('系数矩阵行列式等于0!');
        return
    end
%% 4、用Cramer法则求解和输出
    disp('线性方程组的解为:');
    for i = 1:rs
        AX = [A(:, 1:i-1), b, A(:, i+1:cs)];
        x = det(AX) / D;
        fprintf('x%d = %.6f\n', i, x)
    end
end

例8. 矩阵分解

clc, clear
%% 对称正定矩阵的三角分解——Cholesky分解
A = gallery('lehmer', 5)  % 生成正定矩阵
L = chol(A)
L'*L
% A = L' * L
norm(A - L' * L, 'fro')

%% 实对称矩阵的QDQ分解
B = gallery('fiedler', 5)  % 生成对称矩阵
[V, D] = eig(B)
V*D*V'
norm(V*D*V' - B, 'fro')

%% LU分解
%[𝑳, 𝑼, 𝑷] = 𝒍𝒖(𝑨): 𝑷𝑨 = 𝑳𝑼
[L, U, P] = lu(A)

A = [2 5 4 1;1 3 2 1;2 10 9 7;3 8 9 2];
b = [20 11 40 37]';
[L, U, P] = lu(A)
Y = inv(L)*P*b
X = inv(U)*Y
X1 = A\b

%% QR分解
A = magic(5)
[Q, R] = qr(A)
Q*R

%% 奇异值分解
A = round(5*randn(5, 4))
s = svd(A)  % s = svd(A) 以降序顺序返回矩阵 A 的奇异值。
[U, S, V] = svd(A)

B = A'*A;
D = eig(B);
sqrt(D)

例9. 线性方程组求解

function [x, y] = leqsolve(A, b)
%% 求解线性方程组的解,
% 输入参数:A系数矩阵,b是右端向量,
% 输出参数:x是唯一解或特解,y是基础解系
    if nargin < 2
        disp('请您输入系数矩阵A和右端向量b!')
        return
    end
    y = [];  % 基础解系
    [m, n] = size(A);  % 系数矩阵维度的长度
    if norm(b) > 0  % 非齐次方程
        if rank(A) == rank([A, b])  % 方程组相容,有解
            if rank(A) == n  % 唯一解
                disp('方程组有唯一解:')
                x = A\b;
            else  % 方程有无穷多个解,基础解系
                disp('方程组有无穷多个解,其齐次方程组的基础解系是y,特解是x:')
                x = A\b;  % 特解
                y = null(A, 'r');  % 基础解系
            end
        else  % 方程组不相容,给出最小二乘解
            disp('方程组最小二乘解是:')
            x = A\b;
        end
    else  % 齐次方程
        if rank(A) >= n  % 列满秩
            x = zeros(n, 1);  % 零解
        else  % 非零解
            disp('方程组有无穷多个解,基础解系x是:')
            x = null(A, 'r');
        end
    end 
end

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

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

相关文章

大规模C++程序设计 -- 基本规则

文章目录 基本规则概述成员数据访问全局命名空间全局数据自由函数枚举类型、typedef和常量数据预处理宏头文件中的名称 包含卫哨包含冗余卫哨文档标识符命名规则 基本规则 概述 任何精美的艺术不仅来源于创造&#xff0c;而且来自于规范。编程也是如此。C是易总大型语言&…

【New Release】PostgreSQL小版本(16.2, 15.6, 14.11, 13.14,12.18) 发布了

前言 PostgreSQL遵循小版本的发布规律&#xff0c;这一个季度的小版本又发布了。可以算作是2024年第一个季度的版本发布。如果总结其规律&#xff1a;大概就是2月、5月、8月、11月的样子。通常因为11月配合大版本的发布&#xff0c;它是起点&#xff0c;也有可能就是终点。起点…

【Docker篇】自定义Dockerfile的操作

文章目录 &#x1f354;镜像结构&#x1f6f8;什么是Dockerfile⭐基于Ubuntu镜像构建一个新镜像&#xff0c;运行一个java项目&#x1f50e;使用 java:8-alpine &#x1f354;镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 我们以MySQL为例&am…

Vintage账龄分析表计算底层逻辑(Python实操)

大家好&#xff0c;我是东哥。 信贷风控领域中&#xff0c;经常用到账龄Vintage报表&#xff0c;这是入门初学者的难点之一&#xff0c;因为它涉及到用户还款、逾期等多种行为以及业务上的多种统计口径&#xff0c;因此很多朋友一直无法将逻辑梳理清楚。本次来给大家详细介绍V…

Java:多态

目录 1.向上转型2.动态绑定3.方法重写4.理解多态5.多态的优缺点 1.向上转型 把子类对象给到父类&#xff0c;代码如下 class Animal{public String name;public int age;public void eat(){System.out.println(this.name"正在吃饭&#xff01;");} } class Dog ext…

力扣映射思辨题:赎金信

思路很简单&#xff1a;查到就改 bool canConstruct(char* ransomNote, char* magazine) {for(long x0;x<strlen(ransomNote);x){for(long y0;y<strlen(magazine);y){if(magazine[y]ransomNote[x]){ransomNote[x]1;magazine[y]1;break;}}}for(long x0;x<strlen(ranso…

【ArcGIS 脚本工具】批量导出布局为图片

文章开始前要介绍一下ArcMap与ArcPro在布局上的区别。 ArcMap10.x版本的mxd文件默认只有一个布局&#xff0c;所以如果一个项目需要出几张图&#xff0c;做好的办法就是建几个mxd文件。 但是ArcPro在这方面更加整合了&#xff0c;一个aprx文件内可以新建任意多的布局&#xff…

无人机助力智慧农田除草新模式,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的农田杂草检测识别系统

科技发展到今天&#xff0c;无人机喷洒药物已经不是一件新鲜事情了&#xff0c;在很多高危的工作领域中&#xff0c;比如高空电力设备除冰&#xff0c;电力设备部件传送更换等等&#xff0c;无人机都可以扮演非常出色的作用&#xff0c;前面回到老家一段时间&#xff0c;最近正…

内网渗透之路:常用命令助力信息深度探索

1、查询网络配置信息 ipconfig /all 2、查询操作系统及软件信息 &#xff08;1&#xff09;查询操作系统和版本信息 英文操作系统 systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 中文操作系统 systeminfo | findstr /B /C:"OS 名称&q…

【C#】int+null=null

C#语法&#xff0c;这玩意不报错 intnullnull&#xff0c;有点不合逻辑 (Int32)(bizRepair0rder.CreateTime. Value - regues.Mlodifylime.Value).TotalMinutes (Int32)(bizRepair0rder.CreateTime. Value - reques.llodifylime.Value).TotalMinutes nullstring是引用类型&…

【C#】【SAP2000】读取SAP2000中所有Frame对象在指定工况的温度荷载值到Grasshopper中

if (build true) {// 连接到正在运行的 SAP2000// 使用 COM 接口获取 SAP2000 的 API 对象cOAPI mySapObject (cOAPI)System.Runtime.InteropServices.Marshal.GetActiveObject("CSI.SAP2000.API.SapObject");// 获取 SAP2000 模型对象cSapModel mySapModel mySap…

PlantUML + VS Code

PlantUML 使用实例 文章目录 PlantUML 使用实例1. PlantUML简介1.1 什么是PlantUML1.2 PlantUML优势在哪 2. 怎么用2.1 环境依赖2.2 VS Code组件安装 3. 常用语法3.1 标记开始结束3.2 声明参与者3.3 声明关系3.4 对消息序列编号3.5 组合消息 4. 实例 1. PlantUML简介 1.1 什么…

NCDA大赛中哪些HTML5设计作品展现出色?

与传统的HTML网页设计相比&#xff0c;HTML5网页设计主要是对网页内容的加强。HTML5已成为目前最流行的标记语言&#xff0c;拥有成熟的社区和广泛的浏览器支持&#xff0c;HTML5完整的功能和强大的扩展性使设计师和开发者能够点铁成金。HTML5可以一手控制更多可控元素&#xf…

HDS-NAS分配资源并挂载win和linux

1、首先创建系统文件。 选择nas存储池 2、根据自己的需求创建相应的挂载方式 3、window配置 配置成功 最后即可在window系统网络位置映射网络即可&#xff0c; 格式为\\123.3.4.5\test 注&#xff1a;IP地址 4、liunx挂载方式 创建完成之后即可挂载&#xff0c;注意目的主…

Vue+OpenLayers7入门到实战:OpenLayers如何使用全屏控件,来实现地图容器的全屏和退出全屏功能

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上使用地图全屏控件,来控制地图容器的全屏和退出全屏的功能。 注意:这里的全屏控件全屏指的是地图容器全屏,并非整个网页全屏。 网页整体全屏和指定网页节点全屏可以参…

FreeRTOS的学习路径介绍

FreeRTOS是一种广泛使用的开源实时操作系统&#xff08;RTOS&#xff09;&#xff0c;它被设计为一个小型、可扩展的操作系统&#xff0c;适用于微控制器和嵌入式系统。由于其轻量级和可扩展性&#xff0c;FreeRTOS被广泛应用于物联网&#xff08;IoT&#xff09;、工业自动化、…

简单了解 vim 编辑器最基础的操作

简单了解 vim 编辑器最基础的操作 vim 这个是 Linux 上自带的一个文本编辑器&#xff0c;使用 vim 就可以更灵活的对文件进行编辑了&#xff08;虽然和记事本的定位差不多,实际上vim的使用要复杂很多&#xff09; 1.打开文件 语法&#xff1a;vim 文件名 示例&#xff1a;…

mysql 排序底层原理解析

前言 本章详细讲下排序&#xff0c;排序在我们业务开发非常常见&#xff0c;有对时间进行排序&#xff0c;又对城市进行排序的。不合适的排序&#xff0c;将对系统是灾难性的&#xff0c;这个不是危言耸听。可能有些人会想&#xff0c;对于排序mysql 是怎么实现的&#xff0c;…

【计算机网络篇】计算机网络的性能指标

文章目录 &#x1f354;计算机网络的性能指标&#x1f5c3;️常见的计算机网络性能指标⭐速率⭐带宽⭐吞吐量⭐时延⭐时延带宽积⭐往返时间⭐利用率⭐丢包率 &#x1f50e;总结 &#x1f354;计算机网络的性能指标 计算机网络的性能指标被用来从不同方面度量计算机网络的性能 …

02-Java变量和运算符

1. 基本数据类型转换&#xff08;Conversion&#xff09; 在Java程序中&#xff0c;不同的基本数据类型的值经常需要进行相互转换。Java语言所提供的七种数值类型之间可以相互转换&#xff0c;基本数据类型转换有两种转换方式&#xff1a;自动类型转换和强制类型转换。boolean…