当前位置: 首页 > news >正文

数值分析总结

数值分析总结思维导图

Docs

相关代码的使用和注释

       列主元Gauss消元法

%%列主元高斯消元法
function x=Gauss_lzy(A,b)%A为方程组系数矩阵,b为方程组的右侧向量,x为方程组的解
[n,m]=size(A);%%得到矩阵A的行和列的宽度
nb=length(b);%%方程组右侧向量的长度
if n~=m%%如果系数矩阵的行数和方程组右侧向量的长度不相等,错误error('%系数矩阵必须是方的');
end
if m~=nb%%方程的变量数和方程右侧向量的长度不相等,错误error('%b的维数与方程的行数不匹配!');
end
for k=1:n-1%%执行n-1次选主元的过程,就可以选完所有,最后剩下的一个直接处理,也表示列%选主元a_max=0;%%先定义一个最大值for i=k:n%%从当前行开始到最后一行选主元if abs(A(i,k))>a_max%%如果遇到比当前最大值大的直接记录作为主元a_max=abs(A(i,k));r=i;%%同时记录下它的行数endendif a_max<1e-15%%如果记录的主元小于1e-5,错误error('%系数矩阵奇异,无法匹配方程组');end%交换两行if r>k%%如果主元所在的行不是当前行,需要交换左侧和右侧for j=k:nz=A(k,j);A(k,j)=A(r,j);A(r,j)=z;endz=b(k);b(k)=b(r);b(r)=z;end%消元过程for i=k+1:n%%从当前行的下一行开始消元m=A(i,k)/A(k,k);for j=k+1:nA(i,j)=A(i,j)-m*A(k,j);endb(i)=b(i)-m*b(k);end
end
%回代过程
if abs(A(n,n))<1e-15error('%系数矩阵奇异,无法求解方程组');
end
x=zeros(size(b));
for k=n:-1:1%%从最后一行开始回代for j=k+1:nb(k)=b(k)-A(k,j)*x(j);endx(k)=b(k)/A(k,k);
end

       Jacobi迭代法

%%Jacobi迭代法
function x=Jacobi(A,b,x0,eps)
D=diag(diag(A));%%将矩阵A的对角元素提取出来
D=inv(D);%%转置
L=tril(A,-1);%%提取矩阵A的下三角
U=triu(A,1);%%提取矩阵A的上三角
B=-D*(L+U);%%雅可比迭代公式
f=D*b;
k=0;
x0=x0;
x=B*x0+f;%%迭代公式
fprintf('k x1_(k) x2_(k) x3_(k)\n');
fprintf('%2d %4.0f %4.0f %4.0f\n',k,x0);
while norm(x-x0)>=eps%%没有到达指定的误差值之前执行循环,不断迭代x0=x;x=B*x0+f;k=k+1;fprintf('%2d %4.0f %4.0f %4.0f\n',k,x0);
end

       Gauss-Seidel迭代法

%%Gauss-seidel迭代法
function x=GaussSeidel(A,b,x0)%%和Jacobi迭代同样的思路,只是公式发生了变化
D=diag(diag(A));
L=tril(A,-1);
C=inv(D+L);
U=triu(A,1);
B=-C*U;
f=C*b;
i=0;
x0=x0;
x=B*x0+f;
fprintf('k x1_(k) x2_(k) x3_(k)\n');
fprintf('%2d %4.0f %4.0f %4.0f\n',k,x0);
for i=1:10x0=x;x=B*x0+f;fprintf('%2d %4.0f %4.0f %4.0f\n',k,x0);
end

         二分法

