MATLAB简单程序大全

合集下载

matlab基本命令

matlab基本命令

matlab基本命令
MATLAB是一种广泛使用的数学软件,用于数据分析、图形绘制和科
学计算。

下面是一些MATLAB基本命令,这些命令有助于您快速入门。

1.创建一个向量或矩阵:
a = [1 2 3 4]
b = [3;4;5;2]
2.创建一个特定范围的向量或矩阵:
c = 1:5
d = 2:2:8
e = linspace(0,1,11)
3.访问矩阵中的元素
a(2) //访问a中的第二个元素
b(3,2) // 访问b中的第三行第二列元素
4.矩阵操作
f = a + b
g = a - b
h = a * b
5.数学函数
x = sin(3.1416)
y = sqrt(25)
z = exp(2)
6.图形绘制
x = linspace(0,2*pi,100)
y = sin(x)
plot(x,y)
这些是MATLAB基本命令的一些示例。

学习这些命令是快速掌握MATLAB的关键。

做好练习,加深对这些命令的理解和运用,让您能够轻松地处理各种数据并进行数学计算和可视化。

一维光子晶体 matlab程序

一维光子晶体 matlab程序

一维光子晶体 matlab程序编写一维光子晶体的Matlab程序涉及到许多方面,包括光子晶体的结构定义、光子晶体的色散关系、波导模式的计算等。

以下是一个简单的一维光子晶体Matlab程序的框架,供你参考:matlab.% 定义光子晶体的结构参数。

a = 1; % 光子晶格常数。

n1 = 3.5; % 光子晶体的折射率。

n2 = 1; % 外部介质的折射率。

% 计算光子晶体的色散关系。

k = linspace(0, 2pi/a, 100); % 波矢k的取值范围。

omega = 2pi3e8./a sqrt(n1^2 n2^2); % 光子晶体的色散关系。

% 绘制色散曲线。

figure;plot(k, omega);xlabel('波矢k');ylabel('频率omega');% 计算光子晶体中的波导模式。

beta = linspace(0, 2pi/a, 100); % 波导模式的波矢范围。

omega_waveguide = 2pi3e8./a sqrt(n1^2 n2^2); % 波导模式的色散关系。

% 绘制波导模式的色散曲线。

figure;plot(beta, omega_waveguide);xlabel('波导模式的波矢beta');ylabel('波导模式的频率omega_waveguide');以上代码是一个简单的一维光子晶体的Matlab程序框架,其中包括了光子晶体的结构定义、色散关系的计算以及波导模式的计算。

当然,实际编写光子晶体的Matlab程序涉及到更多的细节和复杂的算法,需要根据具体的研究目的和光子晶体的特性进行更详细的设计和编写。

希望这个简单的框架能够为你提供一些参考。

matlab小波分解程序

matlab小波分解程序

matlab小波分解程序小波分解是一种信号处理的方法,可以用于信号的分析和压缩。

在MATLAB中,可以使用内置的`wavedec`函数来进行小波分解。

下面是一个简单的MATLAB小波分解程序示例:matlab.% 创建一个示例信号。

x = randn(1,1024);% 选择小波基和分解级别。

wname = 'db4'; % 选择小波基,这里使用db4小波。

level = 3; % 选择分解级别。

% 进行小波分解。

[c, l] = wavedec(x, level, wname);% 从分解系数和长度信息中重构近似和细节系数。

appx = wrcoef('a',c,l,wname,level); % 近似系数。

det1 = wrcoef('d',c,l,wname,1); % 第一层细节系数。

det2 = wrcoef('d',c,l,wname,2); % 第二层细节系数。

det3 = wrcoef('d',c,l,wname,3); % 第三层细节系数。

% 绘制原始信号和重构的近似信号。

t = 1:1024;subplot(2,1,1);plot(t, x);title('Original Signal');subplot(2,1,2);plot(t, appx);title('Approximation Coefficients'); % 显示细节系数。

