рома1341
12.11.2022 20:51

Всем привет) Задали домашку по проге:Модифицированным методом Ньютона решить функцию a0+a1*x+a2*x*x+a3*log(1/x)
Написал код,но с производной что-то не так
#include
#include
#include

float f(float a0, float a1, float a2, float a3, float x)
{
return a0+a1*x+a2*x*x+a3*log(1/x);
}

int main ()
{
int n;
float a0, a1, a2, a3, E, A, B, x0, x1, proisv;
FILE *myfile;
myfile = fopen ("Vivod.txt", "w");
printf ("Для решения уравнения a0+a1*x+a2*x*x+a3*ln(1/x) введите значения следующих коэффицентов: \n");
printf ("a0=");
scanf ("%f", &a0);
printf ("a1=");
scanf ("%f", &a1);
printf ("a2=");
scanf ("%f", &a2);
printf ("a3=");
scanf ("%f", &a3);
printf ("Введите желаемую точность решения: ");
scanf ("%f", &E);
printf ("Введите начальную границу интервала: ");
scanf ("%f", &A);
printf ("Введите конечную границу интервала: ");
scanf ("%f", &B);
printf ("Введите примерное значение решения уравнения(приближение): ");
scanf ("%f", &x0);

while ((x0 B))
{
printf ("Заданное приближение не принадлежит заданному интервалу.Введите корректное значение приближения: ");
scanf ("%f", &x0);
}

proisv=a1+(2*a2*x0)-(a3/x0);

do
{
x1=x0-(f(a0, a1, a2, a3, x0)/proisv);
x0=x1;
}while(fabs(x0-x1)>E);

if ((x1 B))
{
printf ("В заданном интервале нет решений данного уравнения. \n");
fprintf (myfile, "There are no solutions to this equation in this interval. \n");
}
else
{
printf ("%f \n", x1);
fprintf (myfile, "%f \n", x1);
}

}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
pozitivtv2905
17.02.2021 04:54
Если у нас есть координаты этих вершин на плоскости вида (x; y), то
A(x1,y1)
B(x2,y2)
C(x3,y3)

program q;
var x1,x2,y1,y2,x3,y3:integer;
ab,ac,alp,bet,alfa,s:real;
begin
write('введите координаты точки A: ');
read(x1);
readln(y1);
write('введите координаты точки B: ');
read(x2);
readln(y2);
write('введите координаты точки C: ');
read(x3);
readln(y3);
ab:=sqrt(sqr(x2-x1)+sqr(y2-y1));
ac:=sqrt(sqr(x3-x1)+sqr(y3-y1));
alp:=arctan((y2-y1)/(x2-x1));
bet:=arctan((y3-y1)/(x3-x1));
alfa:=bet*2-alp;
s:=sin(alfa)*(ab*ac)/2;
writeln('площадь треугольника=',s);
readln
end.
0,0(0 оценок)
Ответ:
арсен2000
15.04.2020 14:05

cd ~

mkdir folder1

cd folder1

touch file1

touch file2

touch file3

touch file4

tar cvf archive.tar *

mkdir ../folder2

cd ../folder2

touch new_file

cp ../folder1/archive.tar .

tar rvf archive.tar new_file

tar vf archive.tar --delete file3

tar vf archive.tar --list > list1

tar vf ../folder1/archive.tar --list > list2

diff list1 list2

#Разъединение выполнить не получится, потому что все файлы пустые, но если засовывать не пустые, то

split -b 10M archive.tar "part" # вместо 10M нужный размер

cat part* > joined_archive.tar

tar vf archive.tar --list

tar vf joined_archive.tar --list

tar czvf final_archive.tar archive.tar ../folder1/archive.tar joined_archive.tar

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота