MATLAB200916常用计算方法.docVIP

  • 3
  • 0
  • 约1.19万字
  • 约 10页
  • 2019-04-05 发布于湖北
  • 举报
常用计算方法 1.超越方程的求解 一超越方程为 x(2lnx – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 SKIPIF 1 0 其中x0是一个初始值,由此计算终值x。取最大误差为e = 10-4,当| x - x0| e时,就用x的值换成x0的值,重新进行计算;否则| x - x0| e为止。 [程序]P1_1abs.m如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)1000,break,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)1e-4,break,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,.-,LineWidth,2,MarkerSize,12)%画迭代线.-表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title(超越方程的迭代折线,fontsize,fs)%标题 xlabel(\itn,fontsize,fs) %x标签 ylabel(\itx,fontsize,fs) %y标签 text(length(xx),xx(end),num2str(xx(end)),fontsize,fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 SKIPIF 1 0 MATLAB求零函数为fzero,fzero函数的格式之一是 x = fzero(f,x0) 其中,f表示求解的函数文件,x0是估计值。fzero函数的格式之二是 x = fzero(f,[x1,x2]) 其中,x1和x2表示零点的范围。 另外MATLAB还有求解函数solve,计算非线性方程和方程组的符号解。 [程序]P1_2fzero.m如下。 %超越方程的求法 clear %清除变量 x=10:0.1:100; %自变量向量 f=inline(2*log(x)-3-100./x) %定义内线函数 用的是字符窜 figure %创建图形窗口 plot(x,f(x),LineWidth,2) %画曲线 grid on %加网格 x0=fzero(f,[20,30]); %求方程的零点 %x0=fzero(f,20); %求方程的零点 hold on %保持图像 plot(x0,f(x0),.) %画零点 title(超越方程的解,fontsize,16) %标题 xlabel(\itx,fontsize,16) %x标签 ylabel(\itf,fontsize,16) %y标签 text(x0,0,num2str(x0),fontsize,16) %标记零点 x0=solve(2*log(x)-3-100./x)

文档评论(0)

1亿VIP精品文档

相关文档