function x = bisectionMethod(A, b, tol)[n, m] = size(A);nb = length(b);if n ~= merror('系数矩阵必须是方的');endif m ~= nberror('b的维数与方程的行数不匹配!');end% 定义二分法的初始下界和上界lower_bound = -1e6;upper_bound = 1e6;% 设置二分法的最大迭代次数max_iterations = 1000;% 循环执行二分法迭代for k = 1:max_iterationslambda = (lower_bound + upper_bound) / 2; % 计算当前迭代的 lambda 值% 解上界对应的方程组并计算残差x_upper = GaussianElimination(A - lambda * eye(n), b);residual_upper = norm(A * x_upper - lambda * x_upper - b);% 解下界对应的方程组并计算残差x_lower = GaussianElimination(A - lower_bound * eye(n), b);residual_lower = norm(A * x_lower - lower_bound * x_lower - b);% 判断是否满足终止条件if abs(residual_upper - residual_lower) < tolbreak;end% 更新下界和上界if residual_upper > residual_lowerupper_bound = lambda;elselower_bound = lambda;endend% 返回最终二分法得到的解x = x_upper;
endfunction x = GaussianElimination(A, b)[n, m] = size(A);nb = length(b);if n ~= merror('系数矩阵必须是方的');endif m ~= nberror('b的维数与方程的行数不匹配!');end% 高斯消元过程for k = 1:n-1% 选主元a_max = abs(A(k, k));r = k;for i = k:nif abs(A(i, k)) > a_maxa_max = abs(A(i, k));r = i;endendif a_max < 1e-15error('系数矩阵奇异,无法匹配方程组');end% 交换两行if r > ktemp = A(k, :);A(k, :) = A(r, :);A(r, :) = temp;temp = b(k);b(k) = b(r);b(r) = temp;end% 消元过程for i = k+1:nm = A(i, k) / A(k, k);for j = k+1:nA(i, j) = A(i, j) - m * A(k, j);endb(i) = b(i) - m * b(k);endend% 回代过程if abs(A(n, n)) < 1e-15error('系数矩阵奇异,无法求解方程组');endx = zeros(size(b));for k = n:-1:1for j = k+1:nb(k) = b(k) - A(k, j) * x(j);endx(k) = b(k) / A(k, k);end
end

          Newton法

%%Newton法
function x=Newton(fname,dfname,x0,e,N)
%%fname和dfname分别表示f(x)及其导函数的M函数句柄或内嵌函数表达式
if nargin<5,N=500;
end
if nargin<4,e=1e-4;
end
x=x0;
x0=x+2*e;
k=0;
while abs(x0-x)>e&k<N%%大于误差允许值且没有达到迭代次数,继续迭代k=k+1;x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);%%Newton公式fprintf('It.no=%2d x[%2d]=%12.9f\n',k,k,x);
end
if k==N,fprintf('已经达到迭代次数');
end

          Lagrange插值

%%Lagrange插值
function yy=Lagrange(x,y,xi)
m=length(x);%%自变量的长度
n=length(x);%%因变量的长度
if m~=nerror('向量x与y的长度必须一致');
end
s=0;
for i=1:nz=ones(1,length(xi));%%建立一个预备数组for j=1:nif j~=iz=z.*(xi-x(j))/(x(i)-x(j));//%%Lagrange插值公式end
end
s=s+z*y(i);
end
yy=s;

相关文章:

数值分析总结

数值分析总结思维导图 Docs 相关代码的使用和注释 列主元Gauss消元法 %%列主元高斯消元法 function xGauss_lzy(A,b)%A为方程组系数矩阵&#xff0c;b为方程组的右侧向量&#xff0c;x为方程组的解 [n,m]size(A);%%得到矩阵A的行和列的宽度 nblength(b);%%方程组右侧向量的长…...

osg demo汇总

1.example_osganimate 演示了路径动画的使用&#xff08;AnimationPath、AnimationPathCallback&#xff09;&#xff0c;路径动画回调能够做用在Camera、CameraView、MatrixTransform、PositionAttitudeTransform等四种类型的节点上。 演示了osgSim::OverlayNode的使用node 2…...

Leetcode.1590 使数组和能被 P 整除

题目链接 Leetcode.1590 使数组和能被 P 整除 rating : 2039 题目描述 给你一个正整数数组 n u m s nums nums&#xff0c;请你移除 最短 子数组&#xff08;可以为 空&#xff09;&#xff0c;使得剩余元素的 和 能被 p p p 整除。 不允许 将整个数组都移除。 请你返回你需…...

uniappios请求打开麦克风 uniapp发起请求

第一种 ajax请求方式 uni.request(OBJECT) 参数名类型必填默认值说明平台差异说明urlString是开发者服务器接口地址dataObject/String/ArrayBuffer否请求的参数App(自定义组件编译模式)不支持ArrayBuffer类型headerObject否设置请求的 header,header 中不能设置 Referer。…...

Java 注解在 Android 中的使用场景

Java 元注解有 5 种&#xff0c;常用的是 Target 和 Retention 两个。 其中 Retention 表示保留级别&#xff0c;有三种&#xff1a; RetentionPolicy.SOURCE - 标记的注解仅保留在源码级别中&#xff0c;并被编译器忽略RetentionPolicy.CLASS - 标记的注解在编译时由编译器保…...

【开源】基于Vue和SpringBoot的数字化社区网格管理系统

项目编号&#xff1a; S 042 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S042&#xff0c;文末获取源码。} 项目编号&#xff1a;S042&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、开发背景四、系统展示五、核心源码5…...

Go语言简要介绍

Golang是一种编程语言&#xff0c;也称为Go或者Go语言。它是由Google开发的一种编译型、静态类型的语言。Golang的目标是提高程序开发的效率&#xff0c;同时保证程序的性能和安全。 Golang在语法结构上类似于C语言&#xff0c;但是通过引入新的概念和语法&#xff0c;比如gor…...

STM32H7 RTC及PC13问题

程序加了RTC时间过后&#xff0c;发现原本的RTC定时唤醒中断也不好使了&#xff0c;开始以为是PC13入侵检测引脚问题&#xff0c;经过测试&#xff0c;发现了一个大问题&#xff0c;当使用 HAL_RTC_SetTime(&hrtc, &time, RTC_FORMAT_BCD); 函数后&#xff0c;RTC变得…...

AntDB“超融合+流式实时数仓”——颠覆50年未变的数据库内核

流式处理引擎&#xff0c;颠覆50年未变的数据库内核 流式处理的概念 2001年9月11日&#xff0c;美国世贸大楼被袭击&#xff0c;美国国防部第一次将“主动预警”纳入国防的宏观战略规划。而IBM作为当时全球最大的IT公司&#xff0c;承担了大量基础支撑软件研发的任务。其中200…...

TZOJ 1376 母牛的故事(递推和递归)

答案1&#xff08;递推&#xff09;&#xff1a; #include<stdio.h> int main() {int n0,i0;int a[55] { 0,1,2,3,4 }; //数组下标就相当于过了几年&#xff0c;以第四年母牛生出的第一只小母牛成年为周期&#xff0c;初始化前四年的值while (scanf("%d", …...

五种多目标优化算法(MOPSO、MOAHA、NSGA2、NSGA3、MOGWO)求解微电网多目标优化调度(MATLAB)

一、多目标优化算法简介 &#xff08;1&#xff09;多目标粒子群优化算法MOPSO 多目标应用&#xff1a;基于多目标粒子群优化算法MOPSO求解微电网多目标优化调度&#xff08;MATLAB代码&#xff09;-CSDN博客 &#xff08;2&#xff09;多目标人工蜂鸟算法&#xff08;MOAHA…...

01_原理-事件循环

01_原理-事件循环 文章目录 01_原理-事件循环一、浏览器的进程模型①&#xff1a;何为进程&#xff1f;②&#xff1a;何为线程&#xff1f;③&#xff1a;浏览器有哪些进程和线程&#xff1f; 二、渲染主线程是如何工作的&#xff1f;三、若干解释①&#xff1a;何为异步&…...

Redis的性能,哨兵模式,集群,

Redis的性能管理; redis的数据保存在内存中 redis-cli info memory redis内存使用info memory命令参数解析 used_memory:236026888 由 Redis 分配器分配的内存总量&#xff0c;包含了redis进程内部的开销和数据占用的内存&#xff0c;以字节&#xff08;byte&#xff09…...

如何选择共模噪声滤波器

在当前电子产品中&#xff0c;绝大多数的高速信号都使用地差分对结构。 差分结构有一个好处就是可以降低外界对信号的干扰&#xff0c;但是由于设计的原因&#xff0c;在传输结构上还会受到共模噪声的影响。 共模噪声滤波器就可以用于抑制不必要的共模噪声&#xff0c;而不会对…...

Python与设计模式--模板模式

23种计模式之 前言 &#xff08;5&#xff09;单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、&#xff08;11&#xff09;策略模式、责任链模式、命令模式、中介者模…...

LoadRunner自动化测试工具的应用

目录 第一部分:Loadrunner的简介 1.1 安装注意事项 1.2 协议的选择或者 VUSER 类型的选取 1.3 LR 的基本原理 1.4 测试脚本录制/分配所遵循的几个原则 第二部分:录制脚本 2.1 录制脚本前需要理解的几个基本概念 2.1.1 事务(Transaction) 2.1.2 集合点(Rendezvous) 2.1…...

工厂模式是一种创建对象的设计模式,使用工厂类来创建对象,而不是直接使用 new 关键字来创建对象。

文章目录 示例代码virtual std::string Operation() const = 0;如何理解std::string Operation() const override {这句如何理解?Factory 类包含一个静态方法 CreateProduct,它根据传入的类型参数来创建并返回具体的产品实例。这句话理解?std::unique_ptr<Product> pr…...

NET MVC中使用Element-Plus框架编写组件

一、目的 在NET MVC中使用Element-Plus编写可重复使用的组件。 二、准备工作 2.1 NET MVC项目 2.2 MVC项目中使用Element-Plus框架。不熟悉的可以参考此文章&#xff1a; NET MVC中如何使用Element-Plus-CSDN博客 三、组件编写 3.1、新建一个MVC的部分视图页面&#xff…...

在线文库系统 转码功能源代码展示 支持文档在线预览查阅功能

1、支持 pdf,doc,docx,ppt,pptx,txt,xlsx,xls,csv,zip,epub,ai,psd 格式的文件 2、文库系统的上传界面&#xff0c;用户可以进行上传自己的文件&#xff0c;然后自定义文档售价&#xff0c;来赚取金额。 3、文库系统的部分代码披露&#xff1a; <template><div clas…...

Linux /etc/shadow密码生成操作示例

一. 前言 之前学习过Linux文件系统下/etc/shadow里面保存着各个用户名的密码&#xff0c;并且密码是通过MD5算法加盐的方式生成的。但是一直没有自己真正动手生成过&#xff0c;今天&#xff0c;就来自己动手写代码生成下。 二. 代码验证/etc/shadow中密码 1. 通过passwd命令生…...

seata集成springboot的一些错误小计

1 seata依赖没找到 dependencies.dependency.version for com.alibaba.cloud:spring-cloud-starter-alibaba-seata:jar is missing. line 126, column 21错误原因:未指定具体的seata版本 解决 <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-st…...

springmvc(基础学习整合)

SpringMVC是Spring框架提供的构建Web应用程序的全功能MVC模块。 在SpringMVC的各个组件中&#xff0c;处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件。 springMVC基本介绍&#xff1a; http://t.csdnimg.cn/TOzw9 MVC是一种设计思想&#xff0c;将一个应…...

采集软件大全-全网免费的采集软件大全

采集软件大揭秘&#xff1a;从排名到任意网站采集的全方位解读 在数字时代&#xff0c;信息是黄金&#xff0c;而采集软件就是那把能够淘金的工具。无论是市场调研、竞品分析还是SEO优化&#xff0c;采集软件都扮演着不可或缺的角色。在这个领域里&#xff0c;有许多选择&…...

世微AP5125 DC-DC降压恒流 LED车灯电源驱动IC SOT23-6

产品描述 AP5125 是一款外围电路简单的 Buck 型平均电流检测模式的 LED 恒流驱动器&#xff0c;适用于 8-100V 电压范围的非隔离式大功率恒流 LED 驱动领域。芯片采用固定频率 140kHz 的 PWM 工作模式&#xff0c; 利用平均电流检测模式&#xff0c;因此具有优异的负载调整 率…...

STC15-串口通信打印输出数据printf函数与sprintf函数

STC15-串口通信打印输出数据printf函数与sprintf函数 1.打印输出数据有二种printf函数与sprintf函数&#xff0c;不同之处有&#xff1a;&#xff08;1&#xff09;函数的声明不同&#xff08;2&#xff09;函数的功能不同&#xff08;3&#xff09;用法举例 该问题引用百度知道…...

Android 11.0 默认开启USB调试功能

Android 11.0 默认开启USB调试功能 近来收到项目反馈需求想要默认开启USB调试功能&#xff0c;默认开启USB调试功能主要是在UsbDebuggingActivity.java文件中实现&#xff0c;具体修改参照如下&#xff1a; /vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/and…...

单片机AVR单片机病房控制系统设计+源程序

一、系统方案 设计一个可容8张床位的病房呼叫系统。要求每个床位都有一个按钮&#xff0c;当患者需要呼叫护士时&#xff0c;按下按钮&#xff0c;此时护士值班室内的呼叫系统板上显示该患者的床位号&#xff0c;并蜂鸣器报警。当护士按下“响应”键时&#xff0c;结束当前呼叫…...

C语言——多种方式打印出1000之内的所有的“水仙花数”

所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。水仙花数是指一个三位数&#xff0c;它的每个位上的数字的立方和等于它本身。例如&#xff0c;153是一个水仙花数&#xff0c;因为1^3 5^3 3^3 153。 方法一 #define _CRT_SECURE_NO_WARNINGS 1#include <std…...

.net 8 发布了,试下微软最近强推的MAUI

先看下实现的效果&#xff1a; 下面发下XAML文件&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <ContentPage xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns:x"http://schemas.microsoft.com/winfx/2009/…...

【产品经理】AI在SaaS产品中的应用及挑战

随着ChatGPT大模型在全球的爆火&#xff0c;AI迅速在各个行业内&#xff0c;助力于各行业的效率提升。而SaaS领域&#xff0c;AI同样也大有可为。 AI&#xff08;人工智能&#xff0c;Artificial Intelligence的缩写&#xff09;近一年来一直处于舆论风口&#xff0c;随着ChatG…...