Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите, как найти точку пересечения двух кривых в Матлабе ?

Николай шульженко Ученик (85), на голосовании 9 лет назад
Вот сама программа, результат выдает, но как найти точку пересечения без команды fsolve? function[f]=fun1(x);
f=[10*2^x(1)-1-x(2);4^x(1)-24-x(2)];
x=[-1:0.1:0];
y1=10.*2.^x-1;
y2=4.^x-24;
plot(x,y1,x,y2)
x=fsolve (@fun1,[-1 0],optimset('tolX', 10^(-8)'))
Голосование за лучший ответ
Денис Евдоченко Мыслитель (8379) 9 лет назад
пусть кривые заданы функциями y = f(x), y = g(x).
Тогда для точки X можно найти y1 = f(X), y2 = g(X). Пусть y1>y2, тогда r = y1-y2. Если r равен нулю тогда в X имеется точка пересечения. Тоже самое для y2>y1. Введём функцию u(x) = f(x)-g(x). Тогда через fzero можно можно найти ноль функции u(x). Это подходит только для одной точки пересечения. Можно дробить на отрезки и найти несколько точек пересечения, учтя, что при пересечении оси ox на отрезке [a,b] u(a)*u(b)<0. Ну как-то так
Похожие вопросы