❶ 我在学数值分析这门课,其中好多地方用到matlab,想请问关于数值分析的matlab应该怎样学
下面是我写的,放心用去啦~~~
%超松弛迭代(SOR方法)
function [x k flag]=SOR(A, b, eps ,w,maxl)
%A为方程组的系数矩阵
%b为方程组的右端向量
%eps为精度要求
%maxl为最大迭代次数,缺省值为100
%w为超松弛因子,默认值为1
%x为方程组的解
%k为迭代次数
%flag为指标变量
%赋初值:
if nargin<5 maxl=100;end
if nargin<4 w=1;end
if nargin<3 eps=1e-5;end
n=length(b); k=0;
x=zeros(n,1); y=zeros(n,1); flag='OK';
%开始迭代:
while true
y=x; %y,z均为辅助变量
for i=1:n
z=b(i);
for j=1:n
if j~=i
z=z-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10|k==maxl
flag='failure';return;
end
z=z/A(i,i);x(i)=(1-w)*x(i)+w*z;
end
if norm(y-x,inf)<eps
break;
end
k=k+1;
end
%Jacobi迭代法解线性方程组
function [x k flag]=Jacobi(A, b, eps ,maxl)
%A为方程组的系数矩阵
%b为方程组的右端向量
%eps为精度要求
%maxl为最大迭代次数,缺省值为100
%x为方程组的解
%k为迭代次数
%flag为指标变量
%赋初值:
if nargin<4 maxl=100;end
if nargin<3 eps=1e-5;end
n=length(b); k=0;
x=zeros(n,1); y=zeros(n,1); flag='OK';
%开始迭代:
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10|k==maxl
flag='failure';return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf)<eps
break;
end
x=y; k=k+1;
end
稍微调试肯定可以通过,都是经过测试的,记得给我分数呦,谢啦~~~
❷ 应用数值计算方法(运用MATLAB)求解带参数的定积分
这个很简单啊:
>> syms t x
>> int(sin(t)/t,0,x)
ans =
sinint(x)
由于 sin(t)/t 的积分没有更简单的初等函数表示,所以用一个专门的函数 sinint 来表达(可以doc sinint 查看该函数的说明)。
❸ 用Matlab的数值计算方法编程,在同一幅图中画出几个函数图象。在线急等,感谢高手解答。
clear all
clc
x=0:0.1:5*pi;
y1=10/sqrt(1-0.5^2)*exp(-0.5*x).*sin(5*x);
y2=10/sqrt(1-0.5^2)*exp(-0.5*x);
y3=-10/sqrt(1-0.5^2)*exp(-0.5*x)
plot(x,y1,'r-',x,y2,'g-.',x,y3,'k')
title('stuid+stuname');
xlabel('振荡时间x');
ylabel('振荡函数幅度值');
axis([0,14,-12,12]);
text(0.5*pi,10/sqrt(1-0.5^2)*exp(-0.5*0.5*pi).*sin(5*0.5*pi),'曲线f1');
text(0.3*pi,-10/sqrt(1-0.5^2)*exp(-0.5*0.3*pi),'曲线f1的包络')
❹ 什么是matlab数值计算概念
《Matlab数值计算方法》系统地介绍了常见数学问题的各种数值解法及其内在的逻辑联系,并用MATLAB作为算法实现工具,为快速掌握理论打下坚实的基础。《Matlab数值计算方法》共分10章,主要内容包括MATLAB概论、MATLAB基础知识、MATLAB数据的图形表示、插值法和数据拟合、数值积分、常微分方程初值问题数值解法、非线性方程求解、求解线性代数方程组和计算矩阵特征值的迭代法、线性方程组的数值解法,以及MATLAB在数值计算中的综合应用。(如果对你有帮助,请设置“好评”,谢谢!)
❺ 求高手!!!!!!数值分析实验用matlab计算
%选取节点
x = -1:2/19:1;
x = single(x);
%计算节点处样本点
y = exp(x);
y = single(y);
%多项式基函数次数取值
table = [3 5 7 9 11 13 15];
cn = zeros(7,1);
sigma = zeros(7,1);
%多项式基函数次数
for m = 1:7
I = table(m);
%计算系数矩阵
G = zeros(I+1,I+1);
for i = 1:I+1
for j = 1:I+1
if (i==j)
G(i,j) = 2/(2*j-1);
else
G(i,j) = 0;
end
end
end
G = single(G);
%计算系数矩阵的条件数
cn(m) = cond(G);
%计算dd
dd = [2.3504 0.735759 0.143126 0.0201302 0.00221447 0.000199925 0.0000153007 1.01607*10^-6 5.95849*10^-8 3.12823*10^-9 1.48656*10^-10 0.*10^-12 2.57744*10^-13 0.*10^-15 0.*10^-15 0.*10^-18 0.*10^-15]
dd = single(dd);
%计算d
d = zeros(I+1,1);
for i = 1:I+1
d(i) = dd(i);
end
d=single(d);
%求解多项式系数矩阵a
a = inv(G)*d;
a = single(a);
%计算嘞让德多项式在给定节点处的值
P = zeros(16,20);
for k = 1:20
P(1,k) = 1;
P(2,k) = x(k);
P(3,k) = (3*x(k)^2-1)/2;
P(4,k) = (5*x(k)^3-3*x(k))/2;
P(5,k) = (35*x(k)^4-30*x(k)^2+3)/8;
P(6,k) = (63*x(k)^5-70*x(k)^3+15*x(k))/8;
P(7,k) = (231*x(k)^6-315*x(k)^4+105*x(K)^2-5)/16;
P(8,k) = (429*x(k)^7-693*x(k)^5+315*x(k)^3-35*x(k))/6;
P(9,k) = (6435*x(k)^8-12012*x(k)^6+6930*x(k)^4-1260*x(k)^2+35)/128;
P(10,k) = (12155*x(k)^9-25740*x(k)^7+18018*x(k)^5-4620*x(k)^3+315*x(k))/128;
P(11,k) = (46189*x(k)^10-109395*x(k)^8+90090*x(k)^6-30030*x(k)^4+3465*x(k)^2-63)/256;
P(12,k) = (88179*x(k)^11-230945*x(k)^9+218790*x(k)^7-90090*x(k)^5+1505*x(k)^3-639*x(k))/256;
P(13,k) = (676039*x(k)^12-1939938*x(k)^10+2078505*x(k)^8-1021020*x(k)^6+225225*x(k)^4-18018*x(k)^2+231)/1024;
P(14,k) = (1300075*x(k)^13-4056234*x(k)^11+484945*x(k)^9-2771340*x(k)^7+765765*x(k)^5-90090*x(k)^3+3003*x(k))/1024;
P(15,k) = (5014575*x(k)^14-16900975*x(k)^12+22309287*x(k)^10-14549535*x(k)^8+4849845*x(k)^6-765765*x(k)^4+45045*x(k)^2-429)/2048;
P(16,k) = (9694845*x(k)^15-35102025*x(k)^13+50702925*x(k)^11-37182145*x(k)^9+14549535*x(k)^7-2909907*x(k)^5+255255*x(k)^3-6435*x(k))/2048;
end
P = single(P);
%计算拟合所得数值
yy = y;
for k = 1:20
sum3 = 0;
for i = 1:I+1
sum3 = sum3+a(i)*P(i,k);
end
yy(k) = sum3;
end
yy = single(yy);
%计算偏差sigma
for k = 1:20
sigma(m) = sigma(m)+(yy(k)-y(k))^2;
end
end
figure(1);
plot(table,log(cn))
hold on
plot(table,log(cn),'r*')
figure(2);
plot(table,sigma)
hold on
plot(table,sigma,'r*')
❻ matlab在数值分析中的应用有哪些
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 MATLAB 产品族可以用来进行以下各种工作: ● 数值分析 ● 数值和符号计算 ● 工程与科学绘图 ● 控制系统的设计与仿真 ● 数字图像处理 技术 ● 数字信号处理 技术 ● 通讯系统设计与仿真 ● 财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
❼ 关于数值计算方法的线性方程组的数值解法,求解具体步骤,最好可以有matlab编程
会慢慢收敛到A的第一个特征向量,然后max||Xk|会收敛到第一个特征值,也就是绝对值最大的那个特征值。
X=A\b; b=X/norm(X,'inf');
X=A\b; b=X/norm(X,'inf');
......
❽ matlab怎么做数值分析
用matlab软件做数值分析相对其他数学要方便的多,如求解非线性方程的数值解,微分方程的数值解,数学模型的预测等等多比较实用。
❾ 怎么利用matlab对数值分析中线性插值进行运算
clear;clc A1=[397 384 425 416 498 476]; A2=[406 425 482 464 518 523]; A3=[456 472 521 514 560 579]; X=[A1' A2' A3']; reps=2; [P,Table]=anova2(X,reps,'on')
❿ 数值计算方法的matlab源程序
题目是多项式插值的振荡现象,函数在[-1,1]上为y=1./(1+25*x.^2)
就此写的程序如下:
function y=func1(x,c)
if c=1;
y=1./(1+25*x.^2);
end;
if c=2;
y=x./(1+x.^4);
end;
if c=3;
y=atan(x);
end;
运行后错误说明如下:
??? Error: File: func1.m Line: 2 Column: 5
The expression to the left of the equals sign is not a valid target for an assignment.
请问高手我该怎么修改程序..问题补充:
改为c==1后,此时运行程序也是错误,说明如下:
Error in ==> func1 at 2
func1