figure;subplot(3,1,1);plot(t, det1);title('Detail Coefficients Level 1'); subplot(3,1,2);plot(t, det2);title('Detail Coefficients Level 2'); subplot(3,1,3);plot(t, det3);title('Detail Coefficients Level 3');在这个示例中,我们首先生成了一个长度为1024的随机信号。

反幂法matlab程序

反幂法matlab程序

反幂法matlab程序
反幂法是一种求解矩阵最小特征值的方法,其原理是通过对原矩阵进行迭代求解,逐步逼近最小特征值的值和对应的特征向量。

以下是一个简单的反幂法的 MATLAB 程序:
% 反幂法求解矩阵最小特征值及对应特征向量
function [lambda, x] = inverse_power_iter(A, x0, max_iter, tol)
% 输入:A为矩阵,x0为初始向量,max_iter为最大迭代次数,tol为误差容限
% 输出:lambda为最小特征值,x为对应特征向量
n = size(A,1); % 矩阵维度
x = x0/norm(x0); % 归一化初始向量
for k = 1:max_iter
y = A\x; % 解Ax = y,速度较inv(A)*x快
lambda = x'*y; % 计算特征值
x = y/norm(y); % 归一化特征向量
if norm(A*x-lambda*x)<tol % 满足精度要求,停止迭代
return
end
end
disp('达到最大迭代次数,未满足精度要求!')。

matlab数组插值程序

matlab数组插值程序

matlab数组插值程序在MATLAB中,数组插值是一种常见的操作,可以使用interp1函数来实现。

interp1函数可以对一维数据进行插值操作,以下是一个简单的示例程序,演示了如何在MATLAB中进行数组插值操作:matlab.% 创建原始数据。

x = 1:5; % 原始数据的x坐标。

y = [3 6 2 8 4]; % 原始数据的y坐标。

% 创建插值的新x坐标。

xq = 1:0.1:5; % 创建新的x坐标,间隔为0.1。

% 使用interp1进行线性插值。

yq_linear = interp1(x, y, xq, 'linear'); % 线性插值。

% 使用interp1进行三次样条插值。

yq_spline = interp1(x, y, xq, 'spline'); % 三次样条插值。

% 绘制原始数据和插值结果。

plot(x, y, 'o', xq, yq_linear, '-', xq, yq_spline, '--');legend('原始数据', '线性插值', '三次样条插值');在这个示例程序中,我们首先创建了原始数据x和y,然后创建了新的x坐标xq,接着使用interp1函数进行线性插值和三次样条插值,最后将原始数据和插值结果绘制在同一张图上进行对比。

需要注意的是,interp1函数还可以进行其他类型的插值,比如最近邻插值、分段线性插值等,具体可以根据实际需求选择合适的插值方法。

除了interp1函数,MATLAB还提供了其他一些用于数组插值的函数,比如interp2(用于二维数据的插值)、interpn(用于多维数据的插值)等,可以根据具体情况选择合适的插值函数进行操作。

总之,MATLAB提供了丰富的插值函数,可以满足不同数据插值的需求,通过灵活运用这些函数,可以实现对数组的高效插值操作。

简单迭代法matlab例题程序

简单迭代法matlab例题程序

一、引言在数学建模和计算机编程中,简单迭代法是一种常用的求解方程近似解的方法。

其原理是通过不断迭代计算,逼近实际的解。

在Matlab 编程中,简单迭代法也是一种常见的应用。

本文将介绍简单迭代法的原理,并给出在Matlab中实现简单迭代法的例题程序。

二、简单迭代法原理1. 简单迭代法的基本思想是将需要求解的方程转化为迭代形式,即 x = g(x),然后通过不断迭代计算得到方程的近似解。

2. 简单迭代法的收敛条件是 |g'(x)| < 1,即迭代函数的导数的绝对值小于1时,迭代过程才能收敛。

3. 简单迭代法的收敛速度取决于迭代函数的选择,通常可以通过调整迭代函数来提高收敛速度。

三、Matlab中的简单迭代法实现在Matlab中,可以通过编写脚本文件来实现简单迭代法。

下面给出一个简单的例题:求解方程 x^2 - 3x + 2 = 0 的近似解。

