Register

OR

Do you already have an account? Login

Login

OR

Don't you have an account yet? Register

Newsletter

Submit to our newsletter to receive exclusive stories delivered to you inbox!

составить программу решения уравнения sinx^2 cosx^2-10x=0 методом деления отрезка пополам. Известно, что корень находится на промежутке [0,1]

более месяца назад
Просмотров : 12    Ответов : 1   

Лучший ответ:

Ваша небрежность при записи задания привела к необходимости составить решение для двух выражений.
F_1(x)=sin(x^2) cos(x^2)-10x \ F_2(x)=sin^2x cos^2x-10x=1-10x
Соответственно, были найдены два корня.

// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
function f1(x:real):=sin(x*x) cos(x*x)-10*x;

function f2(x:real):=1-10*x;

function Root(a,b,eps:real; f:real->real):real;
begin
  var x,fx:real;
  var fa:=f(a);
  if abs(fa)<=eps then Result:=a
  else begin
    var fb:=f(b);
    if abs(fb)<=eps then Result:=b
    else
      if fa*fb>0 then Result:=0/0
      else
        repeat
          x:=(a b)/2;
          fx:=f(x);
          if abs(fx)<=eps then Result:=x
          else
            if fa*fx>0 then a:=x else b:=x;
        until abs(fx)<=eps
    end
end;

begin
  var eps:=ReadReal('Введите точность решения:');
  Writeln('r1=',Root(0,1,eps,f1));
  Writeln('r2=',Root(0,1,eps,f2))
end.


Тестовое решение
Введите точность решения: 1e-7
r1=0.10101518034935
r2=0.0999999940395355

более месяца назад
Ваш ответ:
Комментарий должен быть минимум 20 символов
Чтобы получить баллы за ответ войди на сайт





Вы можете из нескольких рисунков создать анимацию (или целый мультфильм!). Для этого нарисуйте несколько последовательных кадров и нажмите кнопку Просмотр анимации.


Другие вопросы: