0

方程式f(β) = cosh β cos β + 1 = 0があり、βi 根を使用していくつかの周波数を見つける必要があります。周波数の公式は

fi = sqrt((βi^4 * E*I) / (4*pi*m*L^3) );

このエラーが発生し、どこに問題があるのか​​ わかりません

??? Subscript indices must either be real positive integers or logicals.

Error in ==> C:\Documents and Settings\Laura Lupas\Desktop\subiect88\frecventa.m
On line 18  ==>     p= p0 - f(p0)/fd(p0);

これが私のコードです:

  function p = frecventa(f,fd,p_start,eps);

  p0=p_start;
  i=1;

  L = 0.9;    %lungimea grinzii in m
  b = 0.025;  %latimea grinzii in metri
  h = 0.0025;  %inaltimea in metrii
  dens = 7850; % kg/m cub
  v = b * h * L ; % volum
  m = dens * v;


  E =  2000e11; %modulul de elasti N/m patrat
  I= (b*h^2)/12;%mometul de inertie

  while(i <= 2)
     p= p0 - f(p0)/fd(p0);
     if abs(p-p0) < eps
        return
     end
      i = i + 1;
      p0=p;

      p = sqrt((p0^4 * E*I) / (4*pi*m*L^3) )
  end    



  % beta = 0:0.001:pi
  %f = cosh(beta).*cos(beta) + 1;
  %fd = sinh(beta).*cos(beta) - cosh(beta).*sin(beta);
4

2 に答える 2

0

それだけですか

  % beta = 0:0.001:pi
  %f = cosh(beta).*cos(beta) + 1;
  %fd = sinh(beta).*cos(beta) - cosh(beta).*sin(beta);

コードの残りの部分の上に配置し、コメントを解除する必要がありますか?

だからこれを試してください:

  beta = 0:0.001:pi
  f = cosh(beta).*cos(beta) + 1;
  fd = sinh(beta).*cos(beta) - cosh(beta).*sin(beta);
  p0=p_start;
  i=1;

  L = 0.9;    %lungimea grinzii in m
  b = 0.025;  %latimea grinzii in metri
  h = 0.0025;  %inaltimea in metrii
  dens = 7850; % kg/m cub
  v = b * h * L ; % volum
  m = dens * v;


  E =  2000e11; %modulul de elasti N/m patrat
  I= (b*h^2)/12;%mometul de inertie

  while(i <= 2)
     p= p0 - f(p0)/fd(p0);
     if abs(p-p0) < eps
        return
     end
      i = i + 1;
      p0=p;

      p = sqrt((p0^4 * E*I) / (4*pi*m*L^3) )
  end    
于 2012-05-29T14:53:07.503 に答える