4. 以下是Matlab中实现简单迭代法的脚本文件示例:```matlab定义迭代函数g = (x) 3*x - x^2;设置迭代初值和迭代次数x0 = 0.5;N = 100;迭代计算for k = 1:Nx = g(x0);fprintf('第d次迭代,近似解为:.10f\n', k, x);if abs(x - x0) < 1e-8 判断迭代是否收敛break;endx0 = x;end```5. 通过运行上述脚本文件,即可得到方程 x^2 - 3x + 2 = 0 的近似解。

四、实例分析通过上述例题程序的运行结果可以看出,简单迭代法在Matlab中的实现比较简单直观。

但是需要注意的是,迭代函数的选择和迭代初值的设定对最终的近似解都会产生影响,需要经过一定的调试和优化。

五、总结简单迭代法是一种常用的求解方程近似解的方法,在Matlab编程中也有着广泛的应用。

通过本文的介绍和示例程序,相信读者已经对简单迭代法在Matlab中的实现有了更深入的了解。

matlab常见经典平差程序

matlab常见经典平差程序希望本人编写的经典平差可以对matlab初学者以及测绘专业的学生有用By cowboyfunction void()sprintf('请选择平差类型')sprintf('1: 参数平差\n2: 条件平差\n3:具有条件的参数平差\n4: 具有参数的条件平差\n') a=input('请输入对应号码\n');switch (a)case 1% 参数平差V=AX-Lsprintf('1:参数平差V=AX-L')n=input('请输入n=');t=input('请输入t=');A=input('请输入系数矩阵A=');L=input('请输入常数项矩阵L=');P=diag(input('请输入权阵P='))%P=input('请输入权阵P=');N=A'*P*A;U=A'*P*L;sprintf('开始计算')X=inv(N)*(U);V=A*X-L;Qx=inv(N);u=sqrt((V'*P*V)/(n-t));fid=fopen('data.txt','wt'); %写入文件路径,文件输出fprintf(fid,'=====================参数平差: V=AX-L =====================\n');fprintf(fid,'输出n,t\n') ;fprintf(fid,'%12.5f %12.5f\n',n ,t) ;%n,t fprintf(fid,'输出矩阵A\n')[m,n]=size(A); %Afor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',A(i,j));elsefprintf(fid,'%12.5f\t',A(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵L\n') ;[m,n]=size(L); %Lfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',L(i,j));elsefprintf(fid,'%12.5f\t',L(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵P\n') ;[m,n]=size(P); %P for i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',P(i,j));elsefprintf(fid,'%12.5f\t',P(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵X\n'); [m,n]=size(X); %X for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',X(i,j));elsefprintf(fid,'%12.5f\t',X(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵V\n'); [m,n]=size(V); %V for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',V(i,j));elsefprintf(fid,'%12.5f\t',V(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵Qx\n'); [m,n]=size(Qx); %Qx for i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',Qx(i,j)); elsefprintf(fid,'%12.5f\t',Qx(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出单位权中误差u\n'); [m,n]=size(u); %u for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',u(i,j));elsefprintf(fid,'%12.5f\t',u(i,j));endendendfprintf(fid,'\n');fclose(fid);case 2% 条件平差BV+W=0sprintf('2:条件平差BV+W=0')n=input('请输入n=');t=input('请输入t=');B=input('请输入系数矩阵B=');W=input('请输入自由项向量W='); P=input('请输入权阵P='); sprintf('开始计算')K=-inv((B*inv(P)*B'))*W;V=inv(P)*B'*K;u=sqrt((V'*P*V)/(n-t));Ql=inv(P)-inv(P)*B'*inv(B*inv(P)*B')*B*inv(P);fid=fopen('data.txt','wt'); %写入文件路径,文件输出fprintf(fid,'=====================条件平差: BV+W=0 =====================\n'); fprintf(fid,'输出n,t\n') ;fprintf(fid,'%12.5f %12.5f\n',n ,t) ;%n,tfprintf(fid,'输出矩阵B\n');[m,n]=size(B); %Bfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',B(i,j));elsefprintf(fid,'%12.5f\t',B(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵W\n');[m,n]=size(W); %Wfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',W(i,j));elsefprintf(fid,'%12.5f\t',W(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵P\n'); [m,n]=size(P); %Pfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',P(i,j)); elsefprintf(fid,'%12.5f\t',P(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵V\n'); [m,n]=size(V); %Vfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',V(i,j)); elsefprintf(fid,'%12.5f\t',V(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵Qx\n'); [m,n]=size(Ql); %Ql for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',Ql(i,j));elsefprintf(fid,'%12.5f\t',Ql(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出单位权中误差u\n');[m,n]=size(u); %u for i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',u(i,j));elsefprintf(fid,'%12.5f\t',u(i,j));endendendfprintf(fid,'\n');fclose(fid);case 3% 具有条件的参数平差% 参数平差V=AX-L% 条件平差BX+W=0sprintf('3:具有条件的参数平差V=AX-L;BX+W=0') n=input('请输入n=');t=input('请输入t=');r=input('请输入r=');A=input('请输入误差方程系数矩阵A=');L=input('请输入常数项矩阵L=');B=input('请输入条件方程系数矩阵B=');W=input('请输入自由项向量W=');P=input('请输入权阵P=');sprintf('开始计算')K=-(inv(B*inv(A'*P*A)*B'))*(W+B*inv(A'*P*A)*A'*P*L)X=(inv(A'*P*A))*(B'*K+A'*P*L)N=(A'*P*A)M=B*inv(N)*B'Qx=inv(N)-inv(N)*B'*inv(M)*B*inv(N)u=sqrt((V'*P*V)/(n-t+r))fid=fopen('data.txt','wt'); %写入文件路径,文件输出fprintf(fid,'=====================具有条件的参数平差: V=AX-L;BX+W=0 ===========================\n');fprintf(fid,'输出n,t,r\n') ;fprintf(fid,'%12.5f %12.5f %12.5f\n',n ,t,r); %n,t,rfprintf(fid,'输出矩阵A\n');[m,n]=size(A); %Afor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',A(i,j));elsefprintf(fid,'%12.5f\t',A(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵L\n');[m,n]=size(L); %Lfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',L(i,j)); elsefprintf(fid,'%12.5f\t',L(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵B\n'); [m,n]=size(B); %Bfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',B(i,j)); fprintf(fid,'%12.5f\t',B(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵W\n'); [m,n]=size(W); %W for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',W(i,j)); elsefprintf(fid,'%12.5f\t',W(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵P\n'); [m,n]=size(P); %P for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',P(i,j)); elsefprintf(fid,'%12.5f\t',P(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵X\n'); [m,n]=size(X); %X for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',X(i,j)); elsefprintf(fid,'%12.5f\t',X(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵V\n'); [m,n]=size(V); %Vfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',V(i,j)); elsefprintf(fid,'%12.5f\t',V(i,j));endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵Qx\n'); [m,n]=size(Qx); %Qx for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',Qx(i,j)); elsefprintf(fid,'%12.5f\t',Qx(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出单位权中误差\n'); [m,n]=size(u); %u for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',u(i,j));elsefprintf(fid,'%12.5f\t',u(i,j));endendendfprintf(fid,'\n');fclose(fid);case 4% 具有参数的条件平差% 具有参数的条件方程式BV+AX+W=0sprintf('4:具有参数的条件平差BV+AX+W=0 ')n=input('请输入n=');t=input('请输入t=');r=input('请输入r=');B=input('请输入条件方程中V的系数矩阵B=');A=input('请输入条件方程中X的系数矩阵A=');W=input('请输入条件方程自由向量W=');P=input('请输入权阵P=');sprintf('开始计算')N=(B*inv(P)*B')M=(A'*inv(N)*A)X=-inv(M)*A'*inv(N)*WK=-inv(N)*(A*X+W)V=inv(P)*B'*KQx=inv(M)u=sqrt((V'*P*V)/(r-t))fid=fopen('data.txt','wt'); %写入文件路径,文件输出fprintf(fid,'=====================具有参数的条件平差: BV+AX+W=0 ================================\n');fprintf(fid,'输出n,t,r\n') ;fprintf(fid,'%12.5f %12.5f %12.5f\n',n ,t,r) ; %n,t,rfprintf(fid,'输出矩阵B\n');[m,n]=size(B); %Bfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',B(i,j));elsefprintf(fid,'%12.5f\t',B(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵A\n'); [m,n]=size(A); %Afor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',A(i,j)); elsefprintf(fid,'%12.5f\t',A(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵W\n'); [m,n]=size(W); %Wfor i=1:1:mfor j=1:1:nif j==nfprintf(fid,'%12.5f\n',W(i,j)); elsefprintf(fid,'%12.5f\t',W(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵P\n');[m,n]=size(P); %P for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',P(i,j)); elsefprintf(fid,'%12.5f\t',P(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵X\n'); [m,n]=size(X); %X for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',X(i,j)); elsefprintf(fid,'%12.5f\t',X(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵V\n'); [m,n]=size(V); %V for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',V(i,j)); elsefprintf(fid,'%12.5f\t',V(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出矩阵Qx\n'); [m,n]=size(Qx); %Qx for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',Qx(i,j)); elsefprintf(fid,'%12.5f\t',Qx(i,j)); endendendfprintf(fid,'\n');fprintf(fid,'输出单位权中误差\n'); [m,n]=size(u); %u for i=1:1:m for j=1:1:nif j==nfprintf(fid,'%12.5f\n',u(i,j));elsefprintf(fid,'%12.5f\t',u(i,j));endendendfprintf(fid,'\n');fclose(fid);otherwisedisp('代号输入有误')end。

二分法及其matlab程序-经典

在MATLAB中,根据计算需求选择合适的数据类型,如双 精度(double)、单精度(single)或整数类型(int), 以避免不必要的精度损失。
避免数值不稳定性
对于涉及大量计算或迭代的过程,要注意数值稳定性问题, 采取适当的算法或技巧,如使用稳定的算法、增加迭代次 数等。
利用MATLAB内置函数
二分法及其matlab程序-经典
目录
• 二分法基本原理 • MATLAB编程实现二分法 • 二分法在数值计算中应用举例 • MATLAB程序优化与改进策略 • 总结与展望
01
二分法基本原理
二分法定义与思想
定义
二分法是一种求解非线性方程近似根的有效算法,其基本思想是通过不断将区间一分为二,逐步缩小求解范围, 直到满足精度要求为止。
end
root = (a + b) / 2;
VS
关键代码片段展示
end
```
运行结果分析与讨论
• 假设我们要求解非线性方程f(x)=x^3-2x-5=0在 区间[2, 3]内的根,可以调用上述bisection函数进 行求解
运行结果分析与讨论
```matlab f = @(x) x^3 - 2*x - 5;
精度控制
当区间长度|b - a|小于给定 精度时,可取中点或任一端 点作为近似最优解。
求解矩阵特征值问题
• 特征多项式构建:对于n阶矩阵A,构建特征多项式f(λ) = |A - λI|。 • 初始区间选择:确定包含特征值的初始区间[a, b]。 • 二分迭代:取中点c = (a + b) / 2,计算f(c)。若f(c) == 0,则c为特征值;否则根据f(a)、f(b)、f(c)的大小关
缺点
二分法收敛速度较慢,需要多次迭代才能得 到精确解,且对于多峰函数或者复杂函数可 能无法找到全局最优解。

matlab编程例题

matlab编程例题Matlab是一种高级的计算机编程语言和数学计算软件。

它具有强大的数据处理和可视化功能,可以用于各种科学计算、数据分析、模拟和建模等领域。

本文将介绍一些常见的Matlab编程例题,帮助初学者掌握Matlab的基本编程技能。

1. 矩阵运算矩阵是Matlab中最基本的数据类型之一,可以进行各种数学运算。

下面是一些矩阵运算的例子:a = [1 2 3; 4 5 6; 7 8 9]; %定义一个3×3的矩阵b = [10 20 30; 40 50 60; 70 80 90]; %定义另一个3×3的矩阵c = a + b; %矩阵加法d = a - b; %矩阵减法e = a * b; %矩阵乘法f = a' %矩阵转置运行上面的代码,可以得到以下结果:c =11 22 3344 55 6677 88 99d =-9 -18 -27-36 -45 -54-63 -72 -81e =300 360 420660 810 9601020 1260 1500f =1 4 72 5 83 6 92. 绘图Matlab具有强大的绘图功能,可以绘制各种二维和三维图形。

下面是一些绘图的例子:x = linspace(0, 2*pi, 100); %生成一个包含100个点的等间隔向量y = sin(x); %计算sin函数plot(x, y); %绘制sin函数图像z = peaks(25); %生成一个25×25的山峰矩阵surf(z); %绘制3D山峰图像运行上面的代码,可以得到以下结果:sin函数图像:3D山峰图像:3. 文件读写Matlab可以读写各种文件格式,包括文本文件、Excel文件、图像文件等。

下面是一些文件读写的例子:fid = fopen('data.txt', 'r'); %打开名为“data.txt”的文本文件data = fscanf(fid, '%f'); %读取文件中的数据fclose(fid); %关闭文件plot(data); %绘制数据图像A = xlsread('data.xlsx'); %读取名为“data.xlsx”的Excel 文件plot(A(:, 1), A(:, 2)); %绘制Excel文件中的数据图像运行上面的代码,可以得到以下结果:文本文件数据图像:Excel文件数据图像:4. 函数编写Matlab中的函数是一种可重复使用的代码块,可以让程序更加模块化和可读性更高。

MATLAB可靠度计算程序(附解释)

应用MATLAB的可靠度计算程序(附语句解释)以下是matlab中求可靠度计算程序以及各语句的解释,对可靠度编程入门的童鞋可做参考:function bbeta=LJF(muX,sigmaX)%子函数的settingupsLn=sqrt(log(1+(sigmaX(1)/muX(1))^2));mLn=log(muX(1))-sLn^2/2;%求dltLnR和muLnRaEv=sqrt(6)*sigmaX(3)/pi;uEv= -psi(1)*aEv-muX(3);%求极值I型分布的两个参数muX1=muX;sigmaX1=sigmaX;x=muX;normX=eps;while abs(norm(x)-normX)/normX > 1e-6%精度控制normX=norm(x);g=x(1)-x(2)-x(3);%极限方程gX=[1;-1;-1];cdfX=[logncdf(x(1),mLn,sLn);1-evcdf(-x(3),uEv,aEv)];%分布函数的当量正态化pdfX=[lognpdf(x(1),mLn,sLn);evpdf(-x(3),uEv,aEv)];%分布密度的当量正态化nc=norminv(cdfX);%求标准正态分布函数的反函数sigmaX1(1:2:3)=normpdf(nc)./pdfX;%求得等效正态变量的均方差muX1(1:2:3)=[x(1:2:3)-nc.*sigmaX1(1:2:3)];%求得等效正态变量的均值gs=gX.*sigmaX1;alphaX= -gs/norm(gs);%求得敏感度系数cos(sita)bbeta=(g+gX'*(muX1-x))/norm(gs);%求得可靠度指标x=muX1+bbeta*sigmaX1.*alphaX;%将结果迭代得新的xend关于可靠度程序的参考书籍,具体可参考张明先生编著的《结构可靠度分析》。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB简单程序大全
求特征值特征向量
a=[234;159;852]det(a)a'
rank(a)inv(a)rref(a)
eig(a)%求特征值和特征向量
卫星运转问题
h=200,h=51000,r=6378;a=(h+h+2*r)/2;c=(h-h)/2;
b=(a^2-c^2)^(1/2);e=c/a;
f=sqrt(1-exp(2).*cos(t)^2);l=int(f,t,0,pi/2)l=4*a.*l
动态玫瑰线
n=3;n=10000;
二重积分
symsxyf=x^2*sin(y);
int(int(f,x,0,1),y,0,pi)ezmesh(f,[0,1,0,pi])
函数画图
symsx;f=exp(-0.2*x)*sin(0.5*x);ezplot(f,[0,8*pi])
玫瑰线
theta=0:0.01:2*pi;r=cos(3*theta);polar(theta,r,'r')
求x^2+y^2=1和x^2+z^2=1所围成的体积
symsxyzrr=1;
z=sqrt(1-x^2);y0=z;
v=8*int(int(z,y,0,y0),x,0,1)
求导数及图像
f='1/(5+4*cos(x))';subplot(1,2,1);ezplot(f)f1=diff(f)
subplot(1,2,2);ezplot(f1)
拖x轴转动
t=(0:20)*pi/10;
r=exp(-.2*t).*sin(.5*t);theta=t;
x=t'*ones(size(t));y=r'*cos(theta);z=r'*sin(theta);mesh(x,y,z)
colormap([000])
某年是否闰年
year=input('inputyear:=');n1=year/4;n2=year/100;n3=year/400;
ifn1==fix(n1)&n2~=fix(n2)disp('是闰年')
elseifn1==fix(n1)&n3==fix(n3)disp('就是闰年')else
disp('不是闰年')end
玫瑰线的绘制
相遇问题
functionk=moto(a,b)
ifnargin==0,a=0;b=100;endva=10;vb=8;vc=60;f=1;k=0;
while(b-a)>0.2iff==1
tk=(b-a)/(vb+vc);else
tk=(b-a)/(vc+va);end
a=a+va*tk;b=b-vb*tk;f=-f;k=k+1;end
数学实验
symsx;x=1:100;
f(x)=exp(-0.2*x).*sin(0.5*x);symsx;x=1:100;
f(x)=exp(-0.2*x).*sin(0.5*x);plot(x,f(x))
symsx;x=0:0.1:2*pi;
f(x)=exp(-0.2*x)*sin(0.5*x);plot(x,f(x))
symsx;x=0:0.1:2*pi;
f(x)=exp(-0.2*x).*sin(0.5*x);
plot(x,f(x))
symsx;x=0:0.1:2*pi;
f(x)=exp(-0.2*x).*sin(0.5*x);zplot(x,f(x))clc
f=sym('sin(x)/x');limit(f)
f1=sym('(1+a/x)^x')limit(f1)
f1=sym('(1+a/x)^x'),x=inf;limit(f1)clc
f1=sym('(1+1/x)^x');limit(f1,'inf')
f1=sym('(1+1/x)^x');limit(f1,'inf')clc
f1=sym('(1+1/x)^x');limit(f1,'x',inf)clc
相遇问题
a=0;b=100;
va=10;vb=8;vc=60;f=1;k=0;
plot(a,0,'ro',b,0,'go'),holdonwhile(b-a)>0.2iff==1
tk=(b-a)/(vb+vc);else
tk=(b-a)/(vc+va);end
a=a+va*tk;b=b-vb*tk;
plot(a,0,'r.',b,0,'g.'),pause(1)f=-f;k=k+1;endk,tk,a,b
数学实验
f=[0913.5;0.100;00.20]x=[100;100;100]
y=x
forn=1:3x=f*xy=[y,x]endy
figure(1),bar(y(1,:))
figure(2),bar(y(2,:))

figure(3),bar(y(3,:))[p,d]=eig(f)a=p(:,1)b=a/sum(a)x1=b*300y1=x1forn=1:3x1=f*x
1y1=[y1,x1]endy1

figure(4),bar(y1(1,:))figure(5),bar(y1(2,:))figure(6),bar(y1(3,:))
杨辉三角
functiony=yang(n)ifnargin==0,n=3;end
y=eye(n);y(:,1)=ones(n,1);fork=3:n
y(k,2:k-1)=y(k-1,1:k-2)+y(k-1,2:k-1);end
实例2寻找水仙花数
一、实验内容
数153有一个特殊的性质,即153=1^3+5^3+3^3,那么有没有其他这样的数呢?我们怎
样利用matlab程序设计快速寻求这些水仙花数呢?

二、实验分析
把任一数各位数字的立方和求出,再求所得的各位数字的立方和,依次进行下去,总可
以得到一个水仙花数.如把76按这样的运算进行下去:

相关文档
最新文档