![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.11.2010
Сообщений: 17
|
![]()
Задание вроде и простое, а вроде и нет...
Решение не линейных уравнений. Предположим у меня есть графики его надо решить двумя способами (графики F1= e^ch x и f2=5,7x + 4, границы X(н)=(-2) X(к)=(0.6)) Я так понял их надо приравнять и решить. 1. Метод дихотомии 2. Метод хорд Есть набросок но в чём шутка 1. Где-то ошибка считает криво...Где то в цыкле вроде 2. Надо вставить функции и оптимизировать (просьба всё что будете исправлять, поясняйте) и ещё по возможности вывод ответов в графике но эту часть закоментируйте. Заранее благодарен. Набросок в студию: #include <conio.h> #include <iomanip.h> #include <iostream.h> #include <math.h> main(){ float ca, cb, cxn, x0, xn, c, e, z, a, b, x, y; int i=0; clrscr(); cout<<"Resheniye uravneniya exp(ch(x))=5.7*x+4 metodon Dihotomii: "<<endl<<endl; cout<<"Preobrazuem uravneniye:F(x)=exp(ch(x))-5.7*x+4=0"<<endl<<endl; cout<<"Vvedite tochki a i b, chtoby F(a)*F(b)<0 "<<endl<<endl; cout<<"Vvedite znachenie tochki a=";cin>>a; cout<<endl<<"Vvedite znachenie tochki b=";cin>>b;cout<<endl; cout<<"Vvedite tochnost vychisleny e=";cin>>e;cout<<endl; y=(exp(cosh(a))-5.7*a+4); z=(exp(cosh(b))-5.7*b+4); if (y*z<0) cout<<"DAAAAAAA"<<endl; do{ x0=(a+b)/2; c=(exp(cosh(x0))-5.7*x0+4); if (y*c>0&&c*z<0) a=x0; if (y*c<0&&c*z>0) b=x0; i++; cout<<i<<" promezhutochnoe znachenie= "<<x0<<endl; } while (b-a>e); cout<<"x="<<x0<<endl<<endl; //////////////////////////////////// cout<<"Resheniye uravneniya exp(ch(x))=5.7*x+4 metodon hord: "<<endl<<endl; cout<<"Preobrazuem uravneniye: F(x)=exp(ch(x))-5.7*x+4=0"<<endl<<endl; ca=(exp(cosh(a))-5.7*a+4); cb=(exp(cosh(b))-5.7*b+4); y=(ca*b-cb*a)/(ca-cb); for(i=1;fabs(x-y)>=e;i++){ x=y; cxn=(exp(cosh(y))-5.7*y+4); if (ca*cxn>0&&cxn*cb<0){ a=y; ca=cxn; x=y-cxn/(cb-cxn)*(b-y); } if (ca*cxn<0&&cxn*cb>0){ b=y; x=y-cxn/(cxn-ca)*(cxn-ca); } cout<<i<<" promezhutochnoe znachenie= "<<x<<endl; } cout<<"x="<<x<<endl<<endl; cout<<endl<<"Press any key..."; getch(); return 0; } Последний раз редактировалось xitrec1zaraza; 27.02.2011 в 21:00. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Линейные списки | ]tach[ | Помощь студентам | 0 | 19.01.2011 16:59 |
SQL запрос. вывести студентов,которые НЕ оплатили обучение за определенный семестр | Jene4ka | БД в Delphi | 12 | 17.05.2010 23:18 |
Задачи на ассемблере(1 курс,1 Семестр) | Natsu | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 24 | 25.11.2009 19:49 |
Задачки на Паскале помогите пожалуйста решить 2 задачки, а то отчислят. плиз | VADOS2009-1 | Помощь студентам | 0 | 03.06.2009 18:11 |