MATLAB
T.Y.Bao
see https://bty834.github.io/
展开
-
MATLAB 欧拉法、改进的欧拉法、龙格库塔法
f.m文件:% du/dx=ffunction d=f(x, u) d=(2*u/x) +(x^2)*exp(x); end欧拉法Euler.m文件:function [x,u]=Euler(h) x1=1; x2=2; u1=0; N=abs(x2-x1)/h; u=zeros(N+1,1); x=zeros(N+1,1); u(1)=u1; x(1)=x1; for i=1: N ..原创 2021-05-20 11:00:32 · 5161 阅读 · 6 评论 -
MATLAB 复化梯形公式、复化Simpson公式
f.m文件:function f = f(x)f = (x^2)*sin(x);end复化梯形公式Tn.m文件:function Tn=Tn(n) % n代表区间数 a = -2; % 区间下界 b = 2; % 区间下界 h=(b-a)/n; sum=0; for k=1:n-1 sum=sum+f(a+k.*h); end Tn=(f(a)+2*sum+f(b))*h/2;end复化Simpson公式..原创 2021-05-20 10:55:28 · 22578 阅读 · 5 评论 -
MATLAB Lagrange插值
Lagrange.m文件:function yy=Lagrange(x,y,xx)m=length(x);n=length(y);s=0;for i=1:n t=ones(1,length(xx)); for j=1:n if j~=i t=t.*(xx-x(j))/(x(i)-x(j)); end end s=s+t*y(i);endyy=s;控制台输入:% 间隔为0.5:>> x=.原创 2021-05-20 10:51:18 · 525 阅读 · 0 评论 -
MATLAB 二分法、牛顿迭代法、弦截法
二分法binarySearch.m文件:function binarySearch(f,bot,top)err = 1e-6;while abs(top-bot)>err x=(bot+top)/2; fx=f(x); if fx==0 bot=x; top=x; elseif f(bot)*fx<0 top=x; else bot=x; end fprintf('·½³ÌµÄ¸ùx.原创 2021-05-20 10:47:54 · 3232 阅读 · 0 评论 -
MATLAB Jacobi迭代法和G-S迭代法
忘记精确小数点位数了。。。% 获取A和bfunction [A,b] = getAb(n)A = diag(repmat([3],1,n))+diag(repmat([-1],1,n-1),1)+diag(repmat([-1],1,n-1),-1);b = ones(n,1);b(1)=2;b(n)=2;Jacobi迭代法jacobi.m文件:function x=jacobi(A,b)len = length(b);x0=zeros(len,1);ep=1e-6;D=dia.原创 2021-05-20 10:43:07 · 2449 阅读 · 1 评论 -
MATLAB Cholesky分解
Cholesky.m文件:function [L,X] = Cholesky(A,b)% 先分解n=size(A,1);L=zeros(n);L(1,1:n)=A(1,1:n);L(2:n,2:n)=A(2:n,2:n);for i=1:1:n L(i,i)=sqrt(L(i,i)); u=zeros(1,n-i); for j=i+1:1:n L(i,j)=L(i,j)/L(i,i); u(1,j-i)=L(i,j); end.原创 2021-05-20 10:39:05 · 4888 阅读 · 1 评论 -
MATLAB 高斯消元、列主元高斯、LU分解
高斯法Guass.m文件:function x = Guass(A,b)n = length(b);for j=1:n for i=j+1:n if A(j,j)~=0 M(i,j)=A(i,j)/A(j,j); for k=j:n A(i,k)=A(i,k)-M(i,j)*A(j,k); ..原创 2021-05-20 10:35:20 · 3106 阅读 · 1 评论 -
MATLAB秦九韶算法
最近《矩阵与数值分析》实验作业写完了,真是太麻烦了,弄了我一个白天加两个晚上。不过终于在昨天晚上写完了,下面就把代码记录一下,供学弟学妹们“敬仰”。我发现csdn上的编辑器里没有matlab代码块,matlab不配吗?气抖冷~qinjiushao.m文件:function y=qinjiushao(A,x) len = length(A); y=A(1); for i=1:1:len-1 y=y*x+A(i+1); end命令行窗口输入:&原创 2021-05-20 10:27:20 · 10510 阅读 · 4 评论