Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 5
1

Странные константы при решении дифура (только у меня)

31.03.2011, 23:53. Показов 1204. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Не знаю, сможет ли кто-нибудь помочь с этой странной проблемой, но очень надеюсь на это! Это задача нахождения экстремума функционала из книги
http://www.nsu.ru/matlab/Expon... _2.asp.htm
пример1а.
Проблема в том, что при запуске этой программы у меня, строка 21 генерирует
Sol =

C3*exp(x) + C2/exp(x)

вместо
Sol =

(C1*exp(x)^2+C2)/exp(x)

Соответственно со строки 30 в коде у меня начинаются проблемы. Увидев, какие константы использует матлаб, я поменяла строки 30 и 31 в коде: С1 на С2 и С2 на С3. Все заработало. Но мне сказали разобраться в этой ошибке. Моя версия - глюк, но в это никто не верит.)) В общем попытки разобраться самой ни к чему не привели, да других малознакомых с матлабом людей тоже. Посоветовали спросить здесь!
К слову сказать, попросила пару других людей запустить у них оригинал программы и программу с моими исправлениями, у них РАБОТАЕТ версия из книги, не работает только у меня! Из-за чего это может быть? Заранее спасибо за помощь или за попытки помочь, буду очень рада!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
clear all % очищаем память
format long % формат отображения чисел с 14 знаками
disp('Решаем пример 1a') % выводим заголовок задачи
syms x y Dy D2y % описали символические переменные 
F=x^2+y^2+Dy^2; % вводим подынтегральную функцию
x1=-1; % вводим граничные условия
y1=1;
x2=1;
y2=2;
fprintf('Подынтегральная функция: F=%s\n',char(F))
fprintf('Граничные условия: y(%d)=%d; y(%d)=%d\n',x1,y1,x2,y2) 
dFdy=diff(F,y) % вычисляем Fy
dFdy1=diff(F,Dy) % вычисляем Fy' 
d_dFdy1_dx = diff(dFdy1,x)  % ?(Fy')/?x
d_dFdy1_dy=diff(dFdy1,y)  % ?(Fy')/?y
d_dFdy1_dy1 = diff(dFdy1,Dy)  % ?(Fy')/?y'=Fy'y' - условие Лежандра
dFy1dx = d_dFdy1_dx + d_dFdy1_dy*Dy + d_dFdy1_dy1*D2y  % d(Fy')/dx 
Euler = simple(dFdy-dFy1dx)  % левая часть уравнения Эйлера
deqEuler = [ char(Euler) '=0' ];  % составили уравнение 
fprintf('Уравнение Эйлера:  %s\n',deqEuler) 
Sol = dsolve(deqEuler,'x')  % решаем уравнение Эйлера
if length(Sol)~=1  % решений нет или более одного
   error('Нет решений или более одного решения!');
end  
SolLeft = subs(Sol,x,sym(x1));  % подставляем x1
SolRight = subs(Sol,x,sym(x2));  % подставляем x2
EqLeft = [char(SolLeft) '=' char(sym(y1))]  % приравняли y1
EqRight = [char(SolRight) '=' char(sym(y2))]  % приравняли y2  
Con = solve(EqLeft,EqRight);  % решаем систему уравнений
C1=Con.C1  % присваиваем полученные решения
C2=Con.C2  % символическим константам C1 и C2
Sol1a = vpa(eval(Sol),14);  % подставляем C1, C2, вычисляем с 14 знаками
fprintf('Уравнение экстремали:\n%s\n',char(Sol1a))  
xpl = linspace(x1,x2);  % задаём массив абсцисс
y1a = subs(Sol1a,x,xpl);  % вычислили ординаты
plot ( xpl, y1a, '-r' )  % рисуем график
title ( '\bfExample 1a' )  % заголовок
xlabel('x')  % метка оси OX
ylabel('y(x)') % метка оси OY
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2011, 23:53
Ответы с готовыми решениями:

У меня записывает только одно слово при этом куске кода
прошу помогите с етим куском кода только пишется одно слово в txt for (int i = 0; i < 2; i++)...

Товарищи программисты что-то у меня не правильно в решении задачи (.(x+a)^2+a)^2+.+a)^2)+a)^2+a
((...((x+a)^2+a)^2+...+a)^2)+a)^2+a есть наброски но я тупой ( #include <stdio.h> #include...

Что это значит, если у меня получились в ответе вот такие странные уравнения движения материальной точки
Вроде бы оси разные, но ответ один O_o x = 80-80{e}^{(-0,25)t} z = 80-80{e}^{(-0,25)t} ...

Массив: Почему у меня при выводе массива отражаются только первые символы каждой строки, а не вся она целиком?
почему у меня при выводе массива отражаются толко первые символы каждой строки а не вся она...

0
31.03.2011, 23:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2011, 23:53
Помогаю со студенческими работами здесь

Парсиг Jsoup. Как спарсить не только title но и дату с ссылкой на новость ? У меня получается только title
Получается спарсить и добавить в listview только title . А мне нужно спарсить еще и дату с url ...

Комбинаторно- вероятностный смысл константы пи, гамма функция и обобщение константы пи
Добавлено через 33 минуты Известна формула для выражения \pi, ...

Есть ли похожая функция на get_defined_constants, которая возвращает только все константы определенной функции, метода
Есть ли возможность получить список констант определенного класса, метода, функции? Например $pdo...

У меня обновилась винда через интернет и теперь у меня постоянное окно при загрузке что винда без лицензии
Всем привет. Подскажите что делать? У меня обновилась винда через интернет и теперь у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru