Предупреждение: не удалось найти явный интеграл.

Я пытаюсь сделать простую интеграцию, я прикрепил код. Не могли бы вы помочь мне, что я делаю неправильно в коде.

function [f_value] = SurfArea ()

        a=[1.78E-05 3.39E-04 0.0104 -0.05791 -16.36];

        R = 30;

        da = polyder(a);

        syms x

        integrand = int((x*sqrt(1+1/(poly2sym(da)).^2)),-R,0);

        f_value = sym2poly(integrand);

end

Я хочу удалить предупреждение, пожалуйста, помогите.


person Sagar    schedule 12.02.2014    source источник
comment
Связано: stackoverflow.com/questions/20082581/   -  person herohuyongtao    schedule 12.02.2014
comment
возможный дубликат Отключение предупреждающих сообщений в MATLAB - хотя ответ @RodyOldenhuis здесь более конкретен. ..   -  person horchler    schedule 12.02.2014
comment
@horchler Я пытался использовать функцию vpa, однако все еще получаю то же предупреждение. Не могли бы вы объяснить реализацию «двойного», как упоминалось там. Я не понял.   -  person Sagar    schedule 12.02.2014
comment
@Sagar: использование vpa не отключит предупреждение, потому что вам все равно нужно запустить int. Предупреждение сообщает вам, что интеграл не может быть решен символически. Однако иногда вы можете передать вывод от int к vpa или double или eval, и интеграл будет оцениваться численно. Хотя в таких случаях вы можете попытаться адаптировать свои уравнения к integral.   -  person horchler    schedule 12.02.2014


Ответы (1)


Если вы дадите команду

>> [~,ID] = lastwarn

сразу после выдачи предупреждения вы получите соответствующий идентификатор предупреждения для использования. Вы можете использовать это так:

%// Force the warning off
warnstate = warning('off', 'symbolic:sym:int:warnmsg1');

%// ... do the integration etc.

%// Switch warning back into original state
warning(warnstate);

Кстати:

  • кажется, вы хотите вернуть вектор полиномиальных коэффициентов. Как вы ожидаете, что этот интеграл приведет к многочлену?!
  • Если вам нужны числовые результаты, взгляните на integral (R2013) или quadgk (‹=R2012). Это намного быстрее, чем использование символического набора инструментов.
person Rody Oldenhuis    schedule 12.02.2014