|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.11.2011, 14:28 | #1 |
Регистрация: 13.11.2011
Сообщений: 4
|
Найти корень уравнения методом хорд
Найти корень уравнения x+pow(2,x)-2 методом хорд......Вроде все правильно, но логарифм в строке if ((x+pow(2,x)-2)*(pow(2,a)*(log(2)*log(2)*2))) почему выдает ошибку
//------------------------------------------------------------------------ #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> #include <math.h> #include <tchar.h> //------------------------------------------------------------------------ float f(float x) { return(x+pow(2,x)-2); } void mal(float a,float b,float e) { float g;float y,x1,x2,R,x;int i,z; while (fabs(b-a)>e) { if (f(a)*(f((a+b)/2))==0) { if (f(a)==0) {cout<<"X="<<a<<" f(x)="<<f(a); break; } else {cout<<"X="<<a<<" f(x)="<<f(a); break; }} else{if ((f(a))*(f((a+b)/2))<0) {b=(a+b)/2;} else {a=(a+b)/2;} }}cout<<"X="<<(a+b)/2<<" f(x)="<<f((a+b)/2); } #pragma argsused int _tmain(int argc, _TCHAR* argv[]) { float a,b,e;float x,x1,x0; int i; cout<<"a=";cin>>a; cout<<"b=";cin>>b; cout<<"e=";cin>>e; if ((x+pow(2,x)-2)*(pow(2,a)*(log(2)*log(2)*2))) {x1=a; x0=x1+(x1-b)/((x1+pow(2,x1)-2)-(b-pow(2,b)+2)); } else {x1=b; x0=x1+(x1-a)/((x1-a)/((x1+pow(2,x1)-2)-(a-pow(2,a)+2))); } int k=2; for (i = 0; k!=0; i++) { x=x0+(x0-x1)/((x0+pow(2,x0)-2)-(x1+pow(2,x1)-2)); if (fabs(x0-x)<=e){k=0;} else {x1=x0;x0=x;}; } mal(a,b,e); getch(); return 0; } //------------------------------------------------------------------------ |
13.11.2011, 14:35 | #2 |
Пользователь
Регистрация: 19.12.2010
Сообщений: 52
|
Можешь скопировать текст ошибки?
AllSuccess1.ru - каталог полезных курсов.
|
13.11.2011, 14:37 | #3 |
Регистрация: 13.11.2011
Сообщений: 4
|
[BCC32 Error] File5.cpp(30): E2015 Ambiguity between 'std::log(float) at d:\программы\с++\embarcadero\rad studio\7.0\include\math.h:260' and 'std::log(long double) at d:\программы\с++\embarcadero\rad studio\7.0\include\math.h:295'
Full parser context File5.cpp(24): parsing: int main(int,char * *) |
13.11.2011, 14:42 | #4 |
Пользователь
Регистрация: 19.12.2010
Сообщений: 52
|
В math.h 2 функции - log( long double x ) и log( float x ) и компилятор не может выбрать какой использовать, надо указать явно:
Код:
AllSuccess1.ru - каталог полезных курсов.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти корень уравнения методом касательных | sparkie | Помощь студентам | 0 | 23.06.2011 14:37 |
Найти корень уравнения методом итераций. | MASOFF | Помощь студентам | 0 | 28.01.2011 16:42 |
найти корень методом хорд на с++ | Вика 13 | Помощь студентам | 3 | 31.10.2010 19:55 |
найти корень методом хорд в C++ | Shikarmo4000 | Помощь студентам | 2 | 23.05.2010 14:03 |
решение уравнения методом хорд и методом Ньютона | Маргоша)) | Общие вопросы Delphi | 1 | 21.04.2010 20:40 |