Получение коэффициентов комплексных выражений в симп

Моя проблема была похожа, но связана с масштабированием текста внутри заголовка. Я попробовал Fit Font, но мне нужно было переключить компрессор, чтобы получить какие-либо результаты, поскольку он решал немного другую проблему, как и Text Flow. Поэтому я написал свой собственный небольшой плагин, который уменьшает размер шрифта, чтобы он соответствовал контейнеру, предполагая, что у вас есть overflow: hidden и white-space: nowrap, так что даже если сокращение шрифта до минимума не позволяет показывать полный заголовок, он просто отключается что он может показать.

(function($) {

  // Reduces the size of text in the element to fit the parent.
  $.fn.reduceTextSize = function(options) {
    options = $.extend({
      minFontSize: 10
    }, options);

    function checkWidth(em) {
      var $em = $(em);
      var oldPosition = $em.css('position');
      $em.css('position', 'absolute');
      var width = $em.width();
      $em.css('position', oldPosition);
      return width;
    }

    return this.each(function(){
      var $this = $(this);
      var $parent = $this.parent();
      var prevFontSize;
      while (checkWidth($this) > $parent.width()) {
        var currentFontSize = parseInt($this.css('font-size').replace('px', ''));
        // Stop looping if min font size reached, or font size did not change last iteration.
        if (isNaN(currentFontSize) || currentFontSize <= options.minFontSize ||
            prevFontSize && prevFontSize == currentFontSize) {
          break;
        }
        prevFontSize = currentFontSize;
        $this.css('font-size', (currentFontSize - 1) + 'px');
      }
    });

  };

})(jQuery);
3
задан shaun252 30 March 2019 в 23:49
поделиться

1 ответ

Ваше первое выражение имеет 2640.0 в качестве коэффициента a. Как видите, коэффициент становится нулевым только после его упрощения. Действительно, если вы напечатаете коэффициент после упрощения выражения, вы получите 264.0

import sympy as sp

a,b =  sp.symbols("a, b")

expr = 2640.0*a  - 4.5*(1 + 1j)*(264.0*a + 264.0*b) - 4.5*(+1 - 1j)*(264.0*a  + 264.0*b)

print(expr.coeff(a))
# 2640.00000000000

print(sp.simplify(expr))
# 264.0*a - 2376.0*b

print(sp.simplify(expr).coeff(a)) # <--- Simplified expression
# 264.000000000000
0
ответ дан Sheldore 30 March 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: