自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 数值计算解线性方程组

高斯消元法function x=solveGauss(A,b)n=size(A,1);x=zeros(n,1);for j=1:n-1 for i=j+1:n mul=A(i,j)/A(j,j); A(i,:)=A(i,:)-mul*A(j,:); b(i)=b(i)-mul*b(j); endendfor i=n:-1:1 sum=0; for j=n:-1:i+1 sum=sum+x(j)*A

2021-02-03 03:19:44 539

原创 数值计算求解动态热传导方程

和求解静态热传导方程不同的是,动态代表温度会随时间而变化,这就要用到之前学的几个初值函数,先来复习一下这几个初值函数function [LHS,RHS]=OST(theta,timestep,M,B,C,sol)LHS=M-theta*timestep*B(1)RHS=(M+(1-theta))*timestep*B(2))*sol+timestep*(theta*C(1)+(1-theta))*C(2)end%之前B和C都是数组元素引用,但这里是矩阵,B(1)B(2)在这里都是B,同时动态热

2021-01-30 07:26:49 1010 2

原创 数值计算求解静态热传导方程

首先要用到一个三维画图的函数,在三维空间中用三角形连接。function quadplot(nodes,elements,sol)Zeile=size(elements,1);x=nodes(:,1);y=nodes(:,2);z=sol;T=zeros(2*Zeile,3);%把平面上的一个四边形elements切割成2个三角形,所以是2*Zeile,再转化到三维空间去,一个四边形的elements包含四个点,切割成两个三角形之后,每个三角形包含三个点。 for i=1:size(el

2021-01-30 01:19:45 692

原创 数值计算求初值问题

求几个函数,看课件上,老师推导下面这个函数,注意f(tn,phin)=dphi(tn)/dt(n),乘一个M之后,Mdphi(tn)/dt(n)=B(tn)phi(tn)+C(tn), B和C的值可以参考老师课件上给的案例,还有要注意给的B的值,是[B(tn),B(tn+1)],还是[B(tn+1),B(tn)]function [LHS,RHS] = OST(theta,timestep,M,B,C,sol)LHS=M-theta*timestep*B(1);%[B(tn+1),B(tn)]RH

2021-01-13 06:14:24 1767

原创 数值计算高斯求积分的解法

高斯积分首先有两种简单的求积分的方法a=0;b=4;Im=(b-a)*f((b-a)/2)It=(b-a)*(f(a)+f(b))/2function y = f(x)y=(x/(1+x))^5;end然后就是高斯求积分,先看一维的情况先是取高斯点,可以从1取到3function gaussx = gx(n)if n==1 gaussx=0;elseif n==2 gaussx=[-1/sqrt(3) 1/sqrt(3)];elseif n==3

2021-01-13 04:53:13 5729 2

原创 数值计算求导数

求导数x0=0.6;h=0.1;df2=(f(x0)-f(x0-h))/hdf3=1/2/h*(-3*f(x0)+4*f(x0+h)-f(x0+2*h))%在Matlab中表示1/2h的时候是1/2/hdf3M=1/2/h*(f(x0+h)-f(x0-h))df5M=1/12/h*(f(x0-2*h)-8*f(x0-h)+8*f(x0+h)-f(x0+2*h))function y = f(x)y=(x/(1+x))^5;end我们再来看看这几种方法求的的导数值和真实值的误差,

2021-01-13 02:18:22 2143

原创 数值计算二维拉格朗日插值的求解

怎么求二维的拉格朗日插值很简单代入已有的公式求function val = linquadref(xi,eta)val=[1/4*(1-xi)*(1-eta);1/4*(1+xi)*(1-eta);1/4*(1+xi)*(1+eta);1/4*(1-xi)*(1+eta)];endfunction deriv = linquadderivref(xi,eta)deriv=[-1/4*(1-eta),-1/4*(1-xi) 1/4*(1-eta),-1/4*(1+xi)

2021-01-13 01:58:52 1806

原创 数值计算拉格朗日一维插值的求解

Matlab计算浮点数是有误差的P1=[0 1];Theta=logspace(-20,5,1000); %这里是取对数刻度,取1000个数P2=[Theta Theta+1];y=2;Xex=1;%实际上y=2和P1,P2点组成的直线相交点的横坐标是1Xnum=Theta./(1+Theta-1);%这个是用Matlab算出来的这两条线交点的横坐标X=abs(Xex-Xnum);X2=2*10^(-16)./((2*10^(-16)+Theta));%Matlab机器双精度

2021-01-13 01:44:26 625

原创 数值计算Matlab的一些简单使用

v=[1;2;3;4]a=dot(v,v)=30 %对应列相乘,然后相加:1*1+2*2+3*3+4*4=30a=dot(v,v,1)b=dot(v,v,2) %对应行相乘,然后相加e=eig(v) %返回一个列向量,其中包括方正v的特征值(B-A)x=C x=(B-A)\C %Ax=B 则x=A'B; xA=B 则x=BA'c(:,2)=v 第二列换成vc(2,:)=v 第二行换成vc(1:10,2)=v 第2列的前10个数换成vv=c(:,2) 把c的第二列保存到c

2021-01-12 23:37:12 521

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除