How to solving and plot only one non-linear equation with two or one variables without using ezplot
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I want to solve and plot one non linear equation with two variables k and f, the equation is shown here, where k varies from 0 to 1. The other algebras are given.
(((2*pi*f).^2)/((2*pi*fv).^2)-1)*((2-(((2*pi*f).^2)/((k.^2)*(cs.^2))).^2)-4*((1-(((2*pi*f).^2)/((k.^2)*(cs.^2)))).^0.5)*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)-m*(((2*pi*f).^4)/(A*(cs.^4)*den*(k.^3)))*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5))=0
For every k value, there are more than one possible solutions for f value, where the f value can be in form complex number and is limited from 0 to 20.
However, it gives 'The input to FSOLVE should be either a structure with valid fields or consist of at least two arguments.' after running the command.
Apart from that, i actually want to plot a continous function rather than scattering the point if it is possible. I don't want to use ezplot because the plot is not correct. Thankyou
clc
clear all
syms k f
cs = 121;
cl = 227;
A = (1.3^2)*(3^0.5)/2;
den = 1300;
m = 6700;
fv = 4.9;
k=0:0.01:1;
fun = @(f) ((2*pi*f).^2)/((2*pi*fv).^2)-1)*((2-(((2*pi*f).^2)/((k.^2)*(cs.^2))).^2)-4*((1-(((2*pi*f).^2)/((k.^2)*(cs.^2)))).^0.5)*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)-m*(((2*pi*f).^4)/(A*(cs.^4)*den*(k.^3)))*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)));
fsolve(fun, [0, 20])
scatter(k,f)
ylim([0 20]);
xlim([0 1])
0 comentarios
Respuestas (1)
darova
el 14 de Feb. de 2020
Numerical way
[K,F] = mehsgrid(-10:10);
Z = your_function
contour(K,F,Z,[0 0]) % contour at 0 level
11 comentarios
Ver también
Categorías
Más información sobre Calculus en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!