计算方法
Spikeeee-
消磨到死的那些希望的亡灵:苍白、凄惨、哭的哀伤。
展开
-
计算方法 - 求近似值
#include <iostream>#include <cstdio>#include <cmath>using namespace std;#define ll long longconst double m = 1e8;const double esp = 0.5e-3;double i1[20] = {0.0}, i2[20] = {0.0};double f(double x) { double t = 1.0; while.原创 2021-06-16 18:53:41 · 529 阅读 · 0 评论 -
计算方法 - 二分法求近似根
【问题描述】用二分法求方程e^x+10x-2=0在区间[0, 1]上的近似根【输出形式】要求误差不超过0.5e^-3【样例输入】【样例输出】0.25 1.784025【样例说明】0.25:x的近似值,1.784025:e^x+10x-2的值。(有效数字位数较多时,保留小数点后至少5位)【评分标准】#include <iostream>#include <cstdio>#include <cmath>using namespace std;#defi.原创 2021-06-16 18:27:46 · 3027 阅读 · 0 评论 -
计算方法 - 高斯消元法矩阵求逆
Python 矩阵增广行增广:ANS = np.c_[A, b]列增广:ANS = np.r_[A, b]博客参考:https://blog.csdn.net/qithon/article/details/80100029import numpy as npif __name__ == '__main__': A = [[1, 2, 3], [2, 2, 1], [3, 4, 3]] A = np.array(A) l = A.shape[0] E = n.原创 2021-06-08 14:56:27 · 463 阅读 · 0 评论 -
计算方法 - 最小二乘拟合
题目:import numpy as npif __name__ == '__main__': X = np.array(input().split(" ")) Y = np.array(input().split(" ")) X = X.astype(float) Y = Y.astype(float) n = int(input()) + 1 m = len(X) XX = [] for i in range(2*n):原创 2021-06-05 13:30:21 · 169 阅读 · 0 评论 -
计算方法 - 满足第一类边界条件的三次样条插值
题目:import numpy as npdef fun(M, X, H, i, x): S = M[i-1]*(X[i]-x)**3/(6*H[i]) \ + M[i]*(x-X[i-1])**3/(6*H[i]) \ + (Y[i-1]-M[i-1]*H[i]**2/6)*(X[i]-x)/H[i] \ + (Y[i]-M[i]*H[i]**2/6)*(x-X[i-1])/H[i] return Sdef make_ans(原创 2021-06-05 13:28:17 · 1210 阅读 · 0 评论 -
计算方法 - 拉格朗日插值多项式 / 牛顿型插值函数
import numpy as npif __name__ == '__main__': X = [0.0, 0.1, 0.195, 0.3, 0.401, 0.5] Y = [0.39894, 0.39695, 0.39142, 0.38138, 0.36812, 0.35206] x = float(input()) L = 0.0 n = len(Y) for k in range(n): l = Y[k] for j原创 2021-05-21 16:09:49 · 563 阅读 · 0 评论 -
计算方法 - 雅可比迭代法 / 高斯-赛德尔迭代法(求解线性方程组)
直接法:求解低阶稠密方程组迭代法:求解高阶稀疏方程组迭代法:将AX=bAX = bAX=b转化为X=BX+f X = BX+fX=BX+f对X进行迭代求解雅可比迭代法:雅可比迭代公式:矩阵形式:Xk+1=BJXk+fJX^{k+1} = B_JX^{k}+f_JXk+1=BJXk+fJ其中:BJ=D−1(L+U)(称为雅可比迭代矩阵),fJ=D−1bB_J = D^{-1}(L+U)(称为雅可比迭代矩阵),f_J = D^{-1}bBJ=D−1(L+U)(称为雅可比迭代矩阵),.原创 2021-05-07 20:44:35 · 8605 阅读 · 0 评论 -
计算方法 - 向量与矩阵的范数
向量的范数:向量的范数可以简单形象的理解为向量的长度,或者向量到零点的距离,或者相应的两个点之间的距离。向量的范数定义:向量的范数是一个函数||x||, 满足:非负性: ||x|| >= 0齐次性: ||cx|| = |c| * ||x|| 三角不等式: ||x+y|| <= ||x|| + ||y||常用的向量的范数:L1范数: ||x|| 为x向量各个元素绝对值之和。L2范数: ||x||为x向量各个元素平方和的1/2次方,L2范数又称Euclidean范数或者F原创 2021-05-07 11:00:07 · 3220 阅读 · 1 评论 -
计算方法 - 矩阵的三角分解 - 解对称正定矩阵方程组的平方根法(线性方程组的解法)
详细过程见《数值计算方法》题目:C++题解:#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <cmath>using namespace std;#define ll long longconst int maxn = 205;const int INF = 0x3f3f3f;double temp[105 * 1原创 2021-04-23 15:00:46 · 555 阅读 · 0 评论 -
计算方法 - 矩阵的三角分解 - 解三对角线方程组的追赶法(线性方程组的解法)
详细过程见《数值计算方法》题目:书上的LU矩阵:最开始用书上写的,写完之后发现老师样例要求的跟书上是反着的,所以无奈只能重新推导,再打了遍代码,实属是无语题目要求版本及推导:书上版本C++代码:#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <cmath>using namespace std;#define原创 2021-04-23 14:24:26 · 471 阅读 · 0 评论 -
计算方法 - 矩阵的三角分解 - 杜利特尔分解法(线性方程组的解法)
内容见《数值计算方法》,过程有点长懒得照了,本来打算用Python写的,结果基本写完了发现Python的保留有效数字输出不自动补零,懒得重新写函数,一看又转回了c++,实在是无语有时间再把Python的保留有效数子输出的函数补全吧总体思想就是把矩阵拆成下三角和上三角,利用过程矩阵更快的求解C++完整代码:#include <iostream>#include <cstdio>#include <queue>#include <cstring>#原创 2021-04-11 22:20:22 · 2767 阅读 · 0 评论 -
计算方法 - 列主元消元法(线性方程组的解法)
列主元消元法比起高斯消元增加了每次化简时取第一列最大元素作为主元即:题目:代码:#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <cmath>using namespace std;#define ll long longconst int maxn = 205;const int INF = 0x3f3f3f.原创 2021-04-09 15:01:27 · 3974 阅读 · 0 评论 -
算法 - 输出保留n位有效数字
计算方法课奇奇怪怪的要求void _pri(double x, long long n, bool f) { //预处理数字,保留位数,是否需要四舍五入 double _ma = 1.0, _mi = 1.0, _t = 10.0; long long _n = n, i = 0, cnt = 0; while(_n) { if(_n % 2 == 1) _ma *= _t, _mi /= _t; _n >>= 1, _t *= _t;原创 2021-03-27 20:37:19 · 210 阅读 · 0